On 10/21/2010 07:25 PM, David Priest wrote:
> I could spend the day reading docs and figuring out how to do this, but
> I'm going to be lazy and ask here:
>
> Hussein, could you paste a snippet that places a button on the toolbar
> that generates an xml:id for the selected element? Most of the time I
> manually name the bits and pieces I need to reference elsewhere, but at
> the moment I'm cobbling together random paragraphs and really have no
> need for sensible-to-humans IDs.
>
> I could swear that XXE used to have this functionality. At the moment,
> I'm thinking I should fiddle with Mercurial to have it run a
> generate-id() transformation on check-in. It certainly wouldn't harm my
> documents if every. single. element. were to have an ID.
Basically you need to invoke:
---
<command name="addAttribute"
parameter="[implicitElement] [id] xml:id" />
---
See http://www.xmlmind.com/xmleditor/_distrib/doc/commands/addAttribute.html
However here's something more comfortable to use:
---
<binding>
<keyPressed code="F4" />
<command name="addId" />
</binding>
<command name="addId">
<macro>
<choice>
<sequence>
<command name="addAttribute"
parameter="[implicitElement] [id] xml:id" />
<command name="selectNode"
parameter="self[implicitElement]" />
<get context="$selectedElement" expression="@xml:id" />
<command name="status" parameter='xml:id="%_"' />
</sequence>
<sequence>
<get context="$implicitElement/@xml:id" expression="." />
<command name="status"
parameter='Already has xml:id="%_". Will not change it.' />
</sequence>
</choice>
</macro>
</command>
---
Copy attached customize.xxe to one of the two addon/ subdirectories
scanned by XXE during its startup and you are done.
If you want a toolbar button rather than keyboard shortcut F4, then
you'll have to tell me which stock configuration you want to customize.
Is it DocBook 5?
---
PS: XXE can automatically add an ID to newly inserted element. You need
to customize your configuration to do that.
---
<newElementContent generateIds="true" />
---
See
http://www.xmlmind.com/xmleditor/_distrib/doc/configure/newElementContent.html
<?xml version='1.0' encoding='ISO-8859-1'?>
<configuration
xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
<binding>
<keyPressed code="F4" />
<command name="addId" />
</binding>
<command name="addId">
<macro>
<choice>
<sequence>
<command name="addAttribute"
parameter="[implicitElement] [id] xml:id" />
<command name="selectNode"
parameter="self[implicitElement]" />
<get context="$selectedElement" expression="@xml:id" />
<command name="status" parameter='xml:id="%_"' />
</sequence>
<sequence>
<get context="$implicitElement/@xml:id" expression="." />
<command name="status"
parameter='Already has xml:id="%_". Will not change it.' />
</sequence>
</choice>
</macro>
</command>
</configuration>
--
XMLmind XML Editor Support List
[email protected]
http://www.xmlmind.com/mailman/listinfo/xmleditor-support