在我的情况下定义xsd架构的正确方法

时间:2010-07-13 11:53:59

标签: xml xsd

<Item id="G1@MIT" type="GROUP">
   <Item id="B1@MIT" type="BLOCKSEGMENT"/>
   <Item id="S1@MIT" type="SWITCH"/>
</Item>

上面的xml内容是我的xml数据的一个例子。 如您所见,我有可以包含其他项目的项目 我的第一个问题是如何在这种情况下定义xml架构 我的第二个问题是我希望我的id属性包含'@'字符。
我怎样才能做到这一点?

1 个答案:

答案 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元素。