Bug 35522 - xhtml port uses SGMLDECL in catalog chain
Summary: xhtml port uses SGMLDECL in catalog chain
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Jun Kuriyama
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-03-03 23:40 UTC by David Johnson
Modified: 2003-06-28 08:48 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Johnson 2002-03-03 23:40:01 UTC
The xhtml port (textproc/xhtml) was recently modified to include xhtml.soc in the /usr/local/share/xml catalog chain. Unfortunately, this catalog file includes the statement:

SGMLDECL "xhtml1.dcl"

Since this statement is in the xml catalog chain, it becomes the default declaration for everything in that catalog chain. This creates serious problems when using DocBook XML with the jade dsssl processor. In addition, using a SGML_CATALOG_FILES environment variable to point to both /usr/local/share/sgml/catalog and /usr/local/share/xml/catalog (which is not that rare of an occurance) will cause this declaration to be the default for all sgml documents as well.

Fix: 

One workaround is to remove the SGMLDECL line from the xhtml.soc file. Should this declaration need to be set subsequently for xhtml processing, it can be done in a local catalog, or set on the jade command line.

Another workaround is to remove xhtml from the xml catalog chain, but I suspect this defeats to purpose of placing it there in the first place.
How-To-Repeat: Install the textproc/docproj metaport, which includes the jade and xhtml ports. Using the jtest.dsl and jtest.sgm files included with jade (but not installed by the port), execute the following command:

jade -t rtf -d jtest.dsl jtest.sgm

There should be no errors. The default catalog path for jade is /usr/local/share/sgml/catalog. Now change the catalog path to include the xml chain:

setenv SGML_CATALOG_FILES /usr/local/share/sgml/catalog:/usr/local/share/xml/catalog

Now re-execute the above jade command and the following errors occur:

brandybuck# jade -t rtf -d jtest.dsl jtest.sgm
jade:jtest.sgm:13:5:E: element "memo" undefined
jade:jtest.sgm:14:5:E: element "head" undefined
jade:jtest.sgm:15:5:E: element "date" undefined
jade:jtest.sgm:16:3:E: element "to" undefined
jade:jtest.sgm:17:8:E: element "subject" undefined
jade:jtest.sgm:19:5:E: element "body" undefined
jade:jtest.sgm:20:5:E: element "para" undefined
jade:jtest.sgm:21:5:E: element "para" undefined
jade:jtest.sgm:22:5:E: element "para" undefined
jade:jtest.sgm:24:4:E: element "end" undefined
jade:jtest.sgm:25:8:E: element "closing" undefined
jade:jtest.sgm:26:7:E: element "sender" undefined
jade:jtest.sgm:29:1:E: no document element
jade:jtest.dsl:1:2:E: unknown declaration type "doctype"
jade:jtest.dsl:2:0:E: no document type declaration; will parse without validation
jade:E: specification document does not have the DSSSL architecture as a base architecture
brandybuck#
Comment 1 Ying-Chieh Liao freebsd_committer freebsd_triage 2002-09-18 05:04:04 UTC
Responsible Changed
From-To: freebsd-ports->kuriyama

over to maintainer
Comment 2 Jun Kuriyama freebsd_committer freebsd_triage 2003-06-28 08:48:01 UTC
State Changed
From-To: open->closed

Committed, thanks!