精华内容
下载资源
问答
  • schema约束
    千次阅读
    2018-09-06 23:15:23

    XML是一种通用的数据交换格式,可以使数据再各种应用程序之间轻松地实现数据交换。

    而XMLSchema是一种定义和描述XML文档结构与内容的模式语言。DTD也是XML的一种XML约束,但是没有Schema好。

    一个XML文档可以引入多个约束文档,如果不同约束文档中定义了同名元素或属性,则会导致名称冲突,于是Schema引入了名称空间。同名的元素或属性可以通过名称空间区分。

    名称空间

    使用名称空间需要先声明名称空间,如:

    <itcast:书架 xmlns:itcast=“http://www.itcast.cn”> 

    xmlns是已经默认定义过的前缀,不必再绑定相应的名称空间。所谓声明名称空间就是将一个前缀绑定到代表某个名称空间的URI上,然后在该名称空间内的元素和属性都需要加上该前缀。上面的例子中xmlns是默认定义过的前缀,itcast是自定义的前缀,绑定后面的URI。

    声明名称空间时不写前缀,则该空间为元素的默认名称空间。如下面的例子中,book、name、author元素的名称空间为“http://www.itcast.cn”

    <book xmlns=“http://www.itcast.cn”> 
        <name>javascript web development</name>
        <author>mrs.zhang</author>
    </book>

    引入schema文档

    可以使用名称空间引入schema文档,也可以不使用名称空间。使用名称空间需要使用xsi:schemaLocation,而xsi在标准名称空间"http://www.w3.org/2001/XMLSchema-instance"中定义的,需要声明名称空间,但不需要引入schema文档。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="..." class="...">
            <!-- collaborators and configuration for this bean go here -->
        </bean>
    </beans>

    beans及其包含的元素的默认名称空间为"http://www.springframework.org/schema/beans",该名称空间对应的schema文档由xsi:schemaLocation定义,为http://www.springframework.org/schema/beans/spring-beans.xsd

    参考:

    <<java web程序开发入门>> 传智博客..  

    https://blog.csdn.net/zhaojw_420/article/details/53391507

     

     

     

     

    更多相关内容
  • schema约束快速入门

    2022-04-08 09:02:28
    schema约束快速入门schema约束创建xsd文件xsd的复杂元素xml引入schema约束文件复杂的schema约束 PS:schema约束是一种约束xml文件的方法,其具体实现是通过创建xsd文件编写相关程序完成的。 schema约束 schema符合...


    PS:schema约束是一种约束xml文件的方法,其具体实现是通过创建xsd文件编写相关程序完成的。

    schema约束

    • schema符合xml的语法,xml语句。一个xml中可以有多个chema,多个schema使用名称空间区分(类似于java包名), dtd里面有PCDATA类型,但是在schema里面可以支持更多的数据类型,比如 年龄 只能是整数,在schema可以直接定义一个整数类型, schema语法更加复杂,schema目前不能替代dtd。

    创建xsd文件

    • 因为xsd文件和xml的规范性相同,故其文件头也为<?xml version="1.0" encoding="UTF-8"?>
    • xsd文件的根节点为<schema></schema>
    • 根节点的属性
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
      		targetNamespace="http://www.baidu.com/20220408"
    		elementFormDefault="qualified">
    </schema>
    
    1. xmlns表示当前xml文件是一个约束文件
    2. targetNamespace表示使用schema约束文件,直接通过这个地址引入约束文件,这个地址任意写,但要保证和xml文件中的xmlns中的地址一样
    3. elementFormDefault="qualified"是一个默认选项

    xsd的复杂元素

    <element name = "person">
    		<complexType>
    			<sequence>
    				<element name = "name" type = "string" maxOccurs="unbounded"></element>
    				<element name = "age" type = "int"></element>
    				<element name = "adress" type="string"></element>
    			</sequence>
    			<attribute name = "id" type = "int" use = "required"></attribute>
    		</complexType>
    	</element>
    
    • 在schema约束当中必须用标准语言规范,如果xml中是复杂元素,需要引用<complexType></complexType>,该标签的子标签可以是<squence></squence>表示xml文件中标签表示顺序必须按照squence下的顺序严格执行,也可以是<choice></choice>表示只出现choice下任意一个标签,还可以是<any></any> 表示出现任意元素,<all></all>表示元素只能出现一次。

    • 标签元素中属性maxOccurs="unbounded" 表示元素的出现的次数

    • 约束xml根标签的属性时,需要用到<attribute name="id1" type="int" use="required"></attribute>,其中name是属性名称,type是属性类型,use表示属性是否必须出现。

    xml引入schema约束文件

    <?xml version="1.0" encoding="UTF-8"?>
    <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		xmlns="http://www.baidu.com/20220408"
    		xsi:schemaLocation="http://www.baidu.com/20220408 schema_test.xsd" id = "001">
    		<name>ss</name>
    		<age>20</age>
    		<adress>ssss</adress>
    </person>
    
    • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"表示xml是一个被约束文件
    • xmlns="http://www.baidu.com/20220408 schema"是约束文档里面 targetNamespace
    • xsi:schemaLocation="http://www.baidu.com/20220408 schema_test.xsd">
      targetNamespace 空格 约束文档的地址路径

    复杂的schema约束

    department.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://www.example.org/department" 
     elementFormDefault="qualified">
     <!-- 部门名称 -->
     <element name="name" type="string"></element>
    </schema>
    

    company.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/company" 
    elementFormDefault="qualified">
    	<element name="company">
    		<complexType>
    			<sequence>
    				<element name="employee1">
    					<complexType>
    						<sequence>
    							<!-- 引用任何一个元素 -->
    							<any></any>
    						
    							<element name="name" type="string"></element>
    							<element name="age" type="int"></element>
    							<element name="sex" type="string"></element>
    						</sequence>
    						
    						<attribute name="number" type="string"></attribute>
    					</complexType>
    				</element>
    				<element name="employee2">
    					<complexType>
    						<sequence>
    							
    							<any></any>
    							
    							<element name="name" type="string"></element>
    							<element name="age" type="int"></element>
    							<element name="sex" type="string"></element>
    						</sequence>
    						
    						<attribute name="number" type="string"></attribute>
    					</complexType>
    				</element>
    			</sequence>
    		</complexType>
    	</element>
    </schema>
    

    company.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 数据文件 引用多个Schema -->
    <company xmlns = "http://www.example.org/company"
    	xmlns:dept="http://www.example.org/department"
    	xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.example.org/company company.xsd http://www.example.org/department department.xsd" 
    >
    	<employee1 number="3300">
    		<!-- 部门名称 --> 
    		<dept:name>HR</dept:name>
    		<!-- 员工名称 -->
    		<name>王晓晓</name>   
    		<age>23</age>
    		<sex>nv</sex>
    	</employee1>
    	<employee2 number="3200">
    		<dept:name>PD</dept:name>
    		<name>王老二</name>
    		<age>45</age>
    		<sex>nan</sex>
    	</employee2>
    </company>
    

    根元素的属性xmlns:dept(:xsi)此处的dept和xsi只是一个别名,没有具体含义,只是方便引用。当引入多个schema约束文件时,使用 别名:名称 可以避免重复。

    展开全文
  • schema约束

    2018-11-28 20:22:17
    schema约束 后缀名 .xsd schema约束的出现是为了克服dtd约束的局限性 dtd的约束:  1.只能引入一个dtd文件  2.dtd支持的数据类型比较少(只有字符串)(schema支持更多的数据类型)  3.DTD语法&lt;!...

    schema约束     后缀名   .xsd

    schema约束的出现是为了克服dtd约束的局限性

    dtd的约束:

               1.只能引入一个dtd文件

               2.dtd支持的数据类型比较少(只有字符串)(schema支持更多的数据类型)

               3.DTD语法<!ELEMENT>       解析比较困难

    schema约束和DTD约束的对比

         1.schema约束符合XML语法结构

         2.schema很容易被DOM,SAX解析技术解析

         3.schema对名称空间支持的非常好

         4.schema支持更多的数据类型,支持自定义数据类型

    常用的数据类型是(查w3c文档)          xs:string      xs:decimal       xs:integer       xs:boolean     xs:date       xs:time

    schema使用预先定义好的元素和属性,由W3C组织规定

    schema约束文档的后缀名是   .xsd

    schema约束文档也只有一个根节点,并且根节点名称就是<schema></schema>   不能改

     

    开发思路:

    1.W3C组织预先定义

    2.schema约束,先引入W3C名称空间,再根节点上使用xmlns="http://www.w3.org/2001/XMLSchema"

    3.xml文档,先引入schema名称空间,引入W3C的名称空间,来声明“我是一个实例文档”

    开发步骤:

    1.引入W3C的名称空间(值不用记)在根节点上使用xmlns属性

    2.定义元素标签<element name="元素名称"  type="元素类型">

    3.元素类型分类:

                简单类型:<element  name=""  type="">

                复杂类型:1.声明是复杂的类型     <complexType>

                                  2.概述子节点的关系      <sequences>

    4.调整顺序(把子节点放进父节点中)

    5.定义属性  <attribute  name="属性名称"   

    6.起一个名称空间的名称

                      再<schema>根节点上使用属性targetNamespace,值是唯一的,URI起名称

    7.设置质量好的             qualified质量好的                    unqualified质量不好的

    8.xml文件中:。1引入w3c的名称空间(声明文档是实例文档)      xmlns="W3C的"

                           。2引入自己定义schema文档的名称空间        xmlns="自己的"

                           。3元素名称上有了相同名称的属性,需要起别名,把标签出现次数少的起别名,因为起别名后,所有的标签需要写为   别名:标签名

                           。4引入自己定义schema文档的地址

    schema约束文档
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 引入W3C
              定义自己的名称空间
              质量好的 -->
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/company" 
    elementFormDefault="qualified">
    	<!-- 公司元素 -->
    	<element name="company">
    	     <!-- 声明是复杂类型 -->
    		<complexType>
    		    <!-- 子节点的关系 -->
    			<sequence>
    				<!-- 员工元素 -->
    				<element name="employee">
    					<complexType>
    						<sequence>
    							<!-- 员工名字 -->
    							<element name="name">
    								<complexType>
    									<simpleContent>
    										<extension base="string"></extension>
    									</simpleContent>
    								</complexType>
    							</element>
    						</sequence>
    						<!-- 为员工元素添加属性 -->
    						<attribute name="age" type="int"></attribute>
    					</complexType>
    				</element>
    			</sequence>
    		</complexType>
    	</element>
    
    </schema>
    xml文档
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 引入W3C名称空间
          引入schema约束文档名称空间
          schema约束文档的地址 -->
    <company xmlns:xsi = "http://www.w3.org/2001/XMLSchema"
    		xmlns = "http://www.example.org/company"
    		xsi:schemaLocation="http://www.example.org/company company.xsd">
    
    	<employee age="30">
    		<name>xiao</name>
    	</employee>
    
    
    </company>

     

    展开全文
  • 详解xml约束中schema约束

    千次阅读 多人点赞 2018-09-27 23:14:37
    开始时间:2018年9月27日20:56:14 ... 2: schema 约束:   优点: 比dtd 更能更加强大。 提供了更加丰富的数据类型。     XML Schema 可针对未来的需求进行扩展   XML Schema 更完善,功能更强大   ...

    开始时间:2018年9月27日20:56:14

    结束时间:2018年9月27日23:18:30

    累计时间:2小时

    xml自定义: 

    一: 约束
     1: dtd约束: 
     2: schema 约束: 
     优点:  比dtd 更能更加强大。 提供了更加丰富的数据类型。 
         
        XML Schema 可针对未来的需求进行扩展 
        XML Schema 更完善,功能更强大 
        XML Schema 基于 XML 编写 (schema本质上就是一个 xml文件)
        XML Schema 支持数据类型 (提供的更加丰富的数据类型)
        XML Schema 支持命名空间  

    (同一个xml文件可以被不同的schema约束。 通过名称空间约束)通过名称空间来区分多个schema约束。

    那么何为不同的名称空间?https://blog.csdn.net/CristianoJason/article/details/51147028

    好比同一个文件夹下不能存放同名文件,放在不同的文件夹下 即可。所以放在不同包下面就ok啦。
         
     3: 原理:  图解: 

     


     4: 入门的案例: 
      
       a: 编写一个被约束的文件:  person.xml
       b: 编写一个schema文件: 本质上也是一个xml文件: 
                     后缀名称 xsd
                     
       c: 文件内容的说明: 
       <?xml encoding="" version=""?>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
                targetNamespace="http://www.example.org/person" 
                elementFormDefault="qualified">
                 
        </schema> 
        
        解释说明: 
         schema: xml当中的根标签: 
         xmlns="http://www.w3.org/2001/XMLSchema" 
                  当前的xml文件是一个约束文件。
                  
         targetNamespace="http://www.example.org/person" 
               被约束文件使用。  被约束的文件通过引入该地址,引入当前的schema文件。 
            
         elementFormDefault="qualified">
                 元素的默认格式
                 
       d: 开发具体的约束: 
         (1) 看xml文件当中有多少个元素: <element>
         (2)观察该元素是简单的元素还是复杂的元素:
          复杂元素: 
           <element name="元素的名称" >
               <complexType>
                     <sequence>
                        //简单元素:   name="简单元素的名称" type="简单元素值的类型"
                         <element name="" type=""/>
                     </sequence>
                </complexType>
           </element>
           
           复杂元素: 
            <sequence> 表明元素必须按照顺序出现。 
            <all> 元素的顺序可以任意。 但是元素出现的次数有且仅有一次。 
            <choice> 简单元素只能出现其中的一个。

    具体可以看这个人的:
       简单元素: https://blog.csdn.net/CristianoJason/article/details/51282739简单元素的约束写的很清楚了

       复杂元素:https://blog.csdn.net/CristianoJason/article/details/51327041(看了这个人两篇写的还行)

    *简易元素:仅包含文本(文本可以有很多类型,也可以是自定义的类型),但不会包含任何其他的元素或属性。
           maxOccurs="unbounded" 出现的次数 不受任何的限制。 任意次。 
           maxOccurs="1" 简单元素只能出现一次; 修改值, 指定简单元素出现的次数。

    复杂元素可以层层嵌套  (如果复杂元素里面还是复杂元素)
            
           
        e: 在被约束文件当中引入schema文件:(图解)

    xmls:是可以自定义的名字

    右边的 xsi:也可以自定义,但是官方建议xsi  (为了防止和下面重名)

    instance意思是实例 指的是右边是左边约束的一个实例。

    右边第三个  有两个参数  


        
      
      5:schema约束  分两种:

    标签约束:类似于

      这种约束

            <sequence> 表明元素必须按照顺序出现。 
            <all> 元素的顺序可以任意。 但是元素出现的次数有且仅有一次。 
            <choice> 简单元素只能出现其中的一个。

    约束属性: 
      
        (1)在</complexType> 之前: 写一个<attribute  name="" type="" use="">
           name:属性的名称:  自定义
           type:  属性的类型:   int string  约束文件提供的合法的类型
           use:属性的约束:    
                   值:required 属性必须: 
                   optional 可选择
                   prohibited 禁止的: 属性不能出现

    再放一个例子

    执行约束的文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://www.example.org/person" 
     xmlns:tns="http://www.example.org/person" 
     elementFormDefault="qualified">
     
     <element name="person">
     	<complexType>
     		<!-- <sequence> -->
     		<!-- <all> -->
     		<choice>
     		      <!-- 简单元素:  -->
    			 <element name="name" type="string" maxOccurs="unbounded"></element>
    			 <element name="sex" type="string"></element>
    			 <element name="des" type="string "></element>
    		 </choice>
    	   <!--  </all> -->
     		<!-- </sequence> -->
     		
     		<!-- 加入属性约束 -->
     		<attribute name="id" type="int" use="required">
     		     
     		</attribute>
     		
     		<attribute name="code" type="string" use="prohibited"></attribute>
     	</complexType>
     </element>
     
    </schema>

    被约束的文件:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <person
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.example.org/person" 
       xsi:schemaLocation="http://www.example.org/person person.xsd" 
       id="21">
     
      <name>ss</name>
      <name>ss</name>
      <name>ss</name>
      <name>ss</name>
     
      
    </person>


        
               
     
       
       
       
      
                
         
       
      

     

     

    展开全文
  • NULL 博文链接:https://364232252.iteye.com/blog/2369554
  • Schema约束特点: Schema符合XML的语法规范,XML语句。 一个XML中可以有多个Schema,多个Schema使用名称空间区分(类似于Java包名)。 Schema中支持比dtd中更多的数据类型,定义约束能力更强,语法更加复杂。 ...
  • xml之schema约束

    千次阅读 2020-07-01 19:37:32
    schema约束的定义 将dtd文件引入到xml文档中 前言 在这里我们介绍了xml之tdt约束,但是这种约束没法约束属性的值,比如age属性我想限制只能是数字,那就不行了,所以我们这里介绍schema约束 schema约束的...
  • SCHEMA约束

    2020-11-21 10:50:52
    Schema,即XML Schema,XSD (XML Schema Definition)是W3C于2001年5月发布的推荐标准,指出如何形式描述XML文档的元素。 XSD是许多XML Schema 语言中的一支。XSD是首先分离于XML本身的schema语言,故获取W3C的推荐...
  • DTD约束&schema约束学习

    2020-09-18 01:01:39
    DTD约束 概念 ​ DTD是文档类型定义(Document Type Definition)。DTD 可以定义在 XML 文档中出现的元素、这些元素出现的次序、它们如何相互嵌套以及XML文档结构的其它详细信息。 约束体验 体验效果说明:当编写xml...
  • 了解Schema约束

    2019-01-07 13:40:29
    schema约束文档的创建步骤: **1、创建一个以.xsd结尾的文件,定义xml文档的书写规范:例如:book.xsd &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;...
  • Schema约束专题

    2022-05-01 19:22:53
    2. 一个xml文件中可以引入多个Schema约束文件,多个Schema使用命名空间区分 3. DTD里面元素类型的取值比较单一常见的是PCDATA类型,但是在Schema里面可以支持很多个数据类型 其他文件 ——(约束)——> ...
  • beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=...
  • 引入schema约束

    2019-12-04 16:44:16
    schema约束的注释:   <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=...
  • Schema 约束

    2022-07-21 09:23:19
    schema约束文件
  • ajax是什么? 如图: XML是什么? 可扩展标记语言,标记数据,定义数据类型 允许用户对自己的标记语言进行定义的...Schema约束(简单提一下) 什么是格式良好的XML ①:有且只有一个根元素,例如以下代码中: “per...
  • xml的schema约束(Java)

    2021-02-27 10:28:32
    1.schema约束*dtd语法:schema符合xml的语法,是xml语句。一个xml文件中可以有多个schema,多个schema使用名称空间来区分(类似于java中的包),而一个xml文件中只能有提个dtd。dtd中有PCDATA类型,而在schema中支持...
  •  * Schema 是最新的XML文档约束。  * Schema 要比DTD强大很多,是DTD替代者。  * Schema 本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。  * Schema 功能更强大,数据类型更完善  * Schema 支持...
  • JavaWeb开发技术-Schema约束.pptx
  • JavaWeb开发技术-引入Schema约束.pptx
  • XML之Schema约束

    2018-07-10 16:36:13
    XML Schema文件自身就是一个XML文件,但它的扩展名通常为.xsd,schema约束最大的作用是为了验证xml文件的规范性的,是为了解决dtd约束不够的问题,相应的它的配置就变得比较复杂。 注意: 一个xml文件可以引用多个...
  • Schema约束快速入门

    2019-02-20 10:55:44
    1.下面是一个自定义的dtd约束文件,book.dtd(DTD(Document Type Definition),全称为文档类型定义。) &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;schema xmlns="...
  • schema约束文档与xml文件详解1.前言2.schema约束文档(.xsd文件)2.1 targetNameSpace2.2官方文档与自定义文档的关系2.3 声明名称空间2.4 schema文档中的全局成分与非全局成分2.5 完整的自定义schema文档3.xml文件3.1 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,806
精华内容 31,922
关键字:

schema约束

友情链接: ir_12864_wave.rar