65 lines
No EOL
2.3 KiB
XML
65 lines
No EOL
2.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<xs:element name="MonitoringRequest">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="UserId" type="RequiredString"/>
|
|
<xs:element name="Password" type="RequiredString"/>
|
|
<xs:element name="PackageName" type="PackageNameType"/>
|
|
<xs:element name="Subjects">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Subject" type="Subject" minOccurs="1" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<!-- Проверка уникальности Id в рамках всего XML -->
|
|
<xs:unique name="uniqueSubjectId">
|
|
<xs:selector xpath=".//Subject"/>
|
|
<xs:field xpath="Id"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
|
|
<!-- Тип для Subject -->
|
|
<xs:complexType name="Subject">
|
|
<xs:sequence>
|
|
<xs:element name="Id" type="IdType"/>
|
|
<xs:element name="ClientId" type="ClientIdType"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<!-- Тип для ClientId (ровно 9 цифр) -->
|
|
<xs:simpleType name="ClientIdType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:length value="9"/>
|
|
<xs:pattern value="[0-9]{9}"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- Тип для Id (не более 36 символов) -->
|
|
<xs:simpleType name="IdType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:maxLength value="36"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- Тип для PackageName -->
|
|
<xs:simpleType name="PackageNameType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:maxLength value="22"/>
|
|
<xs:pattern value="[A-Z0-9_]+"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- Базовый тип для обязательных строковых полей -->
|
|
<xs:simpleType name="RequiredString">
|
|
<xs:restriction base="xs:string">
|
|
<xs:minLength value="1"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema> |