Использовать строку формата - http://docs.python.org/lib/typesseq-strings.html
Например:
python -c 'print "%(num)02d" % {"num":5}'
Чтобы иметь атрибут элемента с ограниченным контентом, определите новый 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
для более естественного выражения целочисленного диапазона во втором случае.