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