On 11/8/06, Dan Connelly <[EMAIL PROTECTED]> wrote:
All:
This is a follow-up on my questions posted per "ThirdHop for structured
node types". I have got most of what I want working, but not all.
One remaining problem is that a certain child-node stays unstructured
although I have provided a structured node type for it. It is
difficult to diagnose why I am not getting jcr:primaryType of
"teneo:proxy" for the "author" child node.
Details below. The "library:Book" node is imported (correctly) as a
structured type. But its child "author" is not. It should be a
"teneo:proxy" primary node type.
Could there be a problem here because the"author" element is in the
un-named namespace, not in the "library" namespace of its parent?
no. the problem is the following:
[...]
<library:Book jcr:primaryType="teneo:eobject"
[...]
i.e. library:Book is of type teneo:eobject which extends
nt:unstructured. that's why "author" ends up being of type
nt:unstructured.
i guess library:Book should be of type library:Book.
btw: the naming of node and type is somewhat confusing...
cheers
stefan
(XML input is provided to me. I cannot re-structure it.)
custom_nodetypes.xml (part):
<nodeType name="teneo:eobject" isMixin="false">
<supertypes>
<supertype>mix:referenceable</supertype>
<supertype>nt:unstructured</supertype>
</supertypes>
</nodeType>
<nodeType name="teneo:proxy" isMixin="false" >
<supertypes>
<supertype>nt:base</supertype>
</supertypes>
<propertyDefinition name="href" requiredType="String"
autoCreated="false" mandatory="true" onParentVersion="COPY"
protected="false" multiple="false" />
</nodeType>
<nodeType name="library:Book" isMixin="true"
hasOrderableChildNodes="false">
<supertypes>
<supertype>teneo:eobject</supertype>
</supertypes>
<propertyDefinition name="title" requiredType="String"
autoCreated="false" mandatory="false" onParentVersion="COPY"
protected="false" multiple="false"/>
<propertyDefinition name="pages" requiredType="Long"
autoCreated="false" mandatory="false" onParentVersion="COPY"
protected="false" multiple="false"/>
<propertyDefinition name="category" requiredType="String"
autoCreated="false" mandatory="false" onParentVersion="COPY"
protected="false" multiple="false"/>
<childNodeDefinition name="author"
defaultPrimaryType="teneo:proxy" autoCreated="false" mandatory="true"
onParentVersion="COPY" protected="false" sameNameSiblings="false" >
<requiredPrimaryTypes>
<requiredPrimaryType>teneo:proxy</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDefinition>
</nodeType>
Session DocView Import:
<?xml version="1.0" encoding="UTF-8"?>
<library:Book xmlns:library="http://www.example.eclipse.org/Library"
category="ScienceFiction" pages="500" title="The Hobbit">
<author href="jcr://proxies.test.writer/#/Content.2"/>
</library:Book>
Session DocView Export:
<?xml version="1.0" encoding="UTF-8"?>
<Content.1 xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rep="internal"
xmlns:graffito="http://incubator.apache.org/graffito"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:library="http://www.example.eclipse.org/Library"
xmlns:sv="http://www.jcp.org/jcr/sv/1.0"
xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
xmlns:fn="http://www.w3.org/2004/10/xpath-functions"
xmlns:jcr="http://www.jcp.org/jcr/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:teneo="http://www.eclipse.org/emft/projects/teneo"
jcr:primaryType="teneo:content">
<library:Book jcr:primaryType="teneo:eobject"
jcr:uuid="e22d24a5-9532-4dcc-b45b-38ac045de7e5" pages="500"
category="ScienceFiction" title="The Hobbit">
<author jcr:primaryType="nt:unstructured"
href="jcr://proxies.test.writer/#/Content.2"/>
</library:Book>
</Content.1>
Should be:
............
<author jcr:primaryType="teneo:proxy"
href="jcr://proxies.test.writer/#/Content.2"/>
...........