.net Xsd.exe架构错误:未定义的complexType';http://www.w3.org/2001/XMLSchema:string' 用作复杂类型限制的基础

.net Xsd.exe架构错误:未定义的complexType';http://www.w3.org/2001/XMLSchema:string' 用作复杂类型限制的基础,.net,xsd,xsd.exe,.net,Xsd,Xsd.exe,如何解决这个问题 警告2未定义的complexType'http://www.w3.org/2001/XMLSchema:string'用作复杂类型限制的基础 这是因为 <xs:element name='TO'> <xs:complexType> <xs:simpleContent> <xs:restriction base='xs:string'> <xs:maxLength val

如何解决这个问题

警告2未定义的complexType'http://www.w3.org/2001/XMLSchema: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>

看看这个看起来不错,但不是根据VS2010和Xsd.exe


我真正想做的就是为一个元素定义一个可以包含上述两个属性的元素,并且它的元素文本应该限制为15个字符。

不能将一个字符串限制为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>