A question about catalogs with oXygen --
Having trouble installing Oxygen? Got a bug to report? Post it all here.
-
- Posts: 1
- Joined: Sat Sep 13, 2003 12:45 am
A question about catalogs with oXygen --
I have the impression that if you type (paste) into a document a public identifier that is in your catalog, oXygen will validate correctly, but NOT support nice interface features like pop-up menus to wrap an element tag around the current selection. 
By contrast, if you make a "New document from DTD" using the menus, everything works will, but you get ugly system identifiers alongside the public identifier that may be awkward to take to other systems. (file:/// URLs, for example.)
Do yo know of any workaround to this tiny (but for my work habits irritating) setup?

By contrast, if you make a "New document from DTD" using the menus, everything works will, but you get ugly system identifiers alongside the public identifier that may be awkward to take to other systems. (file:/// URLs, for example.)
Do yo know of any workaround to this tiny (but for my work habits irritating) setup?
-
- Posts: 501
- Joined: Mon Feb 03, 2003 10:56 am
Hello,
Please post here the document (in fact the header of the document) that makes use of the catalog manager. What systemID do you specify? You can map a systemID pointing to a document located on the web (ex. TEI or Docbook) to a local systemID, using the catalog. In this way you wont get the file// urls but instead some http// urls. I will let you know the best solution as soon as I see the document.
Many regards,
Dan
Please post here the document (in fact the header of the document) that makes use of the catalog manager. What systemID do you specify? You can map a systemID pointing to a document located on the web (ex. TEI or Docbook) to a local systemID, using the catalog. In this way you wont get the file// urls but instead some http// urls. I will let you know the best solution as soon as I see the document.
Many regards,
Dan
-
- Posts: 8
- Joined: Wed Aug 27, 2003 3:50 pm
"White spaces are required between publicId and systemI
I think that I have a similar problem. If I use a SYSTEM identifier for the DTD then everything works fine, but if I try to use a catalog entry then the document fails to validate, with the message in the subject.
My catalog entries, using Options/Preferences/XML Catalog are:
file:/home/richard/oxygen/docbook/catalog.xml
file:/home/richard/oxygen/docbook/dtd/catalog.xml
and the beginning of the document looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE article SYSTEM "file:///home/richard/oxygen/docbook/dtd/docbookx.dtd"> -->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN">
<article>
(with the SYSTEM entry un-commented, and the PUBLIC entry commented out it works, but not vice-versa).
I have also set this environment variable:
export SGML_CATALOG_FILES=/home/richard/oxygen/docbook/dtd/docbook.cat
Prior to setting this, I got this message on the command line when OxygenXML started up:
null: catalogs not found.
I suspect that using catalogs is the right way to go, but that I have not yet got them quite right. (In practice I would like to be able to work on the same file at my client's premises, using Windows, and in my own office, using Linux. With the SYSTEM identifier this does not seem to be possible, so I think that I have to get the catalog sorted so that I can use the PUBLIC identifier).
BTW, considering the significance of the error message above, something more explanatory would have been helpful.
Any help gratefully received.
Richard
My catalog entries, using Options/Preferences/XML Catalog are:
file:/home/richard/oxygen/docbook/catalog.xml
file:/home/richard/oxygen/docbook/dtd/catalog.xml
and the beginning of the document looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE article SYSTEM "file:///home/richard/oxygen/docbook/dtd/docbookx.dtd"> -->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN">
<article>
(with the SYSTEM entry un-commented, and the PUBLIC entry commented out it works, but not vice-versa).
I have also set this environment variable:
export SGML_CATALOG_FILES=/home/richard/oxygen/docbook/dtd/docbook.cat
Prior to setting this, I got this message on the command line when OxygenXML started up:
null: catalogs not found.
I suspect that using catalogs is the right way to go, but that I have not yet got them quite right. (In practice I would like to be able to work on the same file at my client's premises, using Windows, and in my own office, using Linux. With the SYSTEM identifier this does not seem to be possible, so I think that I have to get the catalog sorted so that I can use the PUBLIC identifier).
BTW, considering the significance of the error message above, something more explanatory would have been helpful.
Any help gratefully received.
Richard
-
- Site Admin
- Posts: 2095
- Joined: Thu Jan 09, 2003 2:58 pm
Hi Richard,
You get a validation error because according with the XML specification you should specify also a system identifier:
http://www.w3.org/TR/REC-xml#sec-external-ent
Best Regards,
George
You get a validation error because according with the XML specification you should specify also a system identifier:
http://www.w3.org/TR/REC-xml#sec-external-ent
If you will write your article as:[75] ExternalID ::= 'SYSTEM' S SystemLiteral
| 'PUBLIC' S PubidLiteral S SystemLiteral
there should be no problems. The above is obtained using the New from templates action and selecting Docbook 4.2 Article (DTD on the Web).<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article>
<title>Article Title</title>
<sect1>
<title>Section1 Title</title>
<para>Text</para>
</sect1>
</article>
Best Regards,
George
-
- Posts: 8
- Joined: Wed Aug 27, 2003 3:50 pm
Thanks George, that gets me going again.
I had found references saying that XML DocBook required a system identifier, but not that you can combine both the public and system identifiers in the same statement. Neither had I thought about looking at the content of the supplied templates.
Taking this further (and I had hoped to test this out today, but ran out of time), what is the method for handling files that will be updated on systems that both have, and do not have, Internet access? What I was trying to do before was have a common catalog entry, whose target might well be completely different for each system, to resolve the differences between where different systems make their DocBook DTD available -in some cases possibly online resources (as with your example) in other cases local files.
How can I do this? How can I resolve the need for a system identifier with my wish for a DTD identifier that does not rely on the configuration of a particular machine?
Any suggestions gratefully received.
Richard
I had found references saying that XML DocBook required a system identifier, but not that you can combine both the public and system identifiers in the same statement. Neither had I thought about looking at the content of the supplied templates.

Taking this further (and I had hoped to test this out today, but ran out of time), what is the method for handling files that will be updated on systems that both have, and do not have, Internet access? What I was trying to do before was have a common catalog entry, whose target might well be completely different for each system, to resolve the differences between where different systems make their DocBook DTD available -in some cases possibly online resources (as with your example) in other cases local files.
How can I do this? How can I resolve the need for a system identifier with my wish for a DTD identifier that does not rely on the configuration of a particular machine?
Any suggestions gratefully received.
Richard
-
- Site Admin
- Posts: 2095
- Joined: Thu Jan 09, 2003 2:58 pm
Dear Richard,
The catalog maps public identifiers or remote system identifiers to local files. In general the local files are specified relative to the catalog file location thus you can put the catalog and DTDs anyware on your disk and just add the catalog file in the oXygen catalog list.
In your documents you should specify the DOCTYPE declaration as in the example I posted because this allows your file to be portable, that is even if there is no catalog specified the DTD will be accessed from its original location. If a catalog mapping any of the public or system IDs to a local file is specified the local copy will be used instead of accessing the original resource on the web.
Hope that helps,
George
The catalog maps public identifiers or remote system identifiers to local files. In general the local files are specified relative to the catalog file location thus you can put the catalog and DTDs anyware on your disk and just add the catalog file in the oXygen catalog list.
In your documents you should specify the DOCTYPE declaration as in the example I posted because this allows your file to be portable, that is even if there is no catalog specified the DTD will be accessed from its original location. If a catalog mapping any of the public or system IDs to a local file is specified the local copy will be used instead of accessing the original resource on the web.
Hope that helps,
George
-
- Posts: 8
- Joined: Wed Aug 27, 2003 3:50 pm
Seems I was chasing a non-problem
I just ran the following test:
- installed OxygenXML on a laptop that has an Internet connection
- created a new document, using the template as you suggest
- configure XSL transform to produce HTML
- transform is successfull, network adaptor shows activity during this process, suggesting that the DTD at http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd was being used
- disconnect network connection, repeat
- transform fails, with reported network timeout
- add catalog.xml provided with the OxygenXML installation to the list of catalogs, through Options/Preferences/XML Catalog
- transform fails, because I ignored the clearly displayed warning to re-start the application after making changes to the catalog configuration
- re-start OxygenXML
- transform is successful, with network still disconnected
Thanks a lot for your help George, your responses really helped to clarify things for me.
Richard
- installed OxygenXML on a laptop that has an Internet connection
- created a new document, using the template as you suggest
- configure XSL transform to produce HTML
- transform is successfull, network adaptor shows activity during this process, suggesting that the DTD at http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd was being used
- disconnect network connection, repeat
- transform fails, with reported network timeout
- add catalog.xml provided with the OxygenXML installation to the list of catalogs, through Options/Preferences/XML Catalog
- transform fails, because I ignored the clearly displayed warning to re-start the application after making changes to the catalog configuration

- re-start OxygenXML
- transform is successful, with network still disconnected
Thanks a lot for your help George, your responses really helped to clarify things for me.
Richard
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service