2015-05-01 3 views
0

У меня есть определение XSD, который выглядит следующим образом:XSD ограничения сложного типа элемент

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

    <xs:element name="ARTICLES"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" name="ARTICLE"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="NAME" type="xs:string" /> 
       <xs:element name="TYPE" type="xs:unsignedByte" /> 
       <xs:element name="LENGTH" type="xs:unsignedByte" /> 
       <xs:element name="WIDTH" type="xs:unsignedShort" /> 
       <xs:element name="HEIGHT" type="xs:unsignedShort" /> 
       <xs:element maxOccurs="unbounded" name="PRICELIST"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element name="SALESCONTRACT" type="xs:string" /> 
        <xs:element name="PRICE" type="xs:decimal" /> 
        <xs:element name="VAT" type="xs:unsignedByte" /> 
        </xs:sequence> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

XML-может содержать коллекцию ATRICLES и каждую статью может иметь 1 или несколько записей PriceList

Теперь я бы как взять элемент и ограничить записи значений. то есть с регулярным выражением или числами только или по длине. С простыми типами я нашел много примеров, которые работают с тегом шаблона. Как это будет работать со сложными типами?

С уважением,

Rick

ответ

0

Вы можете просто применить все эти примеры вы нашли с помощью xs:simpleType к любой из частей ARTICLE, которые вы хотите в дальнейшем сдерживать. Например, чтобы ограничить NAME, чтобы иметь максимальную длину 32 символов:

  <xs:element name="NAME"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:maxLength value="32"/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
+0

Кажется, работает ... Спасибо – Rick

Смежные вопросы