我有这样的场景,我必须为不同的目的使用相同的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的新手,提前谢谢。
答案 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 标记关联的结构。