Xml 使用处理指令提供元信息?

Xml 使用处理指令提供元信息?,xml,xslt,jaxb,Xml,Xslt,Jaxb,我打算向XML数据中添加一些版本信息。 由于我的工具多年来不断发展,因此我的XML内容/格式也在不断发展 我可能会向根元素添加一些属性,但我不太喜欢这个解决方案,因为版本信息不是我的业务类的固有属性。 另一个想法是为每个新版本引入一个版本化名称空间 我观察到MS使用了一些PI来标记他们的文档。 引入我自己的定制PI来携带我的元信息是一个好主意吗? 是否有常用PI标签列表或如何设计自己的PI 为了使我的工具能够读取以前的/过时的XML数据,我需要在解释器前面插入一些XSLT转换,以自动适应以前的版

我打算向XML数据中添加一些版本信息。 由于我的工具多年来不断发展,因此我的XML内容/格式也在不断发展

我可能会向根元素添加一些属性,但我不太喜欢这个解决方案,因为版本信息不是我的业务类的固有属性。 另一个想法是为每个新版本引入一个版本化名称空间

我观察到MS使用了一些
PI来标记他们的文档。 引入我自己的定制PI来携带我的元信息是一个好主意吗? 是否有常用PI标签列表或如何设计自己的PI

为了使我的工具能够读取以前的/过时的XML数据,我需要在解释器前面插入一些XSLT转换,以自动适应以前的版本

因此,我的业务类不必关心任何过时的XML语法

有什么建议吗


Dieter.

使用版本化名称空间绝对是个坏主意。这意味着,如果对模式进行3%的更改(仅影响1%的用户),则每个用户都必须更改其应用程序以更改为新名称空间,甚至更糟的是,处理识别多个名称空间的复杂性

使用PI不是常见的解决方案,但没有明显的危害;除了在模式验证期间不能强制PI的存在或内容这一事实之外

在我看来,最干净的解决方案是根元素上的version属性。XSLT就是这样做的,并且工作得很好