Исправление кода XSD - не проверяет [дубликат]

Использовать строку формата - http://docs.python.org/lib/typesseq-strings.html

Например:

python -c 'print "%(num)02d" % {"num":5}'

2
задан kjhughes 10 June 2016 в 03:29
поделиться

1 ответ

Чтобы иметь атрибут элемента с ограниченным контентом, определите новый xs:simpleType, а затем используйте xs:extension, чтобы расширить его с помощью атрибута:

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

  <xs:element name="algo">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nota" type="t_algo" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="t_algo">
    <xs:simpleContent>
      <xs:extension base="t_algo_content">
        <xs:attribute name="modul" type="t_modul"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="t_modul">
    <xs:restriction base="xs:string">
      <xs:pattern value="m0[0-9]"/>
    </xs:restriction> 
  </xs:simpleType> 

  <xs:simpleType name="t_algo_content">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="10"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>

Обратите также внимание на то, что I ' упростил ваш шаблон регулярного выражения в первом случае и использовал minInclusive / maxInclusive для более естественного выражения целочисленного диапазона во втором случае.

2
ответ дан kjhughes 25 August 2018 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: