2016-07-29 2 views
0

У меня есть XSD, который определяет максимальную длину 10 для элемента. Строка "12345678'" недействительна, так как она будет экранирована до "12345678'", и это более 10 символов. Я хочу, чтобы "12345678'" был действительным, но я не смог найти способ, как это сделать.Подтвердить неэкранированную длину элемента

XSD:

<xs:element name="ElementName"> 
    <xs:annotation> 
    <xs:appinfo> 
     <b:recordInfo notes="XXX" xmlns:b="XXX" /> 
    </xs:appinfo> 
    </xs:annotation> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="Element1"> 
     <xs:annotation> 
      <xs:appinfo> 
      <b:fieldInfo notes="XXX" /> 
      </xs:appinfo> 
     </xs:annotation> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:minLength value="1" /> 
      <xs:maxLength value="10" /> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:element> 
     <xs:element minOccurs="0" name="Element2"> 
     <xs:annotation> 
      <xs:appinfo> 
      <b:fieldInfo notes="XXX" xmlns:b="XXX" /> 
      </xs:appinfo> 
     </xs:annotation> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:minLength value="1" /> 
      <xs:maxLength value="10" /> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

ответ

1

С точки зрения модели данных, &apos; считается только один символ, и такой же, как '. XML-схема выше на уровнях абстракции, потому что она consumes the XML infoset, где ссылка на объект уже разрешена as a character code.

Некоторые анализируемые ссылки на объекты могут still appear in the XML infoset, но это касается только внешних объектов и не проверяющих процессоров (в смысле проверки DTD) и, насколько я знаю, XML-схемы does not explicitly reference them.

Так что я боюсь, что это невозможно в прямом смысле; но, конечно, я был бы счастлив, если бы оказался ошибочным и чему-то научился. Возможно, использование ограничивающих граней с шаблонами и объединениями может работать, если «объясняет» XML-схему, какие символы считаются экранированными, но для этого, вероятно, потребуется некоторое усилие, и это все равно не будет отличать ' и &apos; от синтаксического уровня.

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