2009-09-03 19 views
3

我正在研究一个XML Schema,它将用于多个应用程序之间的数据传输,并非全部都在我们的控制之下。核心数据对于所有人来说都是一样的,但我们希望允许特定的应用程序存储额外的数据以允许文件“往返”,以便它们可以保存并重新加载,而不会丢失特定于该应用程序的任何内容。最佳做法是什么?在XML标准中定义扩展的最佳实践是什么?

到目前为止,我们的想法是为每个主节点定义一个节点,这将允许我们根据模式进行验证(没有意外的节点或节点在错误的地方),允许任何东西存储在扩展节点。

很可能我们也希望将这些扩展模式中的一个或多个作为模式定义。

请问这是怎么做的其他标准?我们应该采用什么?

回答

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被包括在内。


顺便说一句,我知道有关XML架构的一切,我从XML Schema由Eric范德VLIST教训。

出版商:O'Reilly Media公司
出版日期:2002年6月25日
打印ISBN-13:978-0-596-00252-7
页:

参见第13章,Creating Extensible Schemas

+0

我们正在设计自己的模式,所以可以使它在这个时候做我们想做的任何事情。 – mj2008 2009-09-03 14:54:47

+0

对不起,我错过了你说“去”的地方。如果你遵循WSDL模式的例子,你会变得很遥远。 – 2009-09-03 15:00:57

+0

查看我的编辑书籍推荐。 – 2009-09-03 15:04:14