详解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: 原理:  图解: 

 

详解xml约束中schema约束_第1张图片
 4: 入门的案例: 
  
   a: 编写一个被约束的文件:  person.xml
   b: 编写一个schema文件: 本质上也是一个xml文件: 
                 后缀名称 xsd
                 
   c: 文件内容的说明: 
   
                targetNamespace="http://www.example.org/person" 
            elementFormDefault="qualified">
             
   
 
    
    解释说明: 
     schema: xml当中的根标签: 
     xmlns="http://www.w3.org/2001/XMLSchema" 
              当前的xml文件是一个约束文件。
              
     targetNamespace="http://www.example.org/person" 
           被约束文件使用。  被约束的文件通过引入该地址,引入当前的schema文件。 
        
     elementFormDefault="qualified">
             元素的默认格式
             
   d: 开发具体的约束: 
     (1) 看xml文件当中有多少个元素:
     (2)观察该元素是简单的元素还是复杂的元素:
      复杂元素: 
       
           
                 
                    //简单元素:   name="简单元素的名称" type="简单元素值的类型"
                     
                 

           

       

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

具体可以看这个人的:
   简单元素: 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意思是实例 指的是右边是左边约束的一个实例。

右边第三个  有两个参数  

详解xml约束中schema约束_第2张图片
    
  
  5:schema约束  分两种:

标签约束:类似于

  这种约束

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

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

再放一个例子

执行约束的文件:



 
 
 	
 		
 		
 		
 		      
			 
			 
			 
		 
	   
 		
 		
 		
 		
 		     
 		
 		
 		
 	
 
 

被约束的文件:




 
  ss
  ss
  ss
  ss
 
  


    
           
 
   
   
   
  
            
     
   
  

 

 

你可能感兴趣的:(xml)