[ 
https://issues.apache.org/jira/browse/VELTOOLS-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12558416#action_12558416
 ] 

Christoph Reck commented on VELTOOLS-99:
----------------------------------------

There are several aspects to consider for a XML tool:

1. VTL Syntax, either:
    a) the DOM nodes are xpath-sensitive: 
            $node.xpath('/[EMAIL PROTECTED]"reck"]/date')
        here the implementation needs a XML node factory that is xpath-aware 
(as dom4j is), or the Anakia approach with JDOM.
  or
    b) an external tool is used to work with the DOM nodes (like my XmlTOol or 
XPath_Evaluation-XPathHandler mentioned above): 
            $xml.xpath( $node, '/[EMAIL PROTECTED]"reck"]/date')
        This is the simple approach (as my original XmlTool).
  or even 
    c) the XPath directive mentioned above (directives are a bit more difficult 
to activate that a tool).

2. Use of JDOM or generic DOM. I propose to use DOM, since it is most adopted 
and has many compatible implementations.

3. Allow parsing of XML files from within the template (in analogy to the 
#parse directive)?: 
            $xml.parse("foo.xml")
  or feed the XML from the application into the context (like Anakia uses 
$root).

4. The XPath engine to use. I like the idea of the apache commons JXPath, which 
is also capable to run xpath statements against JDOM and as well as java 
objects (POJOS)!

5. Can DVSL capability be added to the XML tool?


P.S. not to forget that some better control of the VTL whitespace output is 
highly desirable.



> XmlTool
> -------
>
>                 Key: VELTOOLS-99
>                 URL: https://issues.apache.org/jira/browse/VELTOOLS-99
>             Project: Velocity Tools
>          Issue Type: New Feature
>          Components: GenericTools
>    Affects Versions: 2.x
>            Reporter: Nathan Bubna
>             Fix For: 2.x
>
>
> There have always been those interested in a general tool to read and utilize 
> XML content in templates.  Various approaches to this have been taken.  
> Though i've yet to need this myself, i thought it would be prudent to gather 
> ideas and links to relevant discussion and implementations here, in case 
> someone gets the itch or we want to come up with ideas for something like the 
> GHOP contest.
> Here's a XmlTool that Christoph Reck posted to the mailing list:
> http://velocity.markmail.org/search/?q=XmlTool#query:XmlTool+page:1+mid:rpogtxshsqqoiph7+state:results
> Philippe Collignon created XmlGen (http://xmlgen.sourceforge.net/), which 
> offers a very simple API for walking XML docs in a template.  There was talk 
> of contributing the whole project, but that fizzled.  As it is ASL 2 
> licensed, we could easily adopt relevant portions or, better, find a way to 
> collaborate and keep the portions we're both interested in in one place.
> DVSL has some useful node selection/handling code that uses Dom4j:
> http://svn.apache.org/repos/asf/velocity/dvsl/trunk/src/java/org/apache/dvsl/dom4j/Dom4jNodeImpl.java
> Anakia, of course, also has some useful xpath/xml handling code:
> http://svn.apache.org/repos/asf/velocity/anakia/trunk/src/java/org/apache/anakia/
> It may also prove useful to somehow combine or connect XML reading with the 
> XML writing stuff proposed in VELTOOLS-97 
> (https://issues.apache.org/jira/browse/VELTOOLS-97)
> And of course, there's probably a lot of other useful XML handling code out 
> there.  At this point, my favorite API by far is XmlGen's which is very 
> Velocity-ish and intuitive to me.  Since XmlGen is a Texen extension and i 
> hope eventually to get around to making VelocityTools integrate naturally 
> into Texen (as well as DVSL and Anakia), it may be that XmlGen's xml reading 
> API(s) could migrate wholly to VelocityTools.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to