2010-10-06 2 views
3

Мне нужно создать файл XSD для проверки структуры XML, как обычно.XSD Перечисление в диапазоне значений

После генерации XSD (с XMLSpy), я нашел одну часть файла, которая вызывает у меня проблемы. У меня есть перечисление вроде этого:

<xs:enumeration value="1"/> 
    <xs:enumeration value="1011"/> 
    <xs:enumeration value="1032"/> 

и так далее. Проблема в том, что любое заданное целое число в этом перечислении должно считаться действительным, и я не могу писать теги перечисления от 1 до, скажем, 65635.

И я также не знаю, сколько из этого элемента перечисления будет необходимо , потому что количество этих перечисляющих тегов в файле XML не исправлено!

Как сообщить XSD, что любое целочисленное значение в порядке, и что для этого перечисления не существует минимальных или максимальных совпадений в XML-файле?

Спасибо заранее (и простите за мой английский!)

ответ

6

Ваш вопрос не содержит достаточной информации, чтобы точно ответить правильно, но это, вероятно, решит вашу проблему.  

Вы, наверное, есть такой код:

<xs:element name="foobar" type="enumType"/> 

<xs:simpleType name="enumType"> 
    <xs:restriction base="xs:integer"> 
    <xs:enumeration value="1"/> 
    <xs:enumeration value="1011"/> 
    <xs:enumeration value="1032"/> 
    </xs:restriction> 
</xs:simpleType> 

Эта часть схемы определяет элемент <foobar> и простой тип enumType, который является типом содержимого <foobar> элемента. Итак, вы спросили:

Как я могу сказать, что любое XSD целое значение в порядке, и что есть нет минимальных или максимальных ссылок на файл XML для этого перечисления?

Вам не нужно перечислять отдельно все допустимые значения для <foobar>, как у вас есть DTD. Вместо этого вы можете просто использовать predefined types XML-схемы в атрибуте type.

Вот пример кода, который определяет элемент <foobar> и позволяет ему содержать любое целое число.

<xs:element name="foobar" type="xs:integer"/> 

Если я неверно истолковал ваш вопрос, оставьте комментарий и более подробно определите свою проблему. Также было бы полезно узнать больше о вашей схеме.

+0

Проблема решена ... это было просто мое незнание о xsl, которое сгенерировало это! Большое спасибо за вашу помощь ... – nrocha

+0

можно установить фиксированную длину для целочисленного перечисления? например adimoldovan

4

Почему вы должны использовать перечисление и не простое число типа?

+0

Поскольку у меня может быть несколько тегов, соответствующих этим значениям (я имею в виду ни один, один или несколько) – nrocha

+0

и что-то вроде не будет исправлять это? Может быть, http://www.w3schools.com/Schema/schema_facets.asp может вам помочь. – kasten

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