<Item id="G1@MIT" type="GROUP">
<Item id="B1@MIT" type="BLOCKSEGMENT"/>
<Item id="S1@MIT" type="SWITCH"/>
</Item>
上面的xml内容是我的xml数据的一个例子。
如您所见,我有可以包含其他项目的项目
我的第一个问题是如何在这种情况下定义xml架构
我的第二个问题是我希望我的id属性包含'@'字符。
我怎样才能做到这一点?
答案 0 :(得分:1)
在XML Schema中定义递归结构是微不足道的。这只是定义包含该类型元素的类型的问题:
<xs:complexType name="ItemType">
<xs:sequence minOccurs="0">
<xs:element name="Item" type="ItemType"></xs:element>
</xs:sequence>
</xs:complexType>
默认情况下,属性可以包含@
字符而不会出现任何问题。如果您想强制该属性包含该字符,那么您应该阅读XML Schema restrictions。特别是,您需要查看xs:pattern
元素。