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] Use of xincludes vs. entities

A quick contribution.
Use Xinclude for large amounts of text, entities for the small stuff.
One thing I have found useful is using entities to build a skeleton 
index as writing progresses, put all the primary index stuff into the 

On 9/26/10 9:55 AM, Denis Bradford wrote:
> Also see Bob Stayton's summary of using xincludes in
> http://www.sagehill.net/docbookxsl/DuplicateIDs.html.
> I've successfully implemented xincludes in place of entity refs, but it
> was tricky, along the lines that Sam describes.
> That's why I sat up when David mentioned Jirka's transclusion proposal.
> I sure hope it's adopted by the DocBook committee. I'm not much of a
> DITA fan, but resurrecting transclusions is one thing I do like about
> it. DITA conrefs are almost as verbose as xincludes, but they do avoid
> duplicate ids.
> On 09/26/2010 08:10 AM, Sam Fischmann wrote:
>> Sorry for mailing so much on this topic, but thanks for the link. The
>> information here is great to see, but I'm curious about the current
>> status of any work related to this proposal. My situation is difficult
>> because I'm sitting on a huge amount of material and don't want to
>> pull the trigger upgrading it until I'm certain I have good support
>> going forward from editors, parsers, stylesheets, etc. For now, I
>> wait.
>> -Sam
>> On Sat, Sep 25, 2010 at 1:25 PM, Cramer, David W (David)
>> <dcramer@motive.com> wrote:
>>> Hi Sam and Jim,
>>> You might be interested in Jirka's proposal for transclusions in
>>> DocBook. It notes the problems with xincludes for the very use case
>>> you bring up:
>>> http://lists.oasis-open.org/archives/docbook-tc/201007/msg00041.html
>>> David
>>> -----Original Message-----
>>> From: Sam Fischmann [mailto:sam.fischmann@gmail.com]
>>> Sent: Saturday, September 25, 2010 3:10 PM
>>> To: Jim Campbell; docbook-apps@lists.oasis-open.org
>>> Subject: Re: [docbook-apps] Use of xincludes vs. entities
>>> Hi Jim,
>>> I say pick the right tool for the job. I think that the two cases you
>>> outline above are completely reasonable uses for entities. I'm also a
>>> bit sheepish about using XInclude with XPointer because of the
>>> differing levels of support for XPointer in different XSL processors.
>>> I don't think it's Bad with a captial "B" to use entities in places
>>> where they are a simple, elegant solution.
>>> Another way to look at it... While editing, a lot of the XInclude junk
>>> doesn't seem helpful for a small bit of text replacement:
>>> <para>The ball is&product_color;.</para>
>>> <para>The ball is<xi:include href="product_info.xml"
>>> xpointer="color"/>.</para>
>>> I think product_info.xml is just going to be a weird file to maintain,
>>> too, but that could be personal preference.
>>> However, if it were a file, xi:include provides valuable information:
>>> <para>See the following table:&uh_what_file;</para>
>>> <para>See the following table:<xi:include
>>> href="../tables/product_table.xml"></para>
>>> [ I am going to rant slightly off-topic now, but you might find some
>>> of this interesting and related to your question ]
>>> I am in a situation right now where I have a very large base of
>>> existing DocBook material that uses entities extensively. I would like
>>> to use XPointer for including chunks of text, but I run into all sorts
>>> of problems when those chunks of text themselves contain entities.
>>> Consider two books: Book1 and Book2. Book1 defines&foo; as "1" and
>>> Book2 defines&foo; as "2". I have a file "inc.xml" that's included in
>>> each book via entities. It has the content: "<para>My number is
>>> &foo;</para>". It works great. When I view either book in an editor,
>>> the entity resolves nicely to 1 in Book1 and 2 in Book2.
>>> Unfortunately, most editors don't allow me to edit the contents of
>>> "inc.xml", or as soon as they do,&foo; doesn't resolve because it's
>>> not aware of the parent book that defines it because it's in another
>>> file.
>>> Now I change to XInclude. If I simply add a DOCTYPE tag to "inc.xml"
>>> and include it,&foo; won't resolve at all, because it needs to be
>>> declared inside "inc.xml". But this file is included by two books
>>> which would each define the entity differently. What do I do?
>>> To solve the general case, somebody might tell me that I could define
>>> &foo; in two different entity files, then create two XML catalogs, one
>>> for use with each book, that define the same public identifier for
>>> each respective entity file. I would then use the public identifier
>>> to declare the entity file in the subset of "inc.xml" and
>>> conditionally specify one or the other catalog when building each
>>> book. That's an awful lot of infrastructure, not to mention that I'm
>>> going to be hard-pressed to find an editor which could elegantly
>>> handle the catalog situation.
>>> Somebody else might respond: but clearly there's some ill-conceived
>>> organization here. Why aren't you using profiling to get the "1" and
>>> "2"? Surely then, you could define a couple profiled phrases for
>>> &foo;, then specify the profile when making the book. Well, consider
>>> what might happen if I had 15 books that each required a unique
>>> definition? Now every time that entity is used and I'm editing a book,
>>> I've got to look at a massive chunk of profiled phrases. Still, I'm
>>> considering this to be the only reasonable route to take; if you name
>>> your entities well enough you can hide their text values when editing
>>> material in a nice full-featured editor.
>>> -Sam
>>> On Sat, Sep 25, 2010 at 8:25 AM, Jim Campbell<jwcampbell@gmail.com>
>>> wrote:
>>>> Hi All,
>>>> As I understand it, the xincludes feature provides a number of
>>>> advantages
>>>> over use of entities, but are there some situations where entities
>>>> are still
>>>> relevant and recommended?
>>>> For example, I'm considering the use of click-paths for guimenu>
>>>> guisubmenu
>>>> chains. In the past, we have used an entity file to house all of the
>>>> guimenu click-paths for our documentation. If the guimenu click-path
>>>> changed, we would just update it in our entities file, and it would be
>>>> updated throughout the documentation. It seems that using xinclude +
>>>> xpointer to perform the same feature would be overkill for in
>>>> performing the
>>>> same task. Similarly, in the past we have used entities to handle
>>>> updates to
>>>> version numbering, and it seems that xinclude + xpointer would be
>>>> overkill
>>>> there, as well.
>>>> Much of how I've seen xinclude being used seems to be relevant for
>>>> including
>>>> entire chapters or otherwise large chunks of text, and I do see the
>>>> relevance there. Is xinclude helpful and manageable for smaller textual
>>>> insertions, too, or are entities still a reasonable way to go for these
>>>> types of uses?
>>>> Thanks for your help,
>>>> Jim
>>>> P.S. I do understand that DocBook version 5 schemas do not support
>>>> entity
>>>> declarations in the schema, and that I'd have to reference the
>>>> entities file
>>>> via the doctype declaration.
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org

Ron Catterall Ph.D. D.Sc.

S/MIME Cryptographic Signature

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