[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Understanding XML catalogs: what they are, why theyare us

  • From: David Carlisle <davidc@nag.co.uk>
  • To: "Costello, Roger L." <costello@mitre.org>
  • Date: Wed, 21 Jul 2010 22:57:16 +0100

Re:  Understanding XML catalogs:  what they are
On 21/07/2010 21:28, Costello, Roger L. wrote:
> Hi Folks,
>
> I am just learning to use XML catalogs. Below is what I've learned. Are there any errors in the below description?  /Roger
>

I can't see how any oof your examples can work, did any of them work, if 
so which parser were you using?


>
> ----------------------------------------------------------------
>          HOW ARE CATALOGS USED?
> ----------------------------------------------------------------
> Create an external entity and then use that entity rather than hardcoding the URL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE bookstore [
>      <!ENTITY xslt-file SYSTEM "http://www.xfront.com/catalog-test/bookstore.xsl">
> ]>
> <?xml-stylesheet type="text/xsl" href="&xslt-file;"?>
> <bookstore>
>      ...
> </bookstore>

& does not indicate an entity reference within the content of a PI, 
which is parsed in the same way as a comment, so that is refering to the 
URI with the literal string &xslt-file;"


>
> Notice that I created an external entity, xslt-file, and associated it with the URL, http://www.xfront.com/catalog-test/bookstore.xsl
>
>      <!ENTITY xslt-file SYSTEM "http://www.xfront.com/catalog-test/bookstore.xsl">
>
> Then, in the XSLT processing instruction I used the entity:
>
>      href="&xslt-file;"
>

It's not possible to use enity or character references within a 
processing instruction.

>
> ----------------------------------------------------------------
>          WHERE ARE CATALOGS USED?
> ----------------------------------------------------------------
> Wherever links are used, you can use catalogs. Above we saw that catalogs can be used with stylesheet PIs.
>
> Within an XSLT document you may have<include>  and<import>  elements. They use links. You can use catalogs with them:
>
> <?xml version="1.0"?>
> <!DOCTYPE bookstore [
>      <!ENTITY include-file SYSTEM "http://www.xfront.com/catalog-test/toUpperCase.xsl">
>      <!ENTITY import-file SYSTEM "http://www.xfront.com/catalog-test/toLowerCase.xsl">
> ]>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                  version="2.0">
>
>      <xsl:include href="&include-file;"/>
>      <xsl:import href="&import-file;"/>"/>
>


If you define an entity reference to an external parsed entity then then 
the replacement text of the entity is the content of the  file
not the URL of the file so the xsl stylesheet referenced here is the
one obtained by taking the content of the file toLowerCase.xsl 
interpreted as a URL.

i>      ...
> </xsl:stylsheet>
>
> Notice that in the<include>  and<import>  elements I used entity references, rather than hardcoding a URL. Now I can use a catalog to map the URL to a local copy of the XSLT documents, if I desire.
>
> There are other places within an XSLT document where catalogs can be used, such as with the document() and doc() functions:
>
> <?xml version="1.0"?>
> <!DOCTYPE bookstore [
>      <!ENTITY doc-file SYSTEM "http://www.xfront.com/catalog-test/FitnessCenter2.xml">
> ]>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                  version="2.0">
>      ...
>      <xsl:variable name="FitnessCenter" select="doc('&doc-file;')" />

As above the xml parser will replace &doc-file; by the contents of 
FitnessCenter2.xml and then these contents will be interpreted as an 
xpath string specifying the url of the document to be loaded.

>      ...
> </xsl:stylsheet>
>
> Notice that in the doc() function I used an entity reference, rather than hardcoding a URL.


David



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.