Schema文档概述123

Schema系列文章

1、XML对Schema文档的引用123

2、Schema文档概述123

3、Schema之简单元素、复合元素和属性

4、Schema约束

5、Schema指示器

6、如何创建一份XMLSchema And XML Elements

和XML文档一样,Schema文档同样有一个根元素,其他的元素都镶嵌在根元素内部,如:

 

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
    targetNamespace="http://tempuri.org/test.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/test.xsd"
    xmlns:mstns="http://tempuri.org/test.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
> 
  <xs:element  name ="Person">
    <xs:complexType >
      <xs:sequence >
        <xs:element  name ="ID">
          <xs:simpleType >
            <xs:restriction  base ="xs:int">
              <xs:minExclusive value ="101"></xs:minExclusive>
              <xs:maxExclusive  value ="200"></xs:maxExclusive>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name ="Name"  type ="xs:string" ></xs:element>
        <xs:element  name ="Gender" >
          <xs:simpleType >
            <xs:restriction  base ="xs:string">
              <xs:enumeration  value ="男"></xs:enumeration>
              <xs:enumeration  value ="女"></xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

 

 

schema的关键就是:简单元素,复合元素和属性:

1、所谓简单元素就是只含有文本的XML元素。它不可以含有其他元素或属性,如:

 

<xs:element  name ="bigman">
    <xs:simpleType  >
      <xs:restriction  base ="xs:string">
        <xs:maxLength   value ="4"></xs:maxLength>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

 

simpleType指示Age元素为简单类型,restriction来对其进行约束(最小值为0,最大值为120);

 

2、所谓复合元素就是说是含有其他元素或属性的XML元素;

 2.1、包含其他元素的复合元素的定义:

 

 <xs:element  name ="women">
    <xs:complexType  >
      <xs:sequence  >
        <xs:element  name ="girl"></xs:element>
        <xs:element  name ="biggirl"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

 2.2、包含属性的复合元素的定义:

 

 

 <xs:element  name ="women">
    <xs:complexType  >
      <xs:sequence  >
        <xs:element  name ="girl"></xs:element>
        <xs:element  name ="biggirl"></xs:element>
      </xs:sequence>
      <xs:attribute  name ="weight"  type ="xs:double"></xs:attribute>
    </xs:complexType>
  </xs:element>

2.3、复合元素对简单元素的引用:

 

<xs:element  name ="bigman">
    <xs:simpleType  >
      <xs:restriction  base ="xs:string">
        <xs:maxLength   value ="4"></xs:maxLength>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element  name ="man" >
    <xs:complexType  >
      <xs:sequence  >
        <xs:element  ref ="bigman" ></xs:element>
        <xs:element  name ="smallman" type ="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

复合元素man的第一个子元素引用了已经定义好的简单元素bigman,而他的第二个子元素则是最直接的一个简单元素;

 

 

2.4、复合元素对复合元素的引用:

 

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
    targetNamespace="http://tempuri.org/test.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/test.xsd"
    xmlns:mstns="http://tempuri.org/test.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element  name ="bigman">
    <xs:simpleType  >
      <xs:restriction  base ="xs:string">
        <xs:maxLength   value ="4"></xs:maxLength>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element  name ="man" >
    <xs:complexType  >
      <xs:sequence  >
        <xs:element  ref ="bigman" ></xs:element>
        <xs:element  name ="smallman" type ="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element  name ="women" >
    <xs:complexType  >
      <xs:sequence  >
        <xs:element  name ="girl"  type ="xs:string" ></xs:element>
        <xs:element  name ="biggirl" type ="xs:string" ></xs:element>
      </xs:sequence>
      <xs:attribute  name ="weight"  type ="xs:double" use ="required"></xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element  name ="Person">
    <xs:complexType >
      <xs:sequence >
        <xs:element  ref ="man"></xs:element>
        <xs:element   ref ="women"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

 

该份Schema的定义可以理解为:人类包括男性和女性,而男性和女性又分别含有男孩和男人、女孩和女人,女性还有她们最在乎的体重这一属性,复合元素Person分别引用了man和women两个复合元素,同时复合元素man也引用了简单元素bigman;较复杂的Schema也就是元素之间的相互引用和相互嵌套构成的;

 

更多参考http://www.cnblogs.com/caoxch/archive/2006/11/17/563856.html

posted @ 2010-12-03 07:23  麻将我会  阅读(371)  评论(0编辑  收藏  举报