I work at a company where we have our own XML language with its own set of schemas that validate against the W3 schema. For business reasons, I need to host these files internally instead of relying on the web hosted versions. I have little experience with XML schemas and am wondering what exactly this means. Is it as simple as copying and pasting the page source into my own file and pointing our other schemas there? Do I need to worry about the namespace documents as well? Any help here is appreciated. Thanks.
To host external XSDs, including any from W3C, locally:
Identify external XSD dependencies.
You can identify an XSD's external dependencies through the transitive closure of all XSD's given by
xs:include
andxs:import
@schemaLocation
attributes. (Noxs:include
orxs:import
implies no dependencies.)Copy the XSDs locally.
Note that to actually retrieve xml.xsd, use a tool other than a browser (e.g. wget) or view the source of the file served to your web browser.
Adjust references to the XSDs.
Update the
@schemaLocation
attributes to reference the local rather than the remote copy. See How to reference a local XML Schema file correctly? Or, use an XML Catalog to remap to a local location.
Note that you do not need to change any namespace URIs, which are lexical constructs that do not need to be retrievable.
© 2022 - 2024 — McMap. All rights reserved.
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
. – Mantellettaxml.xsd
locally. I am wondering if I need to hosthttp://www.w3.org/XML/1998/namespace
. Is that what you mean when you say not to change the namespace URI - that I do not need to host that file? Apologies, I don't quite have the domain language necessary to express myself. – Mantellettaxml.xsd
? – Mantelletta