Re: [xml-dev] Compelling use case for XML Catalogs?
To elaborate on what I meant by 'earlier standards' I was thinking
of DTDs and the reliance earlier XML standardised markups had
on them. DTDs had several ways that they could use URLs to point
to remote resources so it was especially necessary to allow these
to be redirected locally. I'm guessing the main use was to allow a
docbook document referring to a standard OASIS Docbook DTD
published on the OASIS site to have a local copy of the DTD to
avoid problems that probably existed in the early days of XML
(when it depended on DTDs) e.g. with offline parsing. Not to say
there aren't still occasions where such problems occur but parsers I
think that once XML standard formats get widespread use the
software can be written to expect them and have built in ways of
recognising a namespace and domain-specific parsing requirements
and not need XML Catalogs so much.
of DTDs and the reliance earlier XML standardised markups had
on them. DTDs had several ways that they could use URLs to point
to remote resources so it was especially necessary to allow these
to be redirected locally. I'm guessing the main use was to allow a
docbook document referring to a standard OASIS Docbook DTD
published on the OASIS site to have a local copy of the DTD to
avoid problems that probably existed in the early days of XML
(when it depended on DTDs) e.g. with offline parsing. Not to say
there aren't still occasions where such problems occur but parsers I
think that once XML standard formats get widespread use the
software can be written to expect them and have built in ways of
recognising a namespace and domain-specific parsing requirements
and not need XML Catalogs so much.
----
Stephen D Green
On 11 June 2011 08:38, Stephen D Green <[email protected]> wrote:
I suggest that XML Catalogs may be solving a problemwhich can occur when the XML is standardised by a remotestandards body which publishes a standard URL for aschema. There is a risk that conforming documents willinclude a schema location linking to the remote, publishedschema: The inclusion of such a URL combined with anysoftware which tries to resolve that link when it parses theXML documents might result in excessive requests to theremote resource, tying both the remote servers and thelocal network and Internet connections. I think this scenariomight be less of a concern as software is being designedwith regard for domain requirements but once upon a timesoftware handling XML possibly tended to stick to genericpatterns (earlier standards?) in managing the XML and thismight have meant always trying to resolve such URLs usingthe Internet by default. I imagine today most software canbe configured others ways than with XML Catalogs aloneas it has become more sophisticated and adapted to userrequirements.----Stephen D Green
On 10 June 2011 19:02, Costello, Roger L. <[email protected]> wrote:Hi Folks,
XML Catalogs are used to map URLs in XML files to local resources.
EXAMPLE #1
This XML Schema document <xsd:include>s a file that is at a URL:
-------------------------------------------------------------------------------------
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="http://www.xfront.com/catalog-test/Author.xsd" />
...
</xsd:schema>
-------------------------------------------------------------------------------------
An XML Catalog is used to specify a mapping from that URL to a local copy:
-------------------------------------------------------------------------------------
<?xml version="1.0"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name="http://www.xfront.com/catalog-test/Author.xsd"
uri="Author.xsd"/>
</catalog>
-------------------------------------------------------------------------------------
When the XML Schema is executed, an XML Catalog tool will dynamically perform the mapping and the XML Schema will use the local copy of Author.xsd rather than the version at the URL.
Let's take an XSLT example.
EXAMPLE #2
This XSLT document uses the document() function to access a file that is at a URL:
-------------------------------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:value-of select="document('http://www.xfront.com/FitnessCenter.xml')"/>
...
</xsl:stylesheet>
-------------------------------------------------------------------------------------
An XML Catalog is used to specify a mapping from that URL to a local copy:
-------------------------------------------------------------------------------------
<?xml version="1.0"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name=" http://www.xfront.com/FitnessCenter.xml "
uri="FitnessCenter.xsl"/>
</catalog>
-------------------------------------------------------------------------------------
When the XSLT is executed, an XML Catalog tool will dynamically perform the mapping and the XSLT will use the local copy of FitnessCenter.xsl rather than the version at the URL.
QUESTIONS
In a real operational environment, wouldn't you always have your own local copies of XML Schemas, XSLT programs, Schematron schemas? And wouldn't they all be configured to reference local resources? Further, when an XML document arrives from the network, you may not know what URLs it contains and you don't want processing to dereference them, so how can you possibly create, in advance, an XML Catalog? Given that, there seems to be no non-trivial use for XML Catalogs.
Would you provide a compelling use case for XML Catalogs please?
/Roger
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: [email protected]
subscribe: [email protected]
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php