2010-08-02 36 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>