[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [entity-resolution-comment] Public Comment
I've done something along this line to avoid updating the catalog entry
file that resolves URIs to the DocBook stylesheets whenever there's a
new 'current' release.
A root /etc/xml/catalog includes local catalogs for various 'packages'
-- /etc/xml/catalog
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog
xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="public">
...
<nextCatalog catalog="oasis_docbook.xml"/>
...
</catalog>
--
Each local 'package' catalog delegates to a number of related DTDs, schema
and stylesheets:
-- /etc/xml/oasis_docbook.xml
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog
xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="public">
<group
prefer="public"
xml:base="file:///usr/share/xml/">
...
<!-- DocBook XSL
-->
<delegateSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl/"
catalog="docbook.sorceforge.net/release/xsl/catalog.xml"/>
<delegateURI
uriStartString="http://docbook.sourceforge.net/release/xsl/"
catalog="docbook.sorceforge.net/release/xsl/catalog.xml"/>
...
</group>
</catalog>
--
xml:base="file:///usr/share/xml/" points to the root of a mirror
of canonical URLs. At appropriate places, local catalogs take over
and do the final resolution, based on an entity declared in an external
entity:
-- current
<!ENTITY current "1.62.0">
--
-- catalog.xml
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd" [
<!ENTITY % current SYSTEM "current">
%current;
]>
<catalog
xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="public">
<rewriteSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl/current"
rewritePrefix="¤t;"/>
<rewriteURI
uriStartString="http://docbook.sourceforge.net/release/xsl/current"
rewritePrefix="¤t;"/>
<rewriteSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl"
rewritePrefix=""/>
<rewriteURI
uriStartString="http://docbook.sourceforge.net/release/xsl"
rewritePrefix=""/>
</catalog>
--
We need to run native Windows, Cygwin, as well as Linux based
applications and don't want to maintain separate entity resolution
mechanism for each application. Windows and Linux applications
can share files through a Samba share.
In /etc/xml/oasis_docbook.xml, "file:///usr/share/xml/" could
of course also be substituted by an entity declared in an
external entity. It should somehow get declared in a way that
depends on the needs of each application; some native Windows
applications get along fine with POSIX pathnames, and some don't.
There's an additional twist to this: some applications like
to populate the directory in which a DTD is located with
application-specific files. These files often depend on the version
of the application; you know the problem if you need to be able
to run Epic 4.3 and 4.4 simultaneously.
So, I'm trying to design a nice and simple scheme (ha ha) so
that
1) local changes have local effects
2) global changes are not required for local effects
3) resources are managed according to each their own lifecycle
4) different versions of different applications can have
each their own private space attached to common resources
5) different expectations wrt. filenames can be met
kind regards
Peter Ring
-----Original Message-----
From: Rob Lugt [mailto:roblugt@elcel.com]
Sent: 23. oktober 2003 21:08
To: csalter@ca.ibm.com; entity-resolution-comment@lists.oasis-open.org
Subject: Re: [entity-resolution-comment] Public Comment
I don't know about a recommended approach, but there are a number of things
you could try:-
1) If you are sharing the catalog on a windows network, try using UNC paths
instead of drive mapping. e.g.
<uri name="http://www.oasis-open.org/committees/docbook/"
uri="file://<host>/<share>/file"/>
2) Consider using relative URIs in your catalog. If I remember rightly,
these should resolve relative to the catalog file in which they appear.
e.g.
<uri name="http://www.oasis-open.org/committees/docbook/"
uri="docbook/"/>
3) Following on from your idea of putting file locations in another file,
such as mechanism already exists in XML, so you can use that. e.g.
<!DOCTYPE catalog [
<!ENTITY % files SYSTEM "file-locations.ent">
%files;
]>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<uri name="http://www.oasis-open.org/committees/docbook/"
uri="&PROJECT_INSTALL_LOCATION;/docbook/"/>
</catalog>
Best regards
Rob Lugt
ElCel Technology
http://www.elcel.com/
----- Original Message -----
From: <comment-form@oasis-open.org>
To: <entity-resolution-comment@lists.oasis-open.org>
Sent: Wednesday, October 22, 2003 11:27 PM
Subject: [entity-resolution-comment] Public Comment
> Comment from: csalter@ca.ibm.com
>
> What's the recommended approach for sharing xml catalogs that have
concrete file system locations in them? For example, I have a catalog with
several entries like this...
>
> <uri name="http://www.oasis-open.org/committees/docbook/"
> uri="file:///D:/projects/oasis/docbook/website/"/>
>
> Now I want to use this catalog on another machine where the 'project'
directory is installed on the 'E:' drive. So I'm assuming one would need
some thing like this...
>
> <rewriteURI uriStartString="file:///D:/project/"
> rewritePrefix="file:///E:/project/"/>
>
> It seems to me it would be nice to have some convention when specifying
file system URIs so that they can be easily 're-mapped' to actual drive
names (and to make it clear at a glance where these substitutions are
intended). For example...
>
> <uri name="http://www.oasis-open.org/committees/docbook/"
> uri="/PROJECT_INSTALL_LOCATION/oasis/docbook/website/"/>
>
> <rewriteURI uriStartString="/PROJECT_INSTALL_LOCATION"
> rewritePrefix="file:///E:/project/"/>
>
> The next logical step would be to put move the rewrites containing the
'actual' file locations into a separate catalog file. That way the 'main'
catalog could be shared in a team repository and wouldn't need to be edited.
Only the small catalog containing rewrites to 'actual' file locations would
ever need to be customized.
>
> Any comments/suggestions ?
>
> To unsubscribe from this list, send a post to
entity-resolution-comment-unsubscribe@lists.oasis-open.org, or visit
http://www.oasis-open.org/mlmanage/.
>
>
To unsubscribe from this list, send a post to
entity-resolution-comment-unsubscribe@lists.oasis-open.org, or visit
http://www.oasis-open.org/mlmanage/.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]