xml - 验证给定元素的属性组合

时间:2010-12-17 17:19:05

标签: xml validation xsd

我有类似于下面的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 =单个字符
  • phone =某些正则表达式
  • ssn =其他一些正则表达式

这是否可行(只有一个xsd)?

注意:目前我正在使用xslt将这个xml转换为更基于元素的结构,我可以轻松验证;但我需要在没有任何xslt转换的情况下这样做。

1 个答案:

答案 0 :(得分:0)

不幸的是,XSD Schemas不支持条件验证。您将无法使用XSD架构执行您正在寻找的验证。

您已经在使用一个XSLT转换解决方案。您还可以一步使用XSLT执行验证,其中XSLT转换的输出将是验证错误的列表。

我还找到了一个link for you on the oXygen网站,讨论了使用Schemtron和/或Relax NG模式的方法。

希望这有帮助!!!