如何用多个选项定义xsd元素?

时间:2012-04-03 05:46:36

标签: xsd

我有这样的场景,我必须为不同的目的使用相同的XSD元素,以便我生成的XML可以包含一个或多个p标签,但不是全部。

   <p>some paragraph here </p>

    <p> 
        <img src = "....."   alt="......"/>
    </p>

    <p> <b> some text here <b> <p> 

     <p> ...... <g1> ........ <g2>.......<g3>........<p>

我是XML Schema的新手,提前谢谢。

1 个答案:

答案 0 :(得分:0)

我所做的假设是,您尝试通过显示其不同的内容模型来定义 p 标记。首先,通过接收文本,您必须将其内容定义为混合。从那里,您可以使用重复选项列出所有其他元素,例如img,b,g1,g2等。

我正在展示XHTML XSD的摘录:

  <xs:element name="p">
    <xs:complexType mixed="true">
      <xs:complexContent>
        <xs:extension base="Inline">
          <xs:attributeGroup ref="attrs" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="Inline" mixed="true">
    <xs:annotation>
      <xs:documentation>
      "Inline" covers inline or "text-level" elements
      </xs:documentation>
    </xs:annotation>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="inline" />
      <xs:group ref="misc.inline" />
    </xs:choice>
  </xs:complexType>

一个好的学习可能是看XTHML XSD。您可以使用XSD编辑器调查与 p 标记关联的结构。