繁体   English   中英

XML模式多元素出现

[英]XML Schema Multiple Element Occurances

我正在尝试开发XML模式。 这是一个调查,示例XML可能如下所示。

<survey>
  <instructions>Please complete the survey.</instructions>
  <section>
    <sectionHeader>Multiple Choice: Select the most appropriate answer.</sectionHeader>
    <item>
      <question>What is your favorite color?</question>
      <answer>
        <option>red</option>
        <option>yellow</option>
        <option>blue</option>
      </answer>
    </item>
    <item>
      <question>What is your favorite shape?</question>
      <answer>
        <option>circle</option>
        <option>square</option>
        <option>triangle</option>
      </answer>
    </item>
  </section>
  <section>
    <sectionHeader>Free Response: Type a Response</sectionHeader>
    <item>
      <question>Who is your idol and why?</question>
      <answer>
        <textbox>Type your answer here.</textbox>
      </answer>
    </item>
  <section>
</survey>

答案基本上可以包含一个或多个选项,也可以包含一个文本框。 此外,调查必须包含一个或多个部分,每个部分可以包含一个或多个项目。 我目前有以下xml模式。

<xs:element name="survey">
  <xs:complexType>
    <xs:element name="instructions" type="xs:string"/>
    <xs:element name="section">
      <xs:complexType>
        <xs:element name="sectionHeader" type="xs:string"/>
        <xs:element name="item"/>
          <xs:complexType>
            <xs:element name="question" type="xs:string"/>
            <xs:element name="answer">
              ?? Choice between multiple options or one text box ??
            </xs:element>
          </xs:complexType>
        </xs:element>
      </xs:complexType>
    </xs:element>
  </xs:complexType>
</xs:element>

但是,这仅允许一个部分和一个项目。 我希望它允许按顺序排列一个或多个这些标签。 我也希望答案标签包含一个或多个选项或一个文本框。 我怎样才能做到这一点?

您的xs:element粒子组应该在xs:choice或xs:sequence中分组,并且可以在xs:element或xs:choice / xs:sequence上指定minOccurs和maxOccurs。 因此,如果要使用序列(节,项目,节,项目...)

<xs:sequence minOccurs="1" maxOccurs="unbounded">
  <xs:element name="section"/>
  <xs:element name="item"/>
</xs:sequence>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM