art*_*tur 7 java xml schema xsd xerces
我正在尝试设计一个模式来验证已经在应用程序中使用的xml格式(重新设计xml的空间不大).
我正在尝试利用xml架构字典的key和keyref元素来验证身份约束.
一个特别的问题是xml模拟一对多关系的方式
<spaceships>
<spaceship guns="gun1 gun2 gun3"/>
</spaceships>
<guns>
<gun id="gun1"/>
<gun id="gun2"/>
<gun id="gun3"/>
</guns>
Run Code Online (Sandbox Code Playgroud)
我在我的架构中想出了这对key/keyref
<xs:key name="gunKey">
<xs:selector xpath="guns/gun" />
<xs:field xpath="@id" />
</xs:key>
<xs:keyref name="gunRef" refer="gunKey">
<xs:selector xpath="spaceships/spaceship" />
<xs:field xpath="@guns" />
</xs:keyref>
Run Code Online (Sandbox Code Playgroud)
这不会与xerces抗议验证:
键'gun1 gun2 gun3'键'gunRef'找不到元素的身份约束.
无论如何,在模式中表示列表的值是逗号分隔的对另一个实体的引用列表,并仍然获得身份约束验证的好处?
恐怕您无法为属性创建此类引用,guns="gun1 gun2 gun3"因为gun1 gun2 gun3它是一个简单的字符串,不会自动分为 3 个单独的部分。
编辑 1:如果您想匹配此类属性,请查看此 QA:XML 架构;有效属性值列表中的多个
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |