This is the mail archive of the
docbook-apps@lists.oasis-open.org
mailing list .
[docbook-apps] Modular docbook with modular entities
- From: Togan Muftuoglu <toganm at users dot sourceforge dot net>
- To: Docbook-apps <docbook-apps at lists dot oasis-open dot org>
- Date: Mon, 26 Jan 2004 16:20:44 +0100
- Subject: [docbook-apps] Modular docbook with modular entities
<!-- LONG -->
Hi,
I am trying to build a book ( actually a FAQ yet the layout is done as
a book. Although I have been reading
http://www.sagehill.net/docbookxsl/ModularDoc.html and looking thru the
archieves of the mailing list, it does not work. Either I am missing the
obvious or I am doing something wrong.
Here is what I have done
1) Customized the DocBook DTD so XInclude and xml:base are included
<!-- This is the driver file for V1.0 of the SuSEFAQ DTD.
Please use the following formal public identifier to identify it:
"-//SUSEFAQ//DTD DocBook XML V4.2-Based Extension V1.0//EN"
............................................................. -->
<!ENTITY % xinclude SYSTEM "xinclude.mod"> %xinclude;
<!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
%DocBookDTD;
2. This is what I have in xinclude.mod
<!ELEMENT xi:include (xi:fallback?) >
<!ATTLIST xi:include
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
href CDATA #REQUIRED
parse (xml|text) "xml"
encoding CDATA #IMPLIED >
<!ELEMENT xi:fallback ANY>
<!ATTLIST xi:fallback
xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" >
<!ENTITY % local.chapter.class "| xi:include">
<!-- inside chapter or section elements -->
<!ENTITY % local.divcomponent.mix "| xi:include">
<!-- inside para, programlisting, literallayout, etc. -->
<!ENTITY % local.para.char.mix "| xi:include">
<!-- inside bookinfo, chapterinfo, etc. -->
<!ENTITY % local.info.class "| xi:include">
<!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED">
3. Created a catalog file
<?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">
<group prefer="public"
xml:base="file:///usr/local/share/sgml/susefaq/" >
<public
publicId="-//SUSEFAQ//DTD DocBook XML V4.2-Based Extension
V1.0//EN"
uri="susefaq.dtd"/>
<system
systemId="susefaq.dtd"
uri="susefaq.dtd"/>
</group>
</catalog>
Upto this point it works. Now here is what is causing headaches :-(
My actual document's layout is as follow
main-directory
\_________dtd
\_________xsl
\________topic1-dir
\_______topic2-dir
\______chapters-dir
\_____sections-dir
\____includes-dir
My initial idea was to keep <qandaentry> format files in their respective topic
directories, use them in <sect1> formated files placed in sections-dir
and then create <chapter> formated files in chapter directory. This way
I thought it was easy to expand the project and since the files are
small editing is also fast. (This is currently working with sgml yet I
now wnat to change to xml)
Finally in the main directory I was planning to have the Book format
file.
Hence my includes directory would basicly include the entity files which
would describe the files relationsship. (hello problem). If I put
everything in the "includes.ent" file it works. But when I want to have
the "includes.ent" to refer sections and chapters I can not make it
work.
<!-- $Id: includes.ent,v 1.6 2003/02/26 08:18:36 toganm Exp $ -->
<!-- DEFINE BASIC THINGS -->
<!ENTITY editor "common/editor.xml">
<!ENTITY mail "common/faq_maillist.xml">
<!ENTITY intro "common/faq_abstract.xml">
<!ENTITY license "common/fdl.txt">
<!ENTITY book_info "common/book_info.xml">
<!ENTITY howthisisdone "common/howdone.xml">
<!ENTITY README.ISO "common/README.iso-images.english">
<!ENTITY legalnotice "common/legalnotice.txt">
<!ENTITY preface "common/preface.xml">
<!ENTITY changes "ChangeLog">
<!ENTITY reference "common/index.xml">
<!-- DEFINE SECTIONS -->
<!ENTITY % sections_inc SYSTEM "sections.inc">%sections_inc;
<!-- DEFINE SECTION INCLUDES -->
<!ENTITY % section_include SYSTEM "section_includes.inc">%section_include;
<!-- DEFINE CHAPTERS -->
<!ENTITY % chapters_inc SYSTEM "chapters.inc">%chapters_inc;
<!-- $Id: common.inc,v 1.1.1.1 2002/02/16 10:40:21 toganm Exp $ -->
<!ENTITY common "common/common.xml">
<!ENTITY common1 "common/common1.xml">
apache.inc
<!ENTITY apache "apache/apache.xml">
<!ENTITY apache1 "apache/apache1.xml">
<!ENTITY apache2 "apache/apache2.xml">
sections.inc has
<!-- $Id: sections.inc,v 1.28 2004/01/24 21:17:48 toganm Exp $ -->
<!--Sect1 Includes -->
<!ENTITY sect_apache "sections/sect_apache.xml">
<!ENTITY sect_common "sections/sect_common.xml">
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE book PUBLIC "-//SUSEFAQ//DTD DocBook XML V4.2-Based Extension
V1.0//EN"
"/usr/local/share/sgml/susefaq/susefaq.dtd" [
<!ENTITY % files SYSTEM "includes.ent">%files;
]>
<!-- $Id: faq_set.xml,v 1.7 2003/08/01 08:22:30 toganm Exp $ -->
<?psgml nofill screen programlisting literallayout?>
<book id="index">
!--<?dbhtml banner-href="stylesheet-images/SuSEbanner-1.png"?> -->
<xi:include href="&book_info;"
xmlns:xi="http://www.w2.org/2001/XInclude"/>
<xi:include href="&preface;"
xmlns:xi="http://www.w3.org/2001/XInclude"/>
....
....
</book>
When I issue the "xmllint --noout --postvalid --xinclude faq.xml"
command it starts barking out and I can not validate the document
common/book_info.xml:21: error: Entity 'changes' not defined
<xi:include href="&changes;" xmlns:xi="http://www.w3.org/2001/XInclude"
parse="text">
^
common/book_info.xml:26: error: Entity 'editor' not defined
<xi:include href="&editor;" xmlns:xi="http://www.w3.org/2001/XInclude"/>
Any ideas where I am doing wrong, or what I am doing wrong
--
Togan Muftuoglu
To unsubscribe from this list, send a post to docbook-apps-unsubscribe@lists.oasis-open.org, or visit http://www.oasis-open.org/mlmanage/.