【问题标题】:Force use of CDATA in XML-schema在 XML 模式中强制使用 CDATA
【发布时间】:2008-12-25 11:52:20
【问题描述】:

我正在创建一个 xml 架构,并且我想确保所有元素中的值 是 CDATA 元素。

有没有办法使用 XML 模式强制执行此操作?

【问题讨论】:

  • CDATA 只是一种封装文本的便捷方式。您应该关心它是带有实体转义的文本还是 CDATA?我错过了什么吗?
  • 我使用这个模式作为在几个同事之间同步的一种手段,这可能会对某些 XML 文件造成更改。我们的标准是 XML 值被 CDATA 包围,我想使用 XML 模式来执行这个标准。这有意义吗?
  • 不是这样的。这个标准的目的是什么?
  • 强制机器生成的 xmls 使用 cdata。如果机器生成的 xml 是普通的(无 cdata),它们在第一次使用时可能是正确的,但后来在数据包含冲突字符时会失败。所以我想从一开始就强制执行 cdata 块,以立即捕获程序员的错误并避免将来可能出现的问题。坏主意?
  • 想要这样的一个很好的理由是在模式级别强制空格在值中很重要。在模式中完成此操作意味着基于模式进行对象序列化的工具将知道始终将 CDATA 块放在那里,因此如果人稍后编辑文件,他们不会弄乱格式。

标签: xml xsd cdata


【解决方案1】:

我记得 XML Schema 在 XML Infoset 上工作,这意味着在解析 XML 文档后,解析实体,规范化空格并处理 CDATA。 CDATA 是一种简化文本序列化的方法,而不是结构模型的一部分。所以:不。在 DTD 或 RELAX NG 中都没有。

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多