1。我有一个格式良好的 xml,如下
<graph>
<id>g0</id>
<name>test</name>
<nodes>
<node>
<id>a</id>
<name>xxxx</name>
</node>
<node>
<id>e</id>
<name>xxxx</name>
</node>
</nodes>
<edges>
<node>
<id>e1</id>
<from>a</from>
<to>e</to>
</node>
</edges>
</graph>
2。我的逻辑,XSD 尝试实现它
我正在尝试为我的 xml 定义一个模式,其角色是所有元素都应按顺序排列,但 id 和 name 可以按任何顺序排列 这是我的sechema
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="graph" type="AType"/>
<xsd:complexType name="AType">
<xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="name" type="xsd:string" />
<xsd:element name="nodes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="node" maxOccurs="unbounded" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element type="xsd:string" name="id"/>
<xsd:element type="xsd:string" name="name"/>
<xsd:any minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
所以你可以在这里看到我的
<id>g0</id>
<name>test</name>
也是序列的一部分,它们被迫遵循顺序,但我不希望对这两个有任何顺序,只要它们在那里 有什么建议吗?
注意:请注意,我知道 all 意味着顺序并不重要,但我的问题是如何将 all 和 seuqence 一起使用复杂类型?
3. XSD 处理器及其与 XSD 标准的一致性:1.0 或 1.1。
我正在使用 XSD 处理器...以及它与 XSD 标准的一致性...
您不能在同一内容模型中混合使用 xs:all 和 xs:sequence,但您可以定义一个允许其中任意一种的序列
id, name, nodes, edges
或
name, id, nodes, edges
通过制作内容模型
sequence
choice
sequence
id
name
sequence
name
id
nodes
edges