1. 程式人生 > >XMLSchema.xsd 檔案約束xml文件格式內容

XMLSchema.xsd 檔案約束xml文件格式內容

XMLSchema.xsd 檔案,用來約束xml內容格式的。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchemaLettle"
    targetNamespace="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    elementFormDefault="qualified"
    xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    xmlns:mstns="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="note">
    <xs:complexType>
      <xs:sequence>

        <xs:element name="heading" type="xs:string" minOccurs="0" maxOccurs="1" default="headstring">
        </xs:element>
        <xs:element name="body" type="xs:string" minOccurs="0" maxOccurs="1" default="content"/>
        <xs:element name="aletter" minOccurs="0" maxOccurs="1" default="a">
          <!--只能輸入一個字元,且是大小寫字母中的一個-->
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[a-zA-Z]"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="age" minOccurs="0" maxOccurs="1">
          <!--只能指定一個範圍內的值-->
          <xs:simpleType>
            <xs:restriction base="xs:integer">
              <xs:minInclusive value="1"/>
              <xs:maxInclusive value="120"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="gender" minOccurs="0" maxOccurs="1" default="male">
          <!--正則表達示限制輸入規則,這樣能驗證,但不自動提示-->
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:whiteSpace value="replace"/>
              <!--移除所有空白字元(換行、回車、空格以及製表符)-->
              <xs:pattern value="male|female"/>
              <xs:minLength value="4"/>
              <!--最小字元數-->
              <xs:maxLength value="6"/>
              <!--最大字元數-->
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="password" minOccurs="0" maxOccurs="1" default="12345678">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:length value="8"/>
              <!--固定長度-->
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="from" type="xs:string" minOccurs="0" maxOccurs="1" default="pukuimin"/>
        <xs:element name="to" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence minOccurs="1" maxOccurs="1">
              <!--一個元素下的子元素-->
              <xs:element name="full_name" minOccurs="1" maxOccurs="1">
                <!--只能指定一個固定的值,vs裡按Ctrl+J 就能顯示可以指定的值-->
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="pu"/>
                    <xs:enumeration value="shu"/>
                    <xs:enumeration value="liu"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="child_name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute />
            <!--允許指定自定義屬性-->
          </xs:complexType>
        </xs:element>

        <xs:element name="to2">
          <xs:complexType>
            <xs:attributeGroup ref="persongroup"/>
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="persongroup">
    <!--一個元素中的很多屬性-->
    <xs:attribute name="firstname" default="pu">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="pu"/>
          <xs:enumeration value="shu"/>
          <xs:enumeration value="liu"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="lastname" type="xs:string" default="km"/>
    <xs:attribute name="birthday" type="xs:date" default="2012-08-27"/>
  </xs:attributeGroup>

</xs:schema>


在vs2010中:

生成的示例xml檔案內容:

<?xml version="1.0" encoding="utf-8"?>
<note xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd">
  <heading>headstring</heading>
  <body>content</body>
  <aletter>a</aletter>
  <age>1</age>
  <gender>male</gender>
  <password>12345678</password>
  <from>pukuimin</from>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>pu</full_name>
    <child_name>child_name1</child_name>
  </to>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>shu</full_name>
    <child_name>child_name2</child_name>
  </to>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>liu</full_name>
    <child_name>child_name3</child_name>
  </to>
  <to2 firstname="pu" lastname="km" birthday="2012-08-27" />
</note>


如果不符合約束要求,文件就會 顯示警告。