发布xml架构的标准方法

时间:2015-01-18 08:40:26

标签: xml namespaces xsd

假设我有xml架构,定义了命名空间:http://foo.com/mySchema。是否有标准方法来发布模式,以便模式的xml实例只需要定义命名空间而不是xsi:schemaLocation

例如,如果您查看imdb的站点地图xml:http://www.imdb.com/sitemap_US_index.xml.gz

xml定义了一个名称空间:http://www.sitemaps.org/schemas/sitemap/0.9,但没有定义schemaLocation。

如果您访问此URI,则其中包含2个xsds:“siteindex.xsd”和“sitemap.xsd”

我的问题是:

  1. 这是xml标准的一部分吗?每个xml解析器是否“知道”如何从命名空间URI中找到模式?
  2. 是否有一个独立的“xsd repo”工具可以帮助我在我的域下发布xsds,而无需自己设置Web服务器的麻烦。我正在想象某种RESTful API,它允许我PUT新模式,DELETE现有模式,当然还有GET新模式,使用它们的命名空间URI < / LI>

1 个答案:

答案 0 :(得分:5)

XML标准不会将您作为XSD的发布者,以明确的方式规定XSD的targetNamespace与XSD的位置之间的绑定。

没有一般的&#34; xsd repo&#34;管理任何类型的知名存储库的工具,可以在这方面为您提供帮助。当然,目前有很多选择使用基于云的存储设施(Google Drive,DropBox,Amazon Cloud Drive等)来轻松发布任何文件并通过URL公开发布。

您自己决定在何处发布XSD。请记住namespace URLs do not have to be retrievable;没有要求XSD在那里。另请注意,命名空间与XSD的物理位置之间的绑定是用户的责任,而不是XSD发布者的责任。您提到xsi:schemaLocation作为XML文档作者控制下的一种机制,用于指定XSD位置;另一个是XML Catalog