2014-10-22 49 views
2

我如何确保xml文档中的列表具有来自允许的类型的至少一个值?如何使列表需要使用XSD的列表1值?

我一直在使用使用MINLENGTH = 1,但是这并没有工作的尝试:

<xs:simpleType name="FeatureOption"> 
    <xs:list> 
     <xs:simpleType> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
      <xs:enumeration value="F0"/> 
      <xs:enumeration value="F0A"/> 
      <xs:enumeration value="F0B"/> 
      <xs:enumeration value="F0C"/> 
      <xs:enumeration value="F1"/> 
      <xs:enumeration value="F2"/> 
      <xs:enumeration value="F2A"/> 
      <xs:enumeration value="F3"/> 
      <xs:enumeration value="F3A"/> 
      <xs:enumeration value="F3B"/> 
      <xs:enumeration value="F3C"/> 
      <xs:enumeration value="DataOnly"/> 
     </xs:restriction> 
     </xs:simpleType> 
    </xs:list> 
    </xs:simpleType> 

我也试过这样:

<xs:element name="Feature" type="FeatureOption" nillable="false" minOccurs="1"/> 

回答

3

一个可能的解决方案使用应该是

<xs:simpleType name="FeatureOptionType"> 
    <xs:restriction base="FeatureOption"> 
     <xs:minLength value="1"/> 
    </xs:restriction> 
</xs:simpleType> 
<xs:simpleType name="FeatureOption"> 
    <xs:list> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:enumeration value="F0"/> 
       <xs:enumeration value="F0A"/> 
       <xs:enumeration value="F0B"/> 
       <xs:enumeration value="F0C"/> 
       <xs:enumeration value="F1"/> 
       <xs:enumeration value="F2"/> 
       <xs:enumeration value="F2A"/> 
       <xs:enumeration value="F3"/> 
       <xs:enumeration value="F3A"/> 
       <xs:enumeration value="F3B"/> 
       <xs:enumeration value="F3C"/> 
       <xs:enumeration value="DataOnly"/> 
      </xs:restriction> 
     </xs:simpleType> 
    </xs:list> 
</xs:simpleType> 

以这种方式

<xs:element name="Feature" type="FeatureOptionType" />