Re: How to use a catalog for an entity declaration file?

Radu Coravu <[email protected]>
Newsgroups gmane.text.docbook.apps
Message-ID <[email protected]>
Hi Bob,

How exactly do you process the XML file? Applying an XSLT using an XML + 
XSLT transformation scenario should use automatically the XML catalog 
set up in Oxygen.
Are you using an ANT build file? If so did you provide in the <xslt> 
task a reference to the xmlcatalog?

https://ant.apache.org/manual/Tasks/style.html

Regards,
Radu

Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com

On 3/12/2019 6:45 PM, Bob McIlvride wrote:
> Hi Radu,
>
> Thank you for the tips.  Using "systemSuffix and systemIDSuffix allows me to
> validate the document.  That's a great help.  However, when I go to process
> the document in Oxygen, I get this error:
>
> [xslt] : Fatal Error! Failure reading
> file:/C:/Activity/Cogent/Docs/DocsOx/Source/TestBook1/test3-book.xml Cause:
> java.io.FileNotFoundException:
> C:\Activity\Cogent\Docs\DocsOx\Source\TestBook1\commonentityID (The system
> cannot find the file specified)
>
> I followed your suggestion to move the TestCatalg.xml file into the same
> directory as the commonentities.ent file.  Now the source files look like
> this:
>
> TestCatalog.xml:
>
> <!DOCTYPE catalog
>       PUBLIC "-//OASIS//DTD XML Catalogs V1.1//EN"
>       "http://www.oasis-open.org/committees/entity/release/1.1/catalog.dtd">
> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
>     <systemSuffix systemIdSuffix="commonentityID"
>         uri="commonentities.ent"/>
> </catalog>
>
> test3-book.xml:
>
> <!DOCTYPE book [
> <!ENTITY % commonentities SYSTEM "commonentityID" >
> %commonentities;
> ]>
> <book xmlns="http://docbook.org/ns/docbook" version="5.0"
> xmlns:xi="http://www.w3.org/2001/XInclude"
> 	xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="test3-book">
> 	<info>
> 		<title>Test Book 3</title>
> 	</info>
> 	<chapter xml:id="test3-introduction">
> 		<info>
> 		<title>Introduction - A Simple Book</title>
> 		</info>
> 		<para>Test entity: &copy;</para>
> 	</chapter>
> </book>
>
> Those both validate in Oxygen, but it gives that "cannot find the file"
> error when processing the document.  I have tried modifying the Preferences
> for the XML Catalog in different ways, but nothing seems to affect the
> problem.  The current settings can be seen in the attached image:
> CatalogSnip.png.
>
> I'm sure I'm doing something wrong, but can't figure out what.  Can you see
> what the problem might be?
>
> Best regards,
>
> Bob
>
>
> Bob McIlvride	Communications Manager
> Cogent Real-Time Systems Inc., a Skkynet company
> T  1 905 702 7851 ext 103
> cogent.ca
>
> -----Original Message-----
> From: Radu Coravu <[email protected]>
> Sent: Tuesday, March 12, 2019 1:44 AM
> To: [email protected]
> Subject: Re: [docbook-apps] How to use a catalog for an entity declaration
> file?
>
> Hi Bob,
>
> Here are 3 possibilities:
>
> 1) An entity reference like this:
>
>> <!ENTITY % commonentities SYSTEM "commonentityID" >
>
> would be resolved by a catalog entry like this:
>
>> <systemSuffix systemIdSuffix="commonentityID"
>> uri="file:///C:/Activity/Cogent/Docs/DocsOx/Source/Common/commonentiti
>> es.ent"/>
>
> 2) An entity reference like this:
>
>> <!ENTITY % commonentities SYSTEM "../Common/commonentities.ent" >
>
> would be resolved by a catalog reference like this:
>
>> <systemSuffix systemIdSuffix="Common/commonentities.ent"
>> uri="file:///C:/Activity/Cogent/Docs/DocsOx/Source/Common/commonentiti
>> es.ent"/>
>
> 3) An entity reference like this:
>
>> <!ENTITY % commonentities SYSTEM
>> "http://someHost/Common/commonentityID" >
>
> would be resolved by a catalog entry like this:
>
>>  <system systemId="http://someHost/Common/commonentityID"
>> uri="file:///C:/Activity/Cogent/Docs/DocsOx/Source/Common/commonentiti
>> es.ent"/>
>
> Also in practice no absolute file references should be in the catalog.xml.
> So the catalog.xml would be placed as close as possible to the DTDs, for
> example in the "DocsOx/Source/Common" folder, meaning that the @uri
> attribute value would be something like this:
>
>> <system systemId="....." uri="commonentities.ent"/>
>
>
> Regards,
> Radu
>
> Radu Coravu
> <oXygen/> XML Editor
> http://www.oxygenxml.com
>
> On 3/11/2019 10:33 PM, Bob McIlvride wrote:
>> Dear friends,
>>
>>
>>
>> I am trying to implement this guidance from Chapter 23. Modular
>> DocBook files of Bob Stayton's DocBook XSL: The Complete Guide - 4th
> Edition:
>>
>>
>>
>> "If all of your modules and document files have the same entity
>> declaration and reference, then they will all share the same set of
>> entities. You can use an XML catalog to map the filename to a specific
>> pathname on a system so it can be in a central location."
>>
>> http://www.sagehill.net/docbookxsl/ModularEntities.html#entities.in.dt
>> d
>>
>>
>>
>> My problem is that I don't know the correct syntax for the system
>> entity declaration.  For example, this doesn't work:
>>
>>
>>
>> <!DOCTYPE book [
>>
>> <!ENTITY % commonentities SYSTEM "commonentityID" >
>>
>> %commonentities;
>>
>> ]>
>>
>> ...
>>
>>
>>
>> My catalog looks like this:
>>
>>
>>
>> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
>>
>>     <system systemId="commonentityID"
>> uri="file:///C:/Activity/Cogent/Docs/DocsOx/Source/Common/commonentiti
>> es.ent"/>
>>
>> </catalog>
>>
>>
>>
>> The catalog validates in Oxygen.
>>
>>
>>
>> Without attempting to use the catalog, this is what we normally use:
>>
>>
>>
>> <!DOCTYPE book [
>>
>> <!ENTITY % commonentities SYSTEM "../Common/commonentities.ent" >
>>
>> %commonentities;
>>
>> ]>
>>
>> ...
>>
>>
>>
>> This also validates and produces correct output.  How can we get this
>> working using a catalog?  Any suggestions would be most helpful.
>>
>>
>>
>> Best regards,
>>
>>
>>
>> Bob
>>
>>
>>
>>
>>
>> COGENT <http://cogent.ca/>
>>
>> 	
>>
>> *Bob McIlvride **   Communications Manager*
>>
>> Cogent Real-Time Systems Inc., a Skkynet company
>>
>> T   1 905 702 7851 ext 103
>>
>> cogent.ca <http://cogent.ca/>
>>
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.