[dna-issues] [JBoss JIRA] Updated: (DNA-378) XML Graph Importer should support importing multi-valued properties
Brian Carothers (JIRA)
jira-events at lists.jboss.org
Tue Apr 28 08:39:46 EDT 2009
[ https://jira.jboss.org/jira/browse/DNA-378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Carothers updated DNA-378:
--------------------------------
Attachment: DNA-378.patch
Attached patch that supports this capability. It's a bit clunky, but it does handle some fairly complex cases with nested content, multi-valued properties, etc. as in this example:
<car name="Infiniti G37">
<maker>Infiniti</maker>
<category>Turbocharged</category>
<driver name="Tony Stewart" />
<property jcr:name="model">G37</property>
<category>My <![CDATA[Sedan]]></category>
</car>
This may allow -379 to be further deferred.
> XML Graph Importer should support importing multi-valued properties
> --------------------------------------------------------------------
>
> Key: DNA-378
> URL: https://jira.jboss.org/jira/browse/DNA-378
> Project: DNA
> Issue Type: Feature Request
> Components: API, Graph
> Reporter: Randall Hauch
> Fix For: 0.4
>
> Attachments: DNA-378.patch
>
>
> The XML handler used in the Graph importer (that is, org.jboss.dna.graph.xml.XmlHandler) does not currently support producing multi-valued properties. This is a fairly substantial limitation.
> The current XML handler simply maps an XML element to a graph node and an XML attribute to a property. There is no such thing as multi-valued XML attributes, so another mapping has to be used for multi-valued properties. Since a graph node does not directly hold any values (rather, it holds properties that have the values), and the XML handler currently ignores all XML character content (e.g., <element>this is character content</element>), it is fairly logical to conclude that a child XML element with character content should be mapped to a property. If there is a "jcr:name" attribute, then this attribute's value would be used to determine the property name (meaning the element's name could be anything); otherwise, the child element's name would be the property name.
> This would also address the shortcoming of XML attribute values not being able to (easily) have any character content, since such property values could be placed in a child element.
> Here's an example:
> <cars>
> <car jcr:name="Mini">
> <jcr:description>This is a description that would be stored as a property on the 'Mini' node</jcr:description>
> <property jcr:name="summary">This is the value of the 'summary' property on the 'Mini' node</property>
> </car>
> </cars>
> I'm not sure how easy it is to change the XmlHandler to behave this way, since under certain situations it may require postponing the creation of a node since it is unknown when processing a "startElement" method that the element has character content. However, I believe that it is worth any additional complexity to make the XML more intuitive and natural.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the dna-issues
mailing list