Безымянные типы

Все описанные в листинге 14.3 типы используются только один раз. Поэтому необязательно давать типу имя. Схема XML, как говорилось выше, позволяет определять безымянные типы. Такое определение дается внутри описания элемента. Именно так в листинге 14.3 описаны атрибуты элемента name. В листинге 14.4 показано упрошенное описание схемы адресной книги.

Листинг 14.4. Схема документа XML с безымянными типами

<?xml version='1.0'?>

<xsd:schema. xmlns:xsd=”http://www.w3.org/2001/XMLSchema'”>

<xsd: element. Name”notebook” >

<xsd:complexType>

<xsd:sequence>

<xsd:element name=”person” maxOccurs=”unbounded”> <xsd:complexType>

<xsd:sequence>

<xsd; element name=”name” >

<xsd: complexType>

<xsd:attribute name=”first”

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

<xsd;attribute name=”second”

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

<xsd: attribute: name=”surname”

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

</xsd:complexType>

</xsd: element >

<xsd;element name=”birthday”>

<xsd:simp1eType>

<xsd: restriction base=”xsd:string”>

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

</xsd:simpleType>

</xsd:element>

<xsd:elementt name=”address” maxOccurs=”unbounded”>

<xsd:complexType>

<xsd:sequence>

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

<xsd:element name=”city”>

<xsa:complexType>

<xsd:simpleContent>

<xsd: extension base=”xsd: string” >

<xsd:attribute name=”type” type=”xsd:string”

use=”optional” default=”gorod” />

</xsd: extension>

</xsd: simpleContent>

</xsd: complexType>

</xsd:element>

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

</xsd:sequence>

</xsd:complexType>

<xsd:element name=”phone-list”>

<xsd: complexType>

<xsd:sequence>

<xsd:element name=”work-phone” type=”xsd:string”

min0ccurs=”0” maxOccurs=”unbounded” />

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

</xsd:sequence>

</xsd: complexType>

</xsd:element>

</xsd:sequence>

</xsd: complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

Еще одно упрощение можно сделать, используя пространство имен по умолчанию. Посмотрим, какие пространства имен применяются в схемах XML.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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