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

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

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


Subject: RE: [dita] Conref push in a DITA map?


I assume the question is about pushing a topicref element, e.g. in
example fribblewhiskets.ditamap

<map id="fa" title="Fribblewhiskets">
 <topicref id="a" href="Fribblewhiskets.dita" type="topic">
  <topicref id="b" href="Fribblewhisket_internals.dita"
type="concept"></topicref>
  <topicref id="c" href="Fribblewhisket_configuration.dita"
type="task"></topicref>
  <topicref id="d" href="Fribblewhisket_corroboration.dita"
type="task"></topicref>
  <topicref id="e" href="Fribblewhisket_LEDs.dita"
type="reference"></topicref>
  <topicref id="f" href="Fribblewhisket_FRUs.dita"
type="reference"></topicref>
 </topicref>
</map>

Example newfribblefru.ditamap:

<map id="fb" title="New Fribblewhisket FRUs">
 <topicref
         href="Fribblewhisket_new_FRUs.dita" type="reference"
         conaction="mark"
         conaction="pushreplace" 
         conref="fribblewhiskets.ditamap#c"/></topicref>
</map>

A second topicref would be needed for pushbefore or pushafter.
_____________________________________________________________

The topic entitled "The conaction attribute" says "Multiple sources may
push content {before|after} the same target; the order in which that
content is pushed is undefined." 

1. I infer that it is up to the processing code to decide the push
order, closest first (inside out), closest last (outside in), or some
other order (though that seems unlikely to me). If this is true,
shouldn't we tell implementers explicitly that this is their
responsibility?

2. I infer that you can do both pushbefore and pushafter wrt the same
mark. True? For example:

  <step conaction="pushbefore"><cmd>Do this BEFORE B</cmd></step>
  <step conaction="mark"
         conref="example.dita#example/b"/>
  <step conaction="pushafter"><cmd>Do this AFTER B</cmd></step>

3. How about combinations with @pushreplace? If this is valid, is
@pushreplace in the same element instance with @mark? For example:

  <step conaction="pushbefore"><cmd>Do this BEFORE B</cmd></step>
  <step conaction="mark"
         conaction="pushreplace" 
         conref="example.dita#example/b"/>
  <step conaction="pushafter"><cmd>Do this AFTER B</cmd></step>

If this is valid, does relative order of conaction="mark",
conaction="pushreplace", and @conref matter within the element? (I
assume not.)

4. conaction="mark" has one meaning and a restriction on its location
has another. 

   - The meaning suggested by the attribute name is akin to a 
     word anchor,marking a location for action. 

   - The test that plural instances of the conref-bearing
     element are valid is supported by requiring that 
     conaction="mark" be on a separate element instance. 

Do we require that processing software verify that conaction="mark" be
on a separate element instance? If so, shouldn't we tell implementers
explicitly? (I don't know any way to enforce it in DTD syntax.)
   

4. Is the depth of nesting restricted? That is, the length of the
'|'-separated part of the conref value in e.g.

      conref="example.dita#example/first/second/.../last"/>

6. The restrictions about @mark must appear twice, as they do now, so we
should clean up the "before or after" language.

When an element is pushed before a target, the resulting document will
have at least two of that element. Because this is not always valid, a
document attempting to push content before a target must take an extra
step to ensure that the result will be valid. The extra step makes use
of the conaction="mark" value.

When an element is pushed after a target, the resulting document will
have at least two of that element. Because this is not always valid, a
document attempting to push content after a target must take an extra
step to ensure that the result will be valid. The extra step makes use
of the conaction="mark" value.

5. Looks to me like this topic might benefit from a section called
something like "Restrictions on combinations of attributes". This could
be the location of statements common to @pushbefore and @pushafter, and
maybe the above considerations as well. Here are some examples from that
topic (with some rewriting):

It is an error for two source topics to replace the same element.
Applications may, but need not, warn users if more than one element
attempts to replace a single target.

Multiple sources may push content before or after the same target; the
order in which that content is pushed [is undefined --> must be defined
by processing software].

The following restrictions apply when pushing content before or after an
element: 

. The element that uses conaction="mark" must be of the same type, or a
specialization descended from the same type, as the element referenced
by its conref attribute. This restriction ensures validity. 

. Elements that use conaction="pushbefore" or conaction="pushafter must
be of the same type as the adjacent element with conaction="mark", and
no elements other than these may intervene. This restriction ensures
that it is valid to insert more than one instance of that element. 




> -----Original Message-----
> From: Kristen James Eberlein [mailto:keberlein@pobox.com] 
> Sent: Thursday, October 01, 2009 9:53 AM
> To: DITA TC
> Subject: [dita] Conref push in a DITA map?
> 
> I've drafted an article about conref push for the DITA 
> Adoption Committee. Seth Park, Elliot Kimber, and Paul Grosso 
> were kind enough to review it.
> 
> One of Elliot's comments led to a discussion about whether or 
> not conref push works at a DITA map level.
> 
>     * The use case in the original proposal
>       
> (http://www.oasis-open.org/committees/download.php/26290/Issue
> Number17e.html)
>       focuses entirely on pushing content into an existing DITA topic.
> 
>     * The most recent draft of the DITA 1.2 documentation
>       
> (http://www.oasis-open.org/apps/org/workgroup/dita/download.ph
> p/34300/dita1.2-spec-complete_20September2009.chm)
>       explicitly defines the @conaction attribute as an attribute that
>       "allows user to push content from one topic into another."
> 
>     * The @conaction attribute *is* available for <topicref> elements,
>       although pushing content into a DITA map does not work with the
>       DITA OT (milestone 17).
> 
> Should conref push work at the DITA map level?
> 
> Best,
> 
> Kris
> 
> Kristen James Eberlein
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS 
> TC that generates this mail.  Follow this link to all your 
> TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgr
> oups.php 
> 
> 


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