double arrow

Листинг 14.5. Схема документа XML с целевым пространством имен


<?xml version=”1.0” ?>

< schema xmlns=“http://www.w3.org/2001 /XMLSchema”

targetNamespace=http://some.firm.ccm/2003/ntbNames xmlns:ntb='http://some.firm.com/2003/ntbNames’”>

<element name=”ntb:notebook”>

<complexType>

<sequence>

<element name=”person” maxOccurs=”unbounded”>

<complexType>

<sequence>

<element name=”name” >

<complexType>

<attribute name=”first”

type=”string” use=”optional” />

<attribute name=”second”

type=”string” use=”optional” />

attribute name=”surname”

type=”string” use=”required" />

</сomplexType>

</element>

<element name=”birthday” >

<simpleType>

<restriction base=”string” >

<pattern value=”[0-9] {2}. [0-9] {2}. [0-9] {4}” />

</restriction>

</simpleType>

</element>

<element name=”address” maxOccurs=”unbounded”>

<complexType>

< sequence>

<element name=”street” type=”string” />

<element name=”city” type=”string” />

<element name=”zip” type=”positiveInteger”/>

</sequence>

</complexType>

</element>

<element name=”phone-list”>

<complexType>

<sequence>

<element name=”work-phone” type=”string” minOccurs=”0” maxQccurs=”unbounded” />

<element name=”home-phone” type=”string minOccurs=”0” maxOccurs=”unbounded”/>

</sequence>

</ complexType>

</element>

</sequence>

</соmplexType>

</element>

</sequence>

</complexType>

</element>

</schema>

Поскольку в листинге 14.5 пространством имен по умолчанию сделано пространство http://www.w3.org/200l/XMLSchema, префикс xsd не нужен.

Следует заметить, что в целевое пространство имен попадают только глобальные имена, чьи описания непосредственно вложены в элемент <schema>. Это естественно, потому что только глобальными именами можно воспользоваться далее в этой или другой схеме. В листинге 14.5 только одно глобальное имя <notebook>. Вложенные имена name, address и другие только ассоциированы с глобальными именами.

В схемах и документах XML часто применяется еще одно стандартное пространство имен. Рекомендация языка XSD определяет несколько атри­бутов: type, nil, schema Location, noNamespaceSchemaLocation, которые применяются не только в схемах, а и непосредственно в описываемых этими схемами документах XML, называемых экземплярами схем (XML schema instance). Имена этих атрибутов относятся к пространству имен http://www.w3.org/2001/XMLSchema-instance. Этому пространству имен чаще всего приписывают префикс xsi, например:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


Сейчас читают про: