提问人:Learner 提问时间:10/18/2023 最后编辑:DijkgraafLearner 更新时间:10/18/2023 访问量:49
如何在 xml 架构中使用序列和非序列子项
How to use sequence and non sequence childs in xml schema
问:
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 和 seuqence 复杂类型?
3. XSD处理器及其对XSD标准的符合性:1.0或1.1。
我正在使用 XSD 处理器...及其是否符合 XSD 标准......
答:
0赞
Michael Kay
10/18/2023
#1
不能在同一内容模型中混合使用 xs:all 和 xs:sequence,但可以定义允许
id, name, nodes, edges
或
name, id, nodes, edges
通过制作内容模型
sequence
choice
sequence
id
name
sequence
name
id
nodes
edges
评论
0赞
Learner
10/18/2023
实际上,这很聪明,让我试着在这里得到答案
0赞
Learner
10/21/2023
在两者之间,我被困在这个上面,如果你可能的话,我很感激你的帮助:stackoverflow.com/questions/77327983/......
上一个:反序列化修复值的 XML 列表
评论