Hello.

Thank you very much, I'm really astonished by your rapid and very responsive
support.

The command you propose works perfectly. I promise to read the XML Mind doc
more carefully next time.

On Tue, Jan 13, 2009 at 6:16 PM, Hussein Shafie <hussein at xmlmind.com> wrote:

> Petr Nalevka wrote:
> >
> > I have implemented a simple command to insert DocBook cross references
> > using xref.
> >
> > Here is the code:
> >   <command name="db5.insertXref">
> >     <macro repeatable="true" undoable="true" label="Insert XRef">
> >       <sequence>
> >         <pass>
> >             <command name="insert" parameter="into
> > {http://docbook.org/ns/docbook}xref<http://docbook.org/ns/docbook%7Dxref>
> > <http://docbook.org/ns/docbook%7Dxref>"/>
> >         </pass>
> >         <command name="insert" parameter="into
> > {http://docbook.org/ns/docbook}xref<http://docbook.org/ns/docbook%7Dxref>
> > <http://docbook.org/ns/docbook%7Dxref>"/>
> >
> >         <set variable="idList" expression="//@xml:id"/>
> >         <get expression="$idList" />
> >
> >         <command name="pick" parameter="'Select crossreference linkend'
> > false %_" />
> >         <command name="putAttribute" parameter="linkend %_" />
> >         <command name="insertString" parameter=" " />
> >       </sequence>
> >     </macro>
> >   </command>
> >
> > It works fine, but in a modular document environment it of course shows
> > only ID from the current document fragment. If I rather use the
> > attribute list dialog and click the "List of values" I get a much better
> > list which includes also all xml:ids from included fragments. Would it
> > be possible to implement such a comprehensive pick using the XXE
> commands?
> >
> > Even better would be to get xml:ids not only from the current fragment
> > and all included fragments but also from "Preceding" fragments
> recursively.
> >
>
> Command putAttribute knows that linkend is an IDREF attribute. It will
> automatically display the list of all IDs if you do not pass it an
> attribute value.
>
> See
> http://www.xmlmind.com/xmleditor/_distrib/doc/commands/putAttribute.html
>
> Your macro can be rewritten as follows:
> ---
>   <command name="db5.insertXref">
>    <macro repeatable="true" undoable="true" label="Insert XRef">
>      <sequence>
>         <command name="insert" parameter="into
> {http://docbook.org/ns/docbook}xref <http://docbook.org/ns/docbook%7Dxref>
> "/>
>         <command name="putAttribute" parameter="linkend" />
>        <command name="insertString" parameter=" " />
>      </sequence>
>    </macro>
>  </command>
> ---
>
> Note that the <pass> is definitely not needed. Your sequence will not be
> executed if the schema does not allow an xref to be inserted at caret
> position.
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.xmlmind.com/pipermail/xmleditor-support/attachments/20090113/1801f3bb/attachment.htm
 

Reply via email to