xml - проверить комбинацию атрибутов для данного элемента - PullRequest
0 голосов
/ 17 декабря 2010

У меня xml похож на ниже.

<Map>
<MapItem name="firstName" value="john" />
<MapItem name="middleName" value="q" />
<MapItem name="lastName" value="public" />
<MapItem name="phone" value="123-456-7890" />
<MapItem name="ssn" value="123-45-6789" />
<MapItem name="email" value="john@email.com" />
</Map>

Я хотел бы придумать один xsd, который может проверять значения атрибутов для каждого MapItem.

Пример:

  • middleName = один символ
  • телефон = некоторый шаблон регулярного выражения
  • ssn = некоторый другой шаблон регулярного выражения
  • и т. Д..

Возможно ли это (только с одним xsd)?

ПРИМЕЧАНИЕ: в настоящее время я использую xslt для преобразования этого xmlв более элементную структуру, которую я могу легко проверить;но мне нужно сделать это без преобразования xslt.

1 Ответ

0 голосов
/ 17 декабря 2010

К сожалению, схемы XSD не поддерживают условную проверку.Вы не сможете выполнить проверку, которую вы ищете, используя схему XSD.

Вы уже используете одно решение, которое является преобразованием XSLT.Вы также можете выполнить проверку с использованием XSLT за один шаг, когда выходные данные преобразования XSLT будут отображать список ошибок проверки.

Я также нашел для вас ссылку на oXygen сайт, рассказывающий о методе, использующем схему Schemtron и / или схему Relax NG.

Надеюсь, это поможет !!!

...