【问题标题】:Can I extend ID and IDREF to make it support characters:colon,slash,space?我可以扩展 ID 和 IDREF 以使其支持字符:冒号、斜杠、空格吗?
【发布时间】:2023-04-02 05:35:01
【问题描述】:

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

我知道有一些替代方案,例如:在 XSD 中使用 xsd:key 或使用 XSLT 通过 xsl:key 进行验证。但我仍然想问是否有办法扩展 xs:ID(例如:覆盖一些事实)。

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

【问题讨论】:

    标签: xml xsd oxygenxml


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,这似乎正是我想要的。我看了你提到的那篇文章,但是我发现我缺少很多 Oxygen XML Editor 领域的概念(例如:DITA、framework、resources 文件夹、Classpath,...),可能需要花点功夫才能理解。内容完成配置文件是否支持范围基础内容完成?
      • 我可能需要一个小例子来理解你需要什么,一个小的 XML 文件和一些关于你想在各个地方获得什么值的细节。也许您可以写信给“support@oxygenxml.com”并提供更多详细信息。
      猜你喜欢
      • 2013-03-26
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2020-04-02
      • 1970-01-01
      相关资源
      最近更新 更多