Владелец сведений должен включить в XSD вида сведений пространство имён XSD, содержащих объявления типов данных для всех использованных справочников ЕСНСИ с использованием инструкции import.
Пример протокола обмена (вида сведений), импортирующего пространство имён с объявлениями типов данных справочника «Справочник полов», приведён на рисунке 50. В приведённом примере импорт пространства имён обеспечивается инструкцией вида:
<xs:import namespace="urn://cnsi-dictionary/types/gender/3.0.0" schemaLocation="types/gender.xsd"/> |
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn://simple_test/1.0" xmlns:gender="urn://cnsi-dictionary/types/gender/3.0.0" targetNamespace="urn://simple_test/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="urn://cnsi-dictionary/types/gender/3.0.0" schemaLocation="types/gender.xsd"/>
<xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="Person" type="tns:Person" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="Person"> <xs:sequence> <xs:element name="FIO" type="xs:string"/> <xs:element name="Gender" type="gender:ID"/> </xs:sequence> </xs:complexType> </xs:schema> |
Рисунок 50 – Пример схемы протокола обмена, импортирующего схему с объявлением типов справочников.
Импортируемая схема c объявлениями типов справочника «gender» приведена на рисунке 51.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn://cnsi-dictionary/types/gender/3.0.0" targetNamespace="urn://cnsi-dictionary/types/gender/3.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:simpleType name="ID"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="10"/> <xs:enumeration value="0001"/> <xs:enumeration value="0002"/> </xs:restriction> </xs:simpleType> </xs:schema> |
Рисунок 51 – Пример XSD-схемы с объявлениями типов справочника «gender».
Пример содержимого справочника ЕСНСИ «gender» приведён в таблице 11.
Таблица 11 – Справочник ЕСНСИ «gender»
ID |
Name |
0001 |
Мужской |
0002 |
Женский |
Пример запроса, соответствующего схеме на рисунке 50, приведён на рисунке 52.
<ns:root xmlns:ns="urn://simple_test/1.0"> <ns:Person> <ns:FIO>Иванов И.И.</ns:FIO> <ns:Gender>0001</ns:Gender> </ns:Person> <ns:Person> <ns:FIO>Петрова А.А.</ns:FIO> <ns:Gender>0002</ns:Gender> </ns:Person> </ns:root> |
Рисунок 52 – Пример запроса с использованием значений справочника «gender».