Standard way of publishing xml schemas
Say I have an xml
schema, defining the namespace: http://foo.com/mySchema
. Is there a standard way to publish the schema so that xml instances of the schema will only need to define the namespace and not the xsi:schemaLocation
?
For example, if you look at imdb's sitemap xml: http://www.imdb.com/sitemap_US_index.xml.gz
The xml defines a namespace: http://www.sitemaps.org/schemas/sitemap/0.9 without also defining a schemaLocation.
If you visit this URI, it has 2 xsds there: "siteindex.xsd" and "sitemap.xsd"
My questions are:
PUT
new schemas, DELETE
existing schemas and of course GET
new schemas, using their namespace URI
The XML standard does not provide you as the publisher of an XSD with a definitive way to dictate a binding between the XSD's targetNamespace
and the location of the XSD.
There is no general "xsd repo" tool that manages any sort of well-known repository that can help you in this regard. There are, of course, many options these days using cloud-based storage facilities (Google Drive, DropBox, Amazon Cloud Drive, etc) to easily publish any file and make it publicly available via a URL.
You're on your own regarding where to publish your XSD. Keep in mind that namespace URLs do not have to be retrievable; there is no requirement that an XSD be there. Also keep in mind that the binding between a namespace and the physical location of an XSD is the responsibility of the user, not the XSD publisher. You mention xsi:schemaLocation
as one mechanism under the XML document author's control for specifying XSD location; another is XML Catalog.
上一篇: 命名空间麻烦
下一篇: 发布xml模式的标准方式