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

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-tc message

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


Subject: "Kahlúa" comments


Hi Norm,

I finally found time to look little bit more into your RELAX NG schemas 
for DocBook NG. Firstly I must thank you, it is really admirable amount 
of work.

My study of grammar raised several questions and comments. I hope that 
they are not sounding as if I had write them after too much Kahlúas.

All comments are about declarations found in pool.rnc.

1. Why these attributes are interleaved when attributes are unordered?

db.href.attribute =
    attribute xlink:href { text }
  & [ dtd:defaultValue="simple" ] attribute xlink:type { "simple" }?
  & attribute xlink:role { xsd:anyURI }?
  & attribute xlink:arcrole { xsd:anyURI }?
  & attribute xlink:title { text }?
  & attribute xlink:show { "new" | "replace" | "embed" | "other" }?
  & attribute xlink:actuate { "onLoad" | "onRequest" | "other" | "none" }?

2. Why fileref is not xsd:anyURI?

db.common.data.attributes =
   attribute format { text }?,
   (attribute fileref { text } | attribute entityref { xsd:ENTITY })

3. What about defining some restrictions for
    width/height/contentwidth/contentheight attributes using regular
    expressions? Currently they are defined as text.

4. Create named patterns for
      "center" | "char" | "justify" | "left" | "right"	
    and
      "bottom" | "middle" | "top"
    or for whole align and valign attributes. There are used more then once.

5. Declare named patterns for all attributes. E.g.

    Currently we have:

    db.classsynopsis.attlist =
       db.classsynopsis.role.attribute?
     & db.common.attributes
     & db.common.linking.attributes
     & db.language.attribute
     & attribute class { "class" | "interface" }?

    But when someone needs to add new permitted value into list he must 
redefine whole
    db.classsynopsis.attlist. I think that following way will be more 
flexible:

    db.classsynopsis.attribute.class = attribute class { "class" | 
"interface" }

    db.classsynopsis.attlist =
       db.classsynopsis.role.attribute?
     & db.common.attributes
     & db.common.linking.attributes
     & db.language.attribute
     & db.classsynopsis.attribute.class

     Because redefinition then will be quite easy:

     include "docbook.rnc"
     {
        db.classsynopsis.attribute.class = attribute class { "class" | 
"interface" | "abstractclass" }
     }

    Or we can go even further and declare named pattern for value of 
attribute:

     db.classsynopsis.attribute.class.value =  "class" | "interface"
     db.classsynopsis.attribute.class = attribute class { 
db.classsynopsis.attribute.class.value }

    DocBook extension will then be even more easier

     include "docbook.rnc"
     {
       db.classsynopsis.attribute.class.value |= "abstractclass"
     }

    Changes like these will make grammar quite bit longer, so it is
    question whether such changes are worth. But I think that they will
    make customization even more easier.

6. application.class.attribute should be db.application.class.attribute

Hear you soon,

				Jirka

-- 
------------------------------------------------------------------
   Jirka Kosek     e-mail: jirka@kosek.cz     http://www.kosek.cz
------------------------------------------------------------------
   Profesionální školení a poradenství v oblasti technologií XML.
      Podívejte se na náš nově spuštěný web http://DocBook.cz
        Podrobný přehled školení http://xmlguru.cz/skoleni/
------------------------------------------------------------------

S/MIME Cryptographic Signature



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