Xml XSD。类型定义不正确

Xml XSD。类型定义不正确,xml,xsd,Xml,Xsd,我编写了一个XML类型定义,但它不正确。我的错在哪里?我怎样才能重写它 <xs:complexType name="resourceKeyName"> <xs:simpleContent> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> <xs:minLength value="5"/> &l

我编写了一个XML类型定义,但它不正确。我的错在哪里?我怎样才能重写它

  <xs:complexType name="resourceKeyName">
    <xs:simpleContent>
      <xs:restriction base="xs:string">
        <xs:maxLength value="30"/>
        <xs:minLength value="5"/>
        <xs:pattern value="^ref-"/>
      </xs:restriction>   
    </xs:simpleContent>
  </xs:complexType>

===================================

更新

我重写了我的代码,如下所示:

<xs:complexType name="_inner">
    <xs:simpleContent>
      <xs:extension base="xs:string">
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>  

  <xs:complexType name="resourceKeyName">
    <xs:simpleContent>
      <xs:restriction base="_inner">
        <xs:maxLength value="30"/>
        <xs:minLength value="5"/>
        <xs:pattern value="^ref-"/>     
      </xs:restriction>   
    </xs:simpleContent>
  </xs:complexType>

代码现在是正确的,但我不喜欢这样的解决方案。

为什么不:

<xs:simpleType name="resourceKeyName">
    <xs:restriction base="xs:string">
        <xs:maxLength value="30" />
        <xs:minLength value="5" />
        <xs:pattern value="^ref-" />
    </xs:restriction>
</xs:simpleType>

您想要具有嵌套元素的类型,还是仅具有文本内容?如果您想要文本-您应该创建
xs:simpleType