عنصر extension XML Schema

تعریف و استفاده

عنصر extension به عناصر simpleType یا complexType توسعه می‌دهد.

اطلاعات عنصر

تعداد ظهور یک بار
عنصر والد complexContent
محتوای نشانگر، ویژگی، گروه ویژگی، anyAttribute، انتخاب، همه، ترتیب، گروه

نحوه استفاده

<extension
id=ID 
base=QName
ویژگی‌های هر یک
>
(نشانگر?,((گروه|همه|انتخاب|ترتیب)?,,
((ویژگی|گروه ویژگی)*,anyAttribute?)))
</extension>
ویژگی‌ها توضیح
id اختیاری. ID منحصر به فرد این عنصر تعیین شده.
base ضروری. نام نوع درونی، simpleType یا complexType عناصر تعیین شده.
xml:lang اختیاری. زبان مورد استفاده در محتوای تعیین شده.

نشانگر (? در داخل عنصر extension قرار دارد، این عنصر می‌تواند صفر یا یک بار ظاهر شود، * نشانگر این است که این عنصر می‌تواند صفر یا چند بار ظاهر شود.)

مثال

مثال 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>