可以发送的一些XML的示例:
<hours-of-operation>
<monday hourType="custom">
<open unit="AM">9:00</open> <!-- open/close or closed or 24hour -->
<close unit="PM">5:00</close>
</monday>
<tuesday hourType="closed" />
<wednesday hourType="24hour" />
<thursday hourType="custom">
<open unit="AM">9:00</open> <!-- open/close or closed or 24hour -->
<close unit="PM">5:00</close>
</thursday>
<friday hourType="custom">
<open unit="AM">9:00</open> <!-- open/close or closed or 24hour -->
<close unit="PM">5:00</close>
</friday>
<saturday hourType="closed" />
<sunday hourType="closed" />
</hours-of-operation>
我想要一个定义操作时间元素的XSD 。如果它使事情变得更简单,可以随意使hourType
元素与属性相对。
所以基本上,我每周需要一天,它可以有开放和关闭时间,关闭或24小时开放。此外,这里的要求并不宽松,我需要一周中的所有日子。
如果不清楚,我不想知道你在实践中如何解决这个问题。我想要发布的XML的XSD定义,如果你有一个试图解决这个问题的源我希望特定的XSD部分完全适用于这个XML。我对XML模式知之甚少,虽然我学得最好,但我可以很快,我能得到的最好的东西就是这个用例的实际XSD代码。
答案 0 :(得分:1)
这本来是一个可接受的答案,它不会验证时间是时间,它只是一个字符串,但是对于发布的示例可行。
<xs:element name="hours-of-operation">
<xs:complexType>
<xs:sequence>
<xs:element name="monday" type="day-hours"/>
<xs:element name="tuesday" type="day-hours"/>
<xs:element name="wednesday" type="day-hours"/>
<xs:element name="thursday" type="day-hours"/>
<xs:element name="friday" type="day-hours"/>
<xs:element name="saturday" type="day-hours"/>
<xs:element name="sunday" type="day-hours"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="day-hours">
<xs:choice>
<xs:element name="twentyfourhours"/>
<xs:element name="closed"/>
<xs:element name="hours" type="hours"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="hours">
<xs:sequence>
<xs:element name="open" type="time"/>
<xs:element name="close" type="time"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="time">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="unit" use="required" type="unit"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>