假设我有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”
我的问题是:
PUT
新模式,DELETE
现有模式,当然还有GET
新模式,使用它们的命名空间URI
< / LI>
醇>
答案 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。