xml,dtd,schema的demo_2

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"             ---schema文件,schema的声明

elementFormDefault="qualified" attributeFormDefault="unqualified">       ---xs代表命名空间 
 <xs:element name="书本" type="书本类型"/>                  ---定义一个元素.
 <xs:complexType name="书本类型">                            ---定义一个复合类型,类型名称为name.
  <xs:sequence minOccurs="0" maxOccurs="unbounded">---代表这个复合类型中按顺序包含2个子元素.

                                                                            ---minOccurs代表最少出现次数,maxOccurs是最多.
   <xs:element name="名称" type="xs:int"/>                   ---子元素类型为int.
   <xs:element name="作者" type="xs:date"/>                ---这个子元素类型为date.
  </xs:sequence>
 </xs:complexType>
</xs:schema>

 

<书本 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="myschema.xsd">                   ---这个是xml文件,这个是元素调用schema.
 <名称>12</名称>
 <作者>2010-12-25</作者>
</书本>

 

 

<xs:simpleType>                                       ---代表简单类型.
     <xs:restriction base="xs:string">             ---代表这个类型基于string型.
        <xs:enumeration value="男"/>              ---这个类型的内容只能是男或者女,因为enumeration是枚举.
        <xs:enumeration value="女"/>

    </xs:restriction>
</xs:simpleType>

 

<xs:simpleType>
     <xs:restriction base="xs:integer">          ---代表这个类型基于integer.
        <xs:minInclusive value="1" />             ---内容只能是1到150的整数,并且是闭区间.
        <xs:maxInclusive value="150"/>
      </xs:restriction>
</xs:simpleType>

 

<xs:group name="myGroup"> ... </xs:group>      ---代表元素的组,相当于将很多元素集合在一起.

 

<xs:attribute name="interest" type="xs:integer" use="required"/>  ---代表元素的属性,类型,和是否必须使用.

 

 <xs:attributeGroup name="myAttributeGroup"> ...   </xs:attributeGroup>  ---代表属性组,把很多属性集合成组.

 

 

 <xs:simpleType name="myType">           ---自定义简单类型.约束该类型基于integer,内容只能为>0并且<=100的整数.
  <xs:restriction base="xs:integer">
     <xs:minExclusive value="0"/>
     <xs:maxInclusive value="100"/>
  </xs:restriction>
 </xs:simpleType>

 

  <xs:list itemType="xs:date"/>  

  ---代表所有内容必须是date类型,list代表内容可以用空格隔开,比如2010-10-10 2010-10-10

 

<xs:union memberTypes="a b" />     ---代表a和b的集合.

 

<xs:choice minOccurs="1" maxOccurs="3">  ---代表可以选择一次到3次,但每次只能选择组中一个元素.

 

---------------------***感谢风中叶老师的视频*****-----------------------------------

schema是一个xml文件,但dtd不是xml文件.

所有的schema文档,其根元素必须为schema.

simpleType类型的元素没有子元素,也没有属性.

当需要定义的元素包含了子元素或者属性时,必须要用complexType.

simpleContent用于ComplexType元素上,用于限定该complexType的内容类型.表示该complexType没有子元素,

同时该complexType需要有属性.如果没有属性,那么就成了simpleType了.

通过DOCTYPE可以明确指定文档的根元素,因为DOCTYPE后面跟的元素就是文档的根元素.

通过schema是没法明确指定目标xml文档的根元素,XMLSPY是通过推断哪个元素包含了其他元素来选择包含其他元素最多的

那个元素来作为文档的根,但我们可以明确指定文档的根元素而不必按照xmlspy的生成来做.

DOM:document object model 文档 对象模型.

对于xml开发来说,DOM是一个对象化得xml数据接口,一个与语言无关,与平台无关的标准接口规范.

根节点代表的是xml文档本身,是解析xml文档的入口.

而根元素结点则表示xml文档的根元素,它对应于xml文档的root.

 

 

 


  

你可能感兴趣的:(schema)