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


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
>
>



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