是否可以根据属性编写xml架构以匹配同一元素的不同内容?

时间:2016-11-08 15:52:01

标签: xml xsd

我继承了Xml格式,并负责围绕它设计架构。在大多数情况下,模式生成相当简单,但我遇到了障碍。

问题在于,有些元素具有相同的名称,但会根据属性具有不同的内容。

这是一个例子。这不是Xml的样子,但应该显示问题:

<TravelArrgangement type="Hotel">
  <startDate>11-8-2016</startDate>
  <endDate>11-9-2016</endDate>
  <hotelName>Motel 6</hotelName>
  <address>123 Fake Street</address>
</TravelArrgangement>


<TravelArrgangement type="Flight">
  <startDate>11-8-2016 11:30:00AM</startDate>
  <endDate>11-8-2016 4:30:00PM</endDate>
  <carrier>Delta</carrier>
  <origin>NYC</origin>
  <destination>MIA</destination>
</TravelArrgangement>

请注意,它们都是TravelArrangements,但它们具有不同的子元素。有没有办法让我编写一个模式定义,其中相同的元素可以根据条件具有不同的内容,例如“type”属性。

现在我知道有一个建议是改变Xml格式,以便Flight和HotelStay是他们自己的元素,但是有许多旧系统依赖于这些数据,他们不太可能很快改变。

0 个答案:

没有答案