2010-08-02 66 views
1

可以發給一些XML的一個實例:創建XSD例子 - 營業時間 - 一個幾類

<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代碼。

+1

什麼是用例? – oluies 2010-08-02 17:19:41

回答

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>