小编ssv*_*ssv的帖子

如何使用JAXP(xerces)确定其XSD的所有'key/keyref'约束违反XML文档

我需要针对其XSD架构验证XML,我已经定义了几个"key/keyref"约束来确定所有现有的违规.但是,首次确定此类keyref违规后,JAXP XML验证程序将跳过其他人,即使它们存在.

具有两个keyref违规的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<relations>
<keys>
    <key id="1"/>
    <key id="2"/>       
</keys>     
<refs>      
    <ref to="2"/><!-- This is valid because key with id 2 present -->

      <!-- This two xml elements have 'keyref' constraint violation because there aren't        coresponding keys with id 3,4-->
    <ref to="3"/>
    <ref to="4"/>
</refs>
</relations>
Run Code Online (Sandbox Code Playgroud)

xsd架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 <xs:element name="relations">
<xs:complexType>
  <xs:all>
    <xs:element ref="keys"/>
    <xs:element ref="refs"/>
  </xs:all>
</xs:complexType>
<!-- Constraints Section -->    
<xs:key name="key-pk">
    <xs:selector xpath="keys/key" />
    <xs:field xpath="@id" />
</xs:key>
<xs:keyref …
Run Code Online (Sandbox Code Playgroud)

java xml validation xsd jaxp

5
推荐指数
0
解决办法
609
查看次数

标签 统计

java ×1

jaxp ×1

validation ×1

xml ×1

xsd ×1