XSD - 固定值

时间:2013-12-30 14:56:00

标签: xml xsd

我想在xsd中表示以下数据:

我有4条原则。每个子原则都有1到4个子原则,每个子原则都有一个指南,一个检查器和一个注释属性,就像这个树结构:

 1. Principle ONE

    a. subprinciple A

        1. guideline  
        2. checker 
        3. comment  

    b. subprinciple B
       ....

  2. Principle TWO
  3. Principle THREE
  4. Principle FOUR

在XML中,表示如下:

       <principle>
            <principle_name>principle_name0</principle_name>
            <guidelines_properties>
                <guideline>guideline0</guideline>
                <checker>false</checker>
                <comments>comments0</comments>
            </guidelines_properties>
            <guidelines_properties>
                <guideline>guideline1</guideline>
                <checker>false</checker>
                <comments>comments1</comments>
            </guidelines_properties>
        </principle>
        <principle>
            <principle_name>principle_name1</principle_name>
            <guidelines_properties>
                <guideline>guideline2</guideline>
                <checker>false</checker>
                <comments>comments2</comments>
            </guidelines_properties>
            <guidelines_properties>
                <guideline>guideline3</guideline>
                <checker>false</checker>
                <comments>comments3</comments>
            </guidelines_properties>
        </principle>

在XSD中我已经用这种方式定义了它:

  <xs:element name="principles">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="principle" minOccurs="4" maxOccurs="4"/>
         </xs:sequence>
      </xs:complexType>
  </xs:element>

  <xs:element name="principle">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="principle_name"/>
            <xs:element ref="guidelines_properties" minOccurs="1" maxOccurs="4"/>
         </xs:sequence>
      </xs:complexType>
  </xs:element>

  <xs:element name="guidelines_properties">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="guideline"/>
            <xs:element ref="checker"/> 
            <xs:element ref="comments"/> 
         </xs:sequence>
      </xs:complexType>
  </xs:element>

我觉得我没问题。我想做的是确定原则和指导方针的价值。有没有人对此有所了解?

1 个答案:

答案 0 :(得分:0)

您可以使用将枚举值的构面。如果只枚举一个值,则只允许一个值。

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/> <!-- only "Audi" allowed -->
      <!-- <xs:enumeration value="Golf"/> -->
      <!-- <xs:enumeration value="BMW"/> -->
    </xs:restriction>
  </xs:simpleType>
</xs:element>