Xsd 如何在XML模式中添加最大长度、必需的属性:是?

Xsd 如何在XML模式中添加最大长度、必需的属性:是?,xsd,Xsd,我知道在XML模式中定义简单元素有两种方法。如何仅向简单元素定义添加maxlength和required属性YES。在下面的两个例子中 <xs:element name="Xyz"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value

我知道在XML模式中定义简单元素有两种方法。如何仅向简单元素定义添加maxlength和required属性YES。在下面的两个例子中

<xs:element name="Xyz">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="4"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

<xs:element name="Xyz" type="xs:string" minOccurs="0" maxOccurs="1"/>

将受限文本内容定义为全局(=命名)
,然后将其用作通过扩展创建新类型以添加属性时所需的
的基本类型

具有属性的元素的类型定义必须是
。然后,如果元素内容只能是文本或属性,而不能是元素,则必须将内容定义为
。下面是示例代码

  <!-- definition of the restricted string -->
  <xs:simpleType name="restrictedLength">
    <xs:restriction base="xs:string">
      <xs:maxLength value="4" />
    </xs:restriction>
  </xs:simpleType>

  <!-- definition for the element with an attribute and text content -->
  <xs:element name="Xyz">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="restrictedLength">
          <xs:attribute name="YES" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

有关使用属性扩展简单内容元素的详细说明,请参见:

在这种情况下,我真的需要扩展吗?我不能直接向简单类型添加属性而不在复杂类型中扩展吗@xyz:是的,简单类型的元素不能包含属性。或者实际上:
不能包含属性定义。因此,元素必须具有复杂类型。谢谢jasso。但在限制长度的简单类型中,最大长度为4。当我将限制长度扩展到不同的复杂类型时,如何根据需求更改最大长度?如果我在不同的地方扩展它…最大长度将始终保持为4 rie?对于不需要字符串限制的元素,您可以使用