XML Schema extension element

definition and usage

The extension element extends the element of simpleType or complexType.

element information

occurrence times once
parent element complexContent
content annotation, attribute, attributeGroup, anyAttribute, choice, all, sequence, group

grammar

<extension
id=ID 
base=QName
any attributes
>
(annotation?,((group|all|choice|sequence)?,
((attribute|attributeGroup)*,anyAttribute?)))
</extension>
property توضیح
id اختیاری. یک ID منحصر به فرد برای این element مشخص می‌کند.
base ضروری. نام نوع داده‌های داخلی، simpleType یا complexType را مشخص می‌کند.
xml:lang اختیاری. زبانی که در محتوای استفاده می‌شود را مشخص می‌کند.

؟ نماد در داخل element extension مشخص شده است، این element فقط می‌تواند صفر یا یک بار ظاهر شود، * نماد مشخص می‌کند که این element می‌تواند صفر یا چندین بار ظاهر شود.

مثال

مثال 1

مثال زیر با افزودن attribute، یک simpleType موجود را گسترش می‌دهد:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="size">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small" />
    <xs:enumeration value="medium" />
    <xs:enumeration value="large" />
  </xs:restriction>
</xs:simpleType>
<xs:complexType name="jeans">
  <xs:simpleContent>
    <xs:extension base="size">
      <xs:attribute name="sex">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="male" />
            <xs:enumeration value="female" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>
</xs:schema>

مثال 2

مثال زیر با افزودن سه عنصر، یک element complexType موجود را گسترش می‌دهد:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>
</xs:schema>