2017-01-13 14 views
-1

У меня есть простой XML как это:XML определение типа документа -> позволяет только различные значения

<whiskey> 
    <taste></taste> 
    <taste></taste> 
</whiskey> 

моя проблема теперь, когда пользователь разрешено только вставить несколько разных вкусов -> как я могу убедитесь, что в DTD-файле пользователь может ввести только два разных вавалюса и не то же самое ...?

Спасибо за помощь!

Greetz

+0

my dtd выглядит так: ---------- ------------- что означает не менее 2 Вкусы, но и больше возможны ... но как я могу убедиться, что Taste1 и Taste2 не то же самое? – nbg15

ответ

1

Использование DTD вы не можете убедиться, что все элементы имеют различные значения. Фактически, вы не можете сделать это с помощью наиболее широко используемых языков определения типа XML, таких как XML Schema или Relax NG.

Однако существуют языки определения типов на основе утверждений, например Schematron, где вы можете указать инварианты, которые должны быть проверены XML-документом. В Schematron эти утверждения написаны с использованием XPath.

+0

Правда, что XSD не может требовать, чтобы «все элементы» имели разные значения; неправда, что требование OP (все элементы 'taste' в данном элементе' whiskey' имеют разные значения) не могут быть применены XSD. –

+0

Не могли бы вы привести пример XSD, который проверяет документы, в которых содержимое двух элементов отличается, но не проверяет их, если они равны? – jpleal

+0

Конечно; определите виски и вкус, как для этого словаря, и добавьте ограничение уникальности, ограниченное элементом виски, указывая на элементы детского вкуса. –

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

  • Нет связанных вопросов^_^