我可以扩展 ID 和 IDREF 以使其支持 characters:colon、斜杠、space 吗?

Can I extend ID and IDREF to make it support characters:colon,slash,space?

我有一些 xml 文档,这个 xml 有一些元素的属性值是唯一的(例如:名称)。我想在XSD中使用xs:ID来识别它。 我的问题是: 有什么方法可以扩展 xs:ID 使其支持字符:冒号、斜线、space?因为属性 "name" 可能有这些字符。

我知道有一些替代方案,例如:在 XSD 中使用 xsd:key 或使用 XSLT 通过 xsl:key 进行验证。但我还是想问问有没有办法扩展xs:ID(eg:override some facts)

主要原因是我的xml编辑器(氧气XML编辑器)的自动补全功能只支持xs:ID和xs:IDREF。 (也许我们可以写一些编辑器插件来支持它,但是它很丑。因为它会导致编辑器依赖,我们会写java代码而不是xml。)

不,ID 和 IDREF 值被限制(出于与 SGML 相关的神秘原因)具有 XML 名称的语法。

也许作为您想要的解决方法,Oxygen XML Editor 确实可以通过调用 XSLT 脚本来控制属性的值,该脚本可用于从文件中的不同位置收集这些值文档: http://blog.oxygenxml.com/2015/07/controlled-attribute-values-part-2.html