5.4.1 Библиотеки типов

Поскольку XML схемы становятся все более распространенными, авторы схем захотят создавать простые и сложные типы, которые можно будет разделять, и использовать как строительные блоки при создании новых схем. XML Schemas уже обеспечивают типы, которые играют эту роль, в частности типы, описанные в Приложении “Простые типы” и в предварительной библиотеке типов.

Авторы схем, несомненно, захотят создавать свои собственные библиотеки типов, чтобы иметь возможность представлять такие параметры как валюта, единица измерения, деловые адреса и так далее. Каждая библиотека могла бы состоять из схемы, содержащей одно или более определений, например, схема, содержащая тип currency:

Пример типа Currency в библиотеке типов

<schema targetNamespace="http://www.example.com/Currency"
		xmlns:c="http://www.example.com/Currency"
		xmlns="http://www.w3.org/2001/XMLSchema">

 <annotation>
  <documentation xml:lang="en">
   Definition of Currency type based on ISO 4217
  </documentation>
 </annotation>

 <complexType name="Currency">
  <simpleContent>
   <extension base="decimal">
    <attribute name="name">
     <simpleType>
      <restriction base="string">

       <enumeration value="AED">
        <annotation>
         <documentation xml:lang="en">
          United Arab Emirates
         </documentation>
        </annotation>
       </enumeration>

       <enumeration value="AFA">
        <annotation>
         <documentation xml:lang="en">
          Afghanistan: Afghani (1 Afghani = 100 Puls)
         </documentation>
        </annotation>
       </enumeration>

       <enumeration value="ALL">
        <annotation>
         <documentation xml:lang="en">
          Albania, Lek (1 Lek = 100 Qindarka)
         </documentation>
        </annotation>
       </enumeration>

       <!-- and other currencies -->

      </restriction>
     </simpleType>
    </attribute>
   </extension>
  </simpleContent>
 </complexType>

</schema>

Пример элемента, имеющего этот тип, представлен ниже:

<convertFrom name="AFA">199.37</convertFrom>

Как только мы определили тип currency, мы можем сделать его доступным для многократного использования в других схемах посредством чуть ранее описанного механизма import.

 

Сайт создан в системе uCoz