Kathryn Huxtable wrote:
> In XMLEditer version 4.4 I can create a DocBook 4.5 document with elements
> such as
>
> <ulink
> url="http://myhost/myproject/${project.version}/usage.html">usage</ulink>
>
> I have a post-processing phase after converting to HTML that replaces the
> ${...} element with my project version, or whatever.
>
> When I create a DocBook 5+ document, however, the preferred conversion for
> this, according to the DocBook docs at
>
> http://www.sagehill.net/docbookxsl/Db5Tools.html#Db5UnivLinking
>
> is
>
> <link
> xlink:href="http://myhost/myproject/${project.version}/usage.html">usage</link>
>
> I have three problems.
>
> 1) At least in version 4.4 adding xlink:href attributes to a link element is
> not allowed. I can create them externally and open the file and all is well.
>
> 2) In version 4.4 the linkend attribute is required, but is not present in
> the DocBook5 doc. Again, if I create the element externally and open the
> file, it is accepted as valid.
>
> 3) This is the biggest problem. The "$" and and curly brace characters are
> seen as invalid by the validation mechanism and are flagged as such. There is
> also no way to enter the text manually. Escaping the text using %24 for the
> "$", for instance, does not work because it is never expanded and my Velocity
> macro processor doesn't detect it.
>
> Are there workarounds for any of these problems? Are any of them different in
> version 4.5 of XMLEditor?
--> DocBook 5 is pretty different from DocBook 4. For example, with
DocBook 5, the link element *must* have a linkend attribute *or* a
xlink:href attribute, but not both attributes.
Two different methods to create a link to an external target in a
Docbook 5 document.
Method #1 (Recommended)
* Select some text.
* Click the "Convert to link" toolbar button.
* Select the "link[xlink:href]" item from the menu displayed by the button.
* Use the Attributes tool to specify the value of the xlink:href attribute.
Method #2 (Low-level)
* Select some text.
* Use Edit|Convert (Ctrl-T) to convert the selected text to an element.
* Select "link" from the element list.
* In the Attributes tool, right-click on attribute "linkend" and select
"Force Removal" from the menu.
* Use the Attributes tool to specify the value of the xlink:href attribute.
--> About "${project.version}" in the value of the xlink:href attribute.
The DocBook 5 grammar specifies that the type of the xlink:href
attribute is xsd:anyURI. A substring like "${project.version}" is not
allowed in an URI. Therefore the error reported by XMLmind XML Editor is
legitimate.
You can either ignore the error
OR
modify the DocBook 5 grammar to replace "anyURI" by "string".
Excerpts of XXE_install_dir/addon/config/docbook5/rng/V5.0/docbook.rng
---
<define name="db.xlink.href.attribute">
<attribute name="xlink:href">
<a:documentation>Identifies a link target with a
URI</a:documentation>
<data type="anyURI"/>
</attribute>
---
--> No need to upgrade to XMLmind XML Editor v4.5.2. Doing this would
not help you.