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

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

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


Subject: Re: [docbook-apps] Shared text entities


Thanks Tom for your suggestions!

I was hoping to use a standard mechanism, but your tricks are 
attracting... Hard to make the right choice.

Camille.

Thomas Schraitle wrote:
> Hi Camille,
> 
> On Saturday 08 October 2005 13:40, Camille BĂ©gnis wrote:
> 
>>[...]
>>So I thought of using the xinclude plus xpointer mechanism in order to
>>pick the "entities" in a real XML file instead. The problem is that the
>>xinclude syntax is quite verbose, so replacing &docbook; with
>><xi:include href="entities.xml xpointer="docbook"
>>xmlns:xi="http://www.w3.org/2001/XInclude"; /> makes the XML code
>>significantly harder to read.
>>
>>So I am interested in any experience in this area.
>>If you have another idea than xinclude, I'll be happy to hear it as
>>well.
> 
> 
> If you look for another solution you should consider some parameters:
> 
>  * How much control by DTD/schema?
>  * Flexibility
>  * Verbosity
>  * Extensibility
> 
> There are a number of different methods to use, each have advantages and 
> disadvantages, of course:
> 
> 1. Processing instructions (PIs)
> You can use something like
> 
>  <para>Use <?dbentity entity="foo"?> to ...</para>
> 
> Advantages:
>   - A bit less verbose than XIncludes
>   - Writer have freedom to choose from different "sets"
>   - Very extensible and flexible
>   - It doesn't require to change the DTD/Schema
> 
> Disadvantages
>   - Freedom is sometimes not always useful. Think of writers who
>     should use restricted values only (XML editors). 
>   - There is no validation for PIs, e.g. you can not restrict
>     values. You can check the correct values only in the XSLT
>     step, for example
>   - "Entity replacement" must be resolved by another step
>   - PIs shouldn't be use for content only
> 
> 
> 2. (Ab)use of an exisiting element
> You could use an element with a "special" attribut. In case of DocBook you 
> could use the element phrase. For example:
> 
>  <para>Use <phrase role="entity:foo"/> to ... </para>
> 
> Advantages:
>   - Less verbose than XInclude
>   - DTD can restrict the possible values
>   - phrase can occur on allowed content only
>   - XML editors can offer writers the set of possible values
> 
> Disadvantages:
>   - You have to change the DTD/Schema to add all possible 
>     attribute values
>   - The semantic of phrase doesn't really fit
>   - It might conflict with other content for phrase (processing
>     might be a bit complicated)
>   - It must be resolved by another step
> 
> 
> 3. Introduce new element
> It is a variation of point 2: Insert a new element just for this purpose. 
> For example:
> 
>  <para>Use <e:entity name="foo"/> to ... </para>
> 
> Advantages:
>   - Less verbose than XInclude
>   - DTD/Schema can restrict possible values
>   - XML editors can offer writers the set of possible values
> 
> Disadvantages:
>   - You have to change the DTD/Schema
>   - Complicates the content modell in case of DTD
>   - It must be resolved by another step
> 
> What is the best solution? I don't know. It is up to you. :-)
> 
> 
> Tom
> 

begin:vcard
fn;quoted-printable:Camille B=C3=A9gnis
n;quoted-printable:B=C3=A9gnis;Camille
org:NeoDoc
adr:Domaine du petit Arbois BP 88;;CEEI;Aix en Povence Cedex 4;;13545;France
email;internet:camille@neodoc.biz
tel;work:+33.4.42.22.62.35 
tel;cell:+33.6.33.15.10.23
x-mozilla-html:FALSE
url:http://neodoc.biz
version:2.1
end:vcard



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