我有一些xml文档,这个xml有一些属性值是唯一的元素(例如:name)。我想使用xs:ID在XSD中识别它。 我的问题是: 有没有办法扩展xs:ID以使其支持字符:冒号,斜杠,空格?因为属性“name”可能包含这些字符。
我知道有一些替代方案,例如:在XSD中使用xsd:key或使用XSLT通过xsl:key进行验证。但我还是想问一下是否有办法扩展xs:ID(例如:覆盖一些事实)。
主要原因是我的xml编辑器(Oxygen XML Editor)的自动完成功能仅支持xs:ID和xs:IDREF。 (也许我们可以编写一些编辑器插件来支持它,但它非常难看。因为它会导致编辑器依赖,我们将编写java代码而不是xml。)
答案 0 :(得分:1)
不,ID和IDREF值受限制(出于与SGML相关的神秘原因)具有XML名称的语法。
答案 1 :(得分:1)
可能作为您想要的解决方法,Oxygen XML Editor可以通过调用XSLT脚本来控制属性的值,该脚本可用于从文档中的各个位置收集这些值: http://blog.oxygenxml.com/2015/07/controlled-attribute-values-part-2.html