Cheque.xsd — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
(Новая страница: «<?xml version="1.0" encoding="utf-8"?> <xs:schema id="Cheque" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- Совместная схема для ч…»)
 
(нет различий)

Текущая версия на 11:41, 1 марта 2019

<?xml version="1.0" encoding="utf-8"?> <xs:schema id="Cheque" xmlns:xs="http://www.w3.org/2001/XMLSchema">

   <xs:simpleType name="IN">
       <xs:restriction base="xs:string">
           <xs:pattern value="(\d{10}|\d{12})" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="KP">
       <xs:restriction base="xs:string">
           <xs:pattern value="(\d{9}|)" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="DT">
       <xs:restriction base="xs:string">
           <xs:pattern value="(((31(0[13578]|1[02])|((29|30)(0[1,3-9]|1[0-2]))|((0[1-9]|1\d|2[0-8])(0[1-9]|1[0-2])))\d{2})|(2902(0[48]|[2468][048]|[13579][26]|00)))([01]\d|2[0-3])[0-5]\d((\+|-)\d{4})?" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="BK">
       <xs:restriction base="xs:string">
           <xs:pattern value="([1-9]\d{2}|\d([1-9]\d|\d[1-9])){2}([1-9]\d{7}|\d([1-9]\d{6}|\d([1-9]\d{5}|\d([1-9]\d{4}|\d([1-9]\d{3}|\d([1-9]\d{2}|\d([1-9]\d|\d[1-9])))))))(0[1-9]|1[0-2])(1[8-9]|[2-9][0-9])([1-9]\d{2}|\d([1-9]\d|\d[1-9]))[0-9A-Z]{129}|\d\d[a-zA-Z0-9]{21}\d[0-1]\d[0-3]\d{10}[a-zA-Z0-9]{31}|[0-9]{40}" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="EAN">
       <xs:restriction base="xs:string">
           <xs:pattern value="(\d{8}|\d{13}|\d{12}|\d{14})" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="PRICE">
       <xs:restriction base="xs:string">
           <xs:pattern value="[-]?\d+\.\d{0,2}" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="VOLUME">
       <xs:restriction base="xs:string">
           <xs:pattern value="(\d+\.?\d{0,4}|)" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ADDRESS">
       <xs:restriction base="xs:string">
           <xs:maxLength value="128" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="NAME">
       <xs:restriction base="xs:string">
           <xs:maxLength value="128" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="COUNT">
       <xs:restriction base="xs:integer">
           <xs:pattern value="[1-9][0-9]{0,9}" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="CODE">
       <xs:restriction base="xs:string">
           <xs:pattern value="\d{3}" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="NOEMPTY">
       <xs:restriction base="xs:string">
           <xs:pattern value="[a-zA-Z0-9_-]{1,128}" />
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ALCCODE">
       <xs:restriction base="xs:string">
           <xs:maxLength value="64"/>
           <xs:pattern value="[a-zA-Z0-9_-]+(.*[a-zA-Z0-9_-]+)*"/>
       </xs:restriction>
   </xs:simpleType>
   <xs:element name="Bottle">
       <xs:complexType>
           <xs:attribute name="price" type="PRICE" use="required" />
           <xs:attribute name="barcode" type="BK" use="required" />
           <xs:attribute name="ean" type="EAN" />
           <xs:attribute name="volume" type="VOLUME" />
       </xs:complexType>
   </xs:element>
   <xs:element name="nopdf">
       <xs:complexType>
           <xs:attribute name="code" type="CODE" use="required"/>
           <xs:attribute name="price" type="PRICE" use="required"/>
           <xs:attribute name="bname" type="NAME" use="required" />
           <xs:attribute name="alc" type="VOLUME" use="required" />
           <xs:attribute name="volume" type="VOLUME" use="required" />
           <xs:attribute name="ean" type="EAN" />
           <xs:attribute name="count" type="COUNT" use="required" />
           <xs:attribute name="alccode" type="ALCCODE" />
       </xs:complexType>
   </xs:element>


   <xs:element name="Cheque">
       <xs:complexType>
           <xs:sequence>
               <xs:choice>
                   <xs:element ref="Bottle" maxOccurs="unbounded" />
                   <xs:element ref="nopdf" maxOccurs="unbounded" />
               </xs:choice>
           </xs:sequence>
           <xs:attribute name="inn" type="IN" use="required" />
           <xs:attribute name="kpp" type="KP" />
           <xs:attribute name="address" type="ADDRESS" use="required"  />
           <xs:attribute name="name" type="NAME" use="required" />
           <xs:attribute name="kassa" type="NOEMPTY" use="required" />
           <xs:attribute name="shift" type="COUNT" use="required" />
           <xs:attribute name="number" type="COUNT" use="required" />
           <xs:attribute name="datetime" type="DT" use="required" />
       </xs:complexType>
       <xs:unique name="bottleBarcode">
           <xs:selector xpath="Bottle" />
           <xs:field xpath="@barcode" />
       </xs:unique>
   </xs:element>

</xs:schema>