我有类似于下面的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
的属性值。
示例:
这是否可行(只有一个xsd)?
注意:目前我正在使用xslt将这个xml转换为更基于元素的结构,我可以轻松验证;但我需要在没有任何xslt转换的情况下这样做。
答案 0 :(得分:0)
不幸的是,XSD Schemas不支持条件验证。您将无法使用XSD架构执行您正在寻找的验证。
您已经在使用一个XSLT转换解决方案。您还可以一步使用XSLT执行验证,其中XSLT转换的输出将是验证错误的列表。
我还找到了一个link for you on the oXygen网站,讨论了使用Schemtron和/或Relax NG模式的方法。
希望这有帮助!!!