XSD - элемент <schema>

<schema> элемент является корневым элементом каждого XML Schema.

<schema> элемент

<schema> элемент является корневым элементом каждого XML Schema:

<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>

<schema> элемент может содержать атрибуты. Объявление schema часто выглядит так:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.com"
elementFormDefault="qualified">
...
...
</xs:schema>

Комментарий к коду:

Следующий фрагмент:

xmlns:xs="http://www.w3.org/2001/XMLSchema"

Показывает, что элементы и типы данных, используемые в schema, поступают из namespace "http://www.w3.org/2001/XMLSchema". Кроме того, оно устанавливает, что элементы и типы данных из namespace "http://www.w3.org/2001/XMLSchema" должны использовать префикс xs:

Этот фрагмент:

targetNamespace="http://www.codew3c.com"

Показывает, что элементы (note, to, from, heading, body), определенные этим schema, поступают из namespace: "http://www.codew3c.com".

Этот фрагмент:

xmlns="http://www.codew3c.com"

Указывает на то, чтоdefault namespace является "http://www.codew3c.com".

Этот фрагмент:

elementFormDefault="qualified"

Указывает на то, что все элементы, используемые в XML документе, должны быть ограничены namespace, которые объявлены в этом schema.

Цитирование Schema в XML документе

Этот XML документ содержит ссылки на XML Schema:

<?xml version="1.0"?>
<note xmlns="http://www.codew3c.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.codew3c.com note.xsd">
<to>George</to>
<from>John</from>
<heading>Памятка</heading>
<body>Не забудьте встречу!</body>
</note>

Комментарий к коду:

Следующий фрагмент:

xmlns="http://www.codew3c.com"

Указывает на声明默认命名空间. Это声明会 информировать schema validator, что все элементы, используемые в этом XML документе, объявлены в namespace "http://www.codew3c.com".

Как только у вас есть доступный XML Schema namespace:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Теперь вы можете использовать атрибут schemaLocation. Этот атрибут имеет два значения. Первый - это используемый namespace. Второй - это местоположение XML schema для namespace:

xsi:schemaLocation="http://www.codew3c.com note.xsd"