Определите ограниченный текстовый контент как глобальный (= named) <xs:simpleType>
, затем используйте его как базовый тип для <xs:extension>
, который вам понадобится при создании нового типа по расширению, чтобы добавить атрибут.
Определение типа элемента, который имеет атрибуты, должно быть <xs:complexType>
. С другой стороны, если содержимое элемента может быть только текстом или атрибутами, но не элементами, содержимое должно быть определено как <xs:simpleContent>
. Пример кода ниже.
<!-- 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>
Более полное объяснение расширения простых элементов содержимого с помощью атрибута см. Здесь:
http://www.xml.com/pub/a/2001/08/22/easyschema.html