Поскольку 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
.