2010-11-16 44 views
2

如何解決這個問題的一個基地?XSD.EXE架構錯誤:未定義複雜類型「http://www.w3.org/2001/XMLSchema:string」被用作複雜類型的限制

警告2未定義的complexType「http://www.w3.org/2001/XMLSchema:string」被用作用於複雜類型限制的基礎。

這是因爲<xs:simpleContent><xs:restriction base='xs:string'>

<xs:element name='TO'> 
    <xs:complexType> 
     <xs:simpleContent> 
     <xs:restriction base='xs:string'> 
      <xs:maxLength value='15'/> 
      <xs:attribute name='PROVID'> 
      <xs:simpleType> 
       <xs:restriction base='xs:int'> 
       <xs:enumeration value='1'/> 
       <xs:enumeration value='2'/> 
       <xs:enumeration value='3'/> 
       <xs:enumeration value='5'/> 
       <xs:enumeration value='6'/> 
       <xs:enumeration value='7'/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name='TYPE'> 
      <xs:simpleType> 
       <xs:restriction base='xs:string'> 
       <xs:enumeration value='NPM'/> 
       <xs:enumeration value='EMS'/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:attribute> 
     </xs:restriction> 
     </xs:simpleContent> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

W3schools reference這看起來不錯,但沒有按照VS2010和XSD.EXE

我真正想做的事情發生的事情是有一個定義對於可以具有上述兩個屬性和其元素文本的元素TO應限制爲15個字符。

回答

2

無法將字符串限制爲15個字符將其擴展爲具有屬性的複雜類型。如果您首先定義一個有限制的字符串類型,然後擴展它,你不會有一個問題:

<xs:simpleType name="RestrictedString"> 
    <xs:restriction base="xs:string"> 
     <xs:maxLength value="15"/> 
    </xs:restriction> 
</xs:simpleType> 
<xs:element name="TO"> 
    <xs:complexType> 
     <xs:simpleContent> 
      <xs:extension base="RestrictedString"> 
       <xs:attribute name="PROVID"> 
        <xs:simpleType> 
         <xs:restriction base="xs:int"> 
          <xs:enumeration value="1"/> 
          <xs:enumeration value="2"/> 
          <xs:enumeration value="3"/> 
          <xs:enumeration value="5"/> 
          <xs:enumeration value="6"/> 
          <xs:enumeration value="7"/> 
         </xs:restriction> 
        </xs:simpleType> 
       </xs:attribute> 
       <xs:attribute name="TYPE"> 
        <xs:simpleType> 
         <xs:restriction base="xs:string"> 
          <xs:enumeration value="NPM"/> 
          <xs:enumeration value="EMS"/> 
         </xs:restriction> 
        </xs:simpleType> 
       </xs:attribute> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:element>