[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook] DTD from extended RNC
There is a relax-ng mode in emacs? Spoiled somewhat from the James Clark original, but still usable? HTH On 21 May 2018 at 12:43, N. Raghavendra <nyraghu27132@gmail.com> wrote: > I would like to use DocBook for a mathematics book. For that, I need to > extend the DocBook 5.1 schema, to incorporate statements like > "Definition", "Lemma", "Proposition", "Theorem", and "Corollary". I > would like both RELAX NG and DTD versions of the extended schema; the > DTD is necessary for the PSGML mode in Emacs. > > I have made a first attempt at extending the RNC. The resulting schema, > which I've called `mono.rnc' is deemed valid by `jing': > > $ jing -c mono.rnc && echo "VALID" > VALID > > I am also able to convert the RNC to an RNG with trang: > > $ trang mono.rnc mono.rng && echo "SUCCESS" > SUCCESS > > Now, to use PSGML, I have to convert the RNC to a DTD. However, when I > try to do that with `trang', the command aborts with several errors: > > $ trang mono.rnc mono.dtd > > /home/raghu/xml/xml/mono.rnc:14:1: error: sorry, combining definitions > with combine="choice" is not supported > > /pkg/docbook/rng/docbookxi.rnc:264:6: error: sorry, ambiguous attribute > choice not handled (attribute "type" from namespace > "http://www.w3.org/1999/xlink") > > [...] > > I have enclosed the schema `mono.rnc' below. I would be grateful if you > have any suggestions. I have asked this question in an ongoing thread > at comp.text.xml > > https://groups.google.com/d/msg/comp.text.xml/SYhl-SKcKO0/qpVJIKbCBQAJ > > but am posting it here, because this is the canonical place for the > question. > > Thanks, > Raghu. > > ---------- mono.rnc ---------- > > # The namespace for all unqualified names. We use the prefix `db' for > # it. > > default namespace db = "http://docbook.org/ns/docbook" > > ## Include the DocBook schema which allows XInclude. > > include "/pkg/docbook/rng/docbookxi.rnc" > > ## Add a new choice pattern `db.statement.blocks' to the pattern > ## `db.formal.blocks'. This makes the `db.statement.blocks' pattern a > ## valid option in any context where `db.formal.blocks' appears. > > db.formal.blocks |= db.statement.blocks > > ## The `db.statement.blocks' pattern is itself a choice pattern, whose > ## values are the patterns that match definitions, theorems, etc. > > db.statement.blocks = > db.corollary > | db.definition > | db.lemma > | db.notation > | db.observation > | db.proposition > | db.theorem > > ## Here is the definition of the individual values of the > ## `db.statement.blocks' choice pattern. > > div { > db.corollary = element corollary { db._statement.content } > > db.definition = element definition { db._statement.content } > > db.lemma = element lemma { db._statement.content } > > db.notation = element notation { db._statement.content } > > db.observation = element observation { db._statement.content } > > db.proposition = element proposition { db._statement.content } > > db.theorem = element theorem { db._statement.content } > } > > ## The content of an individual value of the `db.statement.blocks' > ## choice pattern. Adapted from `db.example'. > > div { > db._statement.content = > db._statement.attlist > , db._statement.info > , db.all.blocks + > , db.caption ? > > db._statement.attlist = > db._statement.role.attribute ? > & db.common.attributes > & db.common.linking.attributes > & db._statement.label.attribute ? > & db._statement.floatstyle.attribute ? > & ( db._statement.width.attribute | db._statement.pgwide.attribute ) ? > > db._statement.info = db._info.title.onlyreq > > db._statement.role.attribute = attribute role { text } > > db._statement.label.attribute = db.label.attribute > > db._statement.floatstyle.attribute = db.floatstyle.attribute > > db._statement.width.attribute = db.width.characters.attribute > > db._statement.pgwide.attribute = db.pgwide.attribute > } > > ---------- mono.rnc ends here ---------- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: docbook-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: docbook-help@lists.oasis-open.org > -- Dave Pawson XSLT XSL-FO FAQ. Docbook FAQ.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]