schema 知识总结



一.schema的创建
  1.这里Schema和DTD一样,有一个文档说明“<?xml version="1.0" encoding="UTF-8"?>”
  2.以schema作为根标签,然后在标签中去添加命名空间:
A.首先引入xmlns:xs="http://www.w3.org/2001/XMLSchema"。
B.targetNameSpace="http://www.feicui.com/newschema"声明一个命名空间(uri)。
C.xmlns:myns="http://www.feicui.com/newschema"。
D.elementFormDefault="qualified"严格按照schema文档约束我们要编写的xml文件。
 
二.属性
  1.在Schema中常见的属性类型有:string decimal integer date time. 
  2.属性的定义:<attribute name="xxx" type="yyy"/> 
  3.属性只能在复合元素中定义,如果要在简单元素中定义属性,需要在compleType的标签中添加simplecontent标签,再在里面添加extension标签,用来扩展简单元素,添加属性。
  4.在定义属性中的use表示这个属性是否需要出现在元素中,它有三个值optional 可用可不用、prohibited禁止使用、required必须使用。




三.在XML Schemas(XML公式)定义了XML文件的元素分别是简单元素和复合元素。(元素也叫标签)


  1.简单元素是只含有文本的XML元素。(没有子元素)
     简单元素的定义:<element name="标签名" type="属性类型"/>。

eg: <element name="province">
<simpleType>
<restriction base="string">
<enumeration value="北京"></enumeration>
<enumeration value="上海"></enumeration>
</restriction>
</simpleType>
    </element>


  2.复合元素(Complex Elements)是含有其他元素和/或属性的XML元素.(含有子元素)


  有四种复合元素(Complex Elements):空元素 只含有其他元素的元素 只含有文本的元素 含有文本和其他元素的元素 


一般的复合元素:
eg: <element name="result">
<complexType>
<sequence>
<element name="Keyword">
<simpleType>
<restriction base="string">
<enumeration value="骨科"></enumeration>
<enumeration value="皮肤科"></enumeration>
</restriction>
</simpleType>
</element>
</sequence>
</complesType>
</element>
四.Schema之所以可以替代DTD,是因为它的可以更好的约束XML。
 1.对简单元素的约束:
a.在简单元素中添加一个<simpleType>标签。
b.然后在simpleType标签中添加一个<restruction>标签,给这个标签中的base属性设置这个元素的类型。
c.在<restriction>中对信息进行约束:
枚举约束:<enumeration value="北京"></enumeration>
对数值大小之间的限定:maxExclusive 指定了数值的上限(数值要比这个值小)maxInclusive 指定了数值上限(数值必须小于等于这个值 minExclusive和minInclusive 与其相反。
样式约束:<pattern value="[1-9][0-9]{3}-([A-Z][a-z]){4}%(audi|benz)"></pattern> 定义了符合要求的字符的确切排列顺序
说明  [1-9]:表示1到9之间的任意一个数字
     [1-9]{3}:表示写三位1到9之间的数字
     [a-zA-Z]:表示a到z之间任意一位大小写字符
     audi|benz:表示两个之间任意一个
字符长度约束:<length value="8"></lenth>   <xs:minLength value="5"/> 值最少要有5个字符  <xs:maxLength value="8"/>最多有8个字符。


  2.对复合元素的约束:
     A.在复合元素中添加一个<complexType>标签,再在<complexType>中添加指示器(顺序指示器【sequence】、全部指示器【all】、选择指示器【choice】、数量指示器).
a.sequence:指定了子元素的要以定义的顺序必须依次出现。
b.all:指定了子元素可以任意出现,并且只能出现一次。
c.choice:指定了子元素可以选择一个出现,并且只能出现一个。
d.还有一个数量指示器,它是作为一个以子元素的属性的方式出现。 minOccurs 设置出现的最少次数;maxOccurs设置出现的最多次数


   B.它同时也拥有简单元素的约束
五.将schema文档引入要约束的xml文件
    1在根标签中,加入:
A.xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"要引入shema文档需要使用这个命名空间中的属性。
B.xsi:schemaLocation="http://www.feicui.org/feicuischema newschema.xsd" 使用上面引入的命名空间xsi中的schemalocation读取schema文档,首先要填入schema文档的命名空间的uri,然后空格,再填入schema文档的名字。
C.在通过引入命名空间的方法,将schema文档的命名空间引入。

你可能感兴趣的:(schema 知识总结)