我正在研究一种XML Schema,它将用于许多应用程序之间的数据传输,而不是我们控制的所有应用程序。核心数据对所有人来说都是一样的,但我们希望允许特定的应用程序存储额外的数据,以允许文件“往返”,这样他们就可以保存和重新加载,而不会丢失任何特定于该应用程序的内容。这是什么最好的做法?
我们到目前为止的想法是为每个主节点定义一个节点,这将允许我们针对模式进行验证(没有意外的节点或错误位置的节点),这允许任何东西存储在扩展下节点
我们可能还希望将这些扩展模式中的一个或多个定义为模式本身。
请问其他标准如何完成?我们应该采用什么?
答案 0 :(得分:1)
如果原始模式不是为了可扩展性而写的,那么你就不走运了。
作为为可扩展性编写的模式的示例,请参阅WSDL的模式。请注意,几乎所有内容都扩展了wsdl:documented
类型。请注意,许多元素也允许可扩展性:
<complexType name="serviceType">
<complexContent>
<extension base="wsdl:documented">
<sequence>
<element ref="wsdl:port" minOccurs="0" maxOccurs="unbounded"/>
<any namespace="##other" minOccurs="0"/>
</sequence>
<attribute name="name" type="NCName" use="required"/>
</extension>
</complexContent>
</complexType>
any
元素将允许包含任意XML。
BTW,我所知道的关于XML架构的一切,我是从Eric XML Schema的Eric van der Vlist那里学到的。
发布者: O'Reilly Media,Inc。
发布日期: 2002年6月25日
打印 ISBN-13:978-0-596-00252-7
页数: 400
见第13章,Creating Extensible Schemas。