OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook] Adding a new element to docbook


On Fri, Aug 22, 2003 at 10:51:17AM -0500, JABakken@dstsystems.com wrote:
> 
> I'm still working on adding a new element to docbook, and am becoming
> pretty confused. Here's what I've got so far:
> 
> This is mydocbk.dtd:
> 
> <!ENTITY % local.tech.char.class "footer">


This declaration needs to have the 'or' symbol added:

<!ENTITY % local.tech.char.class "|footer">

                       -----------^

so that when it is added at the end of %tech.char.class;
it will fit in with the other or'ed elements.

> <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook V4.2//EN">
> %DocBookDTD;

This PUBLIC identifier is for the SGML version of the
DocBook DTD.  Since you are using XML, you need
to use:

"-//OASIS//DTD DocBook XML V4.2//EN"

> 
> <!ELEMENT footer - - ((%para.char.mix;|%para.mix;)+)>

Also, the syntax for XML DTDs does not use "- -"
in element declarations.
Also, for mixed content in XML (mixing #PCDATA and
elements), the number of occurances may not be
constrained (see http://www.w3.org/TR/REC-xml#sec-mixed-content).
That means you must use * rather than + in the declaration.
And you should remove the extra parens, leaving:

<!ELEMENT footer (%para.char.mix;|%para.mix;)*>

> This is my test xml file:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE book SYSTEM "file:///C:/DocBook/XSLTest/DTD/mydocbk.dtd">
> <book><title>Book Title</title>
> 
> <chapter><title>Using the footer element</title>
> <para>This is only a sample.</para>
> <footer>This is the footer</footer>
> </chapter>
> </book>

So far, you have only added footer to tech.char.class
which is used within paragraphs.  So this file won't
validate against your DTD.  If you want to use
footer as a sibling to para, you need another local 
parameter entity:

<!ENTITY % local.divcomponent.mix "|footer">

This adds footer to the mix of block elements
that can be used in chapter, section, etc.

--

Bob Stayton                                 400 Encinal Street
Publications Architect                      Santa Cruz, CA  95060
Technical Publications                      voice: (831) 427-7796
The SCO Group                               fax:   (831) 429-1887
                                            email: bobs@sco.com


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]