发布xml架构的标准方法

ela*_*dan 2 xml xsd namespaces

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

例如,如果你看一下imdb的sitemap 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

kjh*_*hes 5

XML标准没有为您提供XSD的发布者,它具有明确的方式来指示XSD与XSD targetNamespace位置之间的绑定.

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

您可以自行决定在何处发布XSD.请记住,命名空间URL不必是可检索的 ; 没有要求XSD在那里.另请注意,命名空间与XSD的物理位置之间的绑定是用户的责任,而不是XSD发布者的责任.您xsi:schemaLocation在XML文档作者的控件下提到了一种用于指定XSD位置的机制; 另一个是XML目录.