我继承了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是他们自己的元素,但是有许多旧系统依赖于这些数据,他们不太可能很快改变。