docbook: XML v. SGML entities


Previous by date: 12 Nov 2002 09:12:11 -0000 Re: additional DTD support for the LDP, Greg Ferguson
Next by date: 12 Nov 2002 09:12:11 -0000 Re: XML v. SGML entities, James Weller
Previous in thread:
Next in thread: 12 Nov 2002 09:12:11 -0000 Re: XML v. SGML entities, James Weller

Subject: XML v. SGML entities
From: "Jim Weller" ####@####.####
Date: 12 Nov 2002 09:12:11 -0000
Message-Id: <000401c28a2b$6f91ad00$d400a8c0@synergy>

Hey DB Gang,

I know just enough DB/SGML/XML jargon to be dangerous so forgive abuses
of vocab.

I'm working on an update to my Docbook Quickstart Guide. I was going to
use XML 4.2 only. None of the SGML dtd's are installed. I've
successfully installed the source to the extent that I can process my
xml into tldp'ized html. But I'm getting some lame-o errors. Allow me to
paste. Note the first line is the bash prompt w/ the command I type.
Please, also note that I tried this with just Norm's style sheets and
got the same errors.

------------------------------------------------------------------------
-------
jim@styx:~/dbxmlqs$ openjade -t xml -d
/home/jim/sgml/dsssl/html/ldp.dsl#html
/home/jim/sgml/dsssl/dtds/decls/xml.dcl dbxmlqs.xml     
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1no.dsl:2:66:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Added Latin 1//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1no.dsl:3:5:E:
reference to entity "lat1" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1no.dsl:2:0:
entity was defined here
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:2:66:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Added Latin 1//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:3:5:E:
reference to entity "lat1" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:2:0:
entity was defined here
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:4:66:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Added Latin 2//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:5:5:E:
reference to entity "lat2" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ro.dsl:4:0:
entity was defined here
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ru.dsl:2:69:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Russian Cyrillic//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ru.dsl:3:5:E:
reference to entity "cyr1" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1ru.dsl:2:0:
entity was defined here
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sl.dsl:2:66:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Added Latin 2//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sl.dsl:3:5:E:
reference to entity "lat2" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sl.dsl:2:0:
entity was defined here
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sr.dsl:2:66:W
: cannot generate system identifier for public text "ISO
8879:1986//ENTITIES Added Latin 2//EN"
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sr.dsl:3:5:E:
reference to entity "lat2" for which no system identifier could be
generated
openjade:/home/jim/sgml/dsssl/html/../common/../common/dbl1sr.dsl:2:0:
entity was defined here
------------------------------------------------------------------------
-------


Here's what I've installed

openjade-1.3.1 in /home/jim/sgml/openjade-1.3.1
docbook-dsssl-1.77 in /home/jim/sgml/dsssl
docbook-xml-4.2 in /home/jim/sgml/docbook/4.2xml (hooray comes with
entities!)

Here's my catalog setup

$SGML_CATALOG_FILES=/home/jim/sgml/catalog

where /home/jim/sgml/catalog is
-------------------------------------------------------------------
CATALOG "/home/jim/sgml/openjade-1.3.1/dsssl/catalog"
CATALOG "/home/jim/sgml/dsssl/catalog"
CATALOG "/home/jim/sgml/docbook/4.2xml/catalog"
SYSTEM "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
"docbook/4.2xml/docbookx.dtd"
-------------------------------------------------------------------
(the catalog files are sym links to the .cat files)

The first couple of errors it's complaining about "ISO
8879:1986//ENTITIES Added Latin 1//EN" and "ISO 8879:1986//ENTITIES
Added Latin 2//EN" not being defined. Which they aren't! If we examine
/home/jim/sgml/docbook/4.2xml/docbook.cat we can note that the only
latin 1 & 2 public identifiers are on lines 64 & 67 and look like this

docbook.cat lines 64-78
------------------------------------------------------------------------
-----------
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
       "ent/iso-lat1.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
       "ent/iso-lat2.ent"
------------------------------------------------------------------------
-----------

Notice the XML after EN. So these identifiers don't match the ones with
the style sheets (dbl1no.dsl, dbl1ro.dsl, dbl1sl.dsl, and dbl1sr.dsl).
The cyrillic public identifier suffers from the same problem. 

Now I'm a good sort of sport. So, I tried to fix the identifiers in
those .dsl files to include the XML part (even though I could have done
it with catalog magic). That would at least make them point correctly
right? Right! But now I get a new set of errors.


a BOATLOAD of these errors
------------------------------------------------------------------------
----------
... snip ...
openjade:/home/jim/sgml/docbook/4.2xml/ent/iso-lat1.ent:7:19:E: "X00C1"
is not a function name
openjade:/home/jim/sgml/docbook/4.2xml/ent/iso-lat1.ent:8:18:E: "X00E2"
is not a function name
openjade:/home/jim/sgml/docbook/4.2xml/ent/iso-lat1.ent:9:18:E: "X00C2"
is not a function name
... snip ...
------------------------------------------------------------------------
----------

This discourse from Norm at
http://sources.redhat.com/ml/docbook-apps/2000-q4/msg00246.html helps
explain that problem some. So I need to use a specific set of entities
when I'm processing XML. According to the word from Norm, that's the
*.ent files that come with the docbook-xml distro. But if I understand
things. That's what I've got. I have some style files that trace the
following path

(my modified dbl1no.dsl)
<!ENTITY % lat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML">

(from 4.2xml/docbook.cat)
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
       "ent/iso-lat1.ent"


So that lat1 ultimately points to
/home/jim/sgml/docbook/4.2xml/ent/iso-lat1.ent right? The *.ent files
are what I'm supposed to be using for XML right? What am I missing here
if I'm going for XML only?

Thanks,
Jim Weller




Previous by date: 12 Nov 2002 09:12:11 -0000 Re: additional DTD support for the LDP, Greg Ferguson
Next by date: 12 Nov 2002 09:12:11 -0000 Re: XML v. SGML entities, James Weller
Previous in thread:
Next in thread: 12 Nov 2002 09:12:11 -0000 Re: XML v. SGML entities, James Weller


  ©The Linux Documentation Project, 2014. Listserver maintained by dr Serge Victor on ibiblio.org servers. See current spam statz.