You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2005/01/31 18:26:32 UTC

svn commit: r149273 - in incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype: NodeTypeDefStore.java builtin_nodetypes.xml

Author: stefan
Date: Mon Jan 31 09:26:28 2005
New Revision: 149273

URL: http://svn.apache.org/viewcvs?view=rev&rev=149273
Log:
fixed definitions of built-in node types according to spec

Modified:
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java?view=diff&r1=149272&r2=149273
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java Mon Jan 31 09:26:28 2005
@@ -46,13 +46,13 @@
     private static final String ROOT_ELEMENT = "nodeTypes";
     private static final String NODETYPE_ELEMENT = "nodeType";
     private static final String NAME_ATTRIBUTE = "name";
-    private static final String MIXIN_ATTRIBUTE = "mixin";
+    private static final String ISMIXIN_ATTRIBUTE = "isMixin";
     private static final String ORDERABLECHILDNODES_ATTRIBUTE = "orderableChildNodes";
     private static final String PRIMARYITEMNAME_ATTRIBUTE = "primaryItemName";
     private static final String SUPERTYPES_ELEMENT = "supertypes";
     private static final String SUPERTYPE_ELEMENT = "supertype";
     private static final String PROPERTYDEF_ELEMENT = "propertyDef";
-    private static final String TYPE_ATTRIBUTE = "type";
+    private static final String REQUIREDTYPE_ATTRIBUTE = "requiredType";
     private static final String VALUECONSTRAINTS_ELEMENT = "valueConstraints";
     private static final String VALUECONSTRAINT_ELEMENT = "valueConstraint";
     private static final String DEFAULTVALUES_ELEMENT = "defaultValues";
@@ -256,8 +256,8 @@
             }
         }
 
-        // mixin
-        String mixin = ntElem.getAttributeValue(MIXIN_ATTRIBUTE);
+        // isMixin
+        String mixin = ntElem.getAttributeValue(ISMIXIN_ATTRIBUTE);
         if (mixin != null && mixin.length() > 0) {
             ntDef.setMixin(Boolean.valueOf(mixin).booleanValue());
         }
@@ -301,8 +301,8 @@
             } else {
                 pd.setName(ChildItemDef.ANY_NAME);
             }
-            // type
-            String typeName = elem.getAttributeValue(TYPE_ATTRIBUTE);
+            // requiredType
+            String typeName = elem.getAttributeValue(REQUIREDTYPE_ATTRIBUTE);
             int type = PropertyType.UNDEFINED;
             if (typeName != null && typeName.length() > 0) {
                 try {
@@ -516,8 +516,8 @@
                 }
             }
 
-            // mixin
-            ntElem.setAttribute(MIXIN_ATTRIBUTE, Boolean.toString(ntd.isMixin()));
+            // isMixin
+            ntElem.setAttribute(ISMIXIN_ATTRIBUTE, Boolean.toString(ntd.isMixin()));
 
             // orderableChildNodes
             ntElem.setAttribute(ORDERABLECHILDNODES_ATTRIBUTE, Boolean.toString(ntd.hasOrderableChildNodes()));
@@ -536,8 +536,8 @@
                 // name
                 String name = pd.definesResidual() ? WILDCARD : pd.getName().toJCRName(nsResolver);
                 elem.setAttribute(NAME_ATTRIBUTE, name);
-                // type
-                elem.setAttribute(TYPE_ATTRIBUTE, PropertyType.nameFromValue(pd.getRequiredType()));
+                // requiredType
+                elem.setAttribute(REQUIREDTYPE_ATTRIBUTE, PropertyType.nameFromValue(pd.getRequiredType()));
                 // valueConstraints
                 ValueConstraint[] vca = pd.getValueConstraints();
                 if (vca != null && vca.length != 0) {

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml?view=diff&r1=149272&r2=149273
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.xml Mon Jan 31 09:26:28 2005
@@ -23,8 +23,8 @@
 
 		<!ATTLIST nodeType
 			name CDATA #REQUIRED
-			mixin (true|false) #REQUIRED
- 			orderableChildNodes (true|false) #REQUIRED
+			isMixin (true|false) #REQUIRED
+ 			hasOrderableChildNodes (true|false) #REQUIRED
 			primaryItemName CDATA #REQUIRED
 		>
 		<!ELEMENT supertypes (supertype+)>
@@ -33,7 +33,7 @@
 		<!ELEMENT propertyDef (valueConstraints?|defaultValues?)>
 		<!ATTLIST propertyDef
 			name CDATA #REQUIRED
-			type (String|Date|Path|Name|Reference|Binary|Double|Long|Boolean|undefined) #REQUIRED
+			requiredType (String|Date|Path|Name|Reference|Binary|Double|Long|Boolean|undefined) #REQUIRED
 			autoCreate (true|false) #REQUIRED
 			mandatory (true|false) #REQUIRED
 			onParentVersion (COPY|VERSION|INITIALIZE|COMPUTE|IGNORE|ABORT) #REQUIRED
@@ -65,29 +65,29 @@
     xmlns:jcr="http://www.jcp.org/jcr/1.0">
 
     <!-- primary types -->
-    <nodeType name="nt:base" mixin="false" orderableChildNodes="false" primaryItemName="">
-        <propertyDef name="jcr:primaryType" type="Name" autoCreate="true" mandatory="true" onParentVersion="COMPUTE" protected="true" multiple="false"/>
-        <propertyDef name="jcr:mixinTypes" type="Name" autoCreate="false" mandatory="false" onParentVersion="COMPUTE" protected="true" multiple="true"/>
+    <nodeType name="nt:base" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+        <propertyDef name="jcr:primaryType" requiredType="Name" autoCreate="true" mandatory="true" onParentVersion="COMPUTE" protected="true" multiple="false"/>
+        <propertyDef name="jcr:mixinTypes" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="COMPUTE" protected="true" multiple="true"/>
     </nodeType>
-    <nodeType name="nt:unstructured" mixin="false" orderableChildNodes="true" primaryItemName="">
+    <nodeType name="nt:unstructured" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <childNodeDef name="*" defaultPrimaryType="nt:unstructured" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" sameNameSibs="true">
+        <childNodeDef name="*" defaultPrimaryType="nt:unstructured" autoCreate="false" mandatory="false" onParentVersion="VERSION" protected="false" sameNameSibs="true">
             <requiredPrimaryTypes>
                 <requiredPrimaryType>nt:base</requiredPrimaryType>
             </requiredPrimaryTypes>
         </childNodeDef>
-        <propertyDef name="*" type="undefined" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
-        <propertyDef name="*" type="undefined" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="*" requiredType="undefined" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+        <propertyDef name="*" requiredType="undefined" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
     </nodeType>
-    <nodeType name="nt:hierarchyNode" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:hierarchyNode" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <propertyDef name="jcr:created" type="Date" autoCreate="true" mandatory="true" onParentVersion="COPY" protected="true" multiple="false"/>
+        <propertyDef name="jcr:created" requiredType="Date" autoCreate="true" mandatory="true" onParentVersion="INITIALIZE" protected="true" multiple="false"/>
     </nodeType>
-    <nodeType name="nt:file" mixin="false" orderableChildNodes="false" primaryItemName="jcr:content">
+    <nodeType name="nt:file" isMixin="false" hasOrderableChildNodes="false" primaryItemName="jcr:content">
         <supertypes>
             <supertype>nt:hierarchyNode</supertype>
         </supertypes>
@@ -97,17 +97,13 @@
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="nt:resource" mixin="false" orderableChildNodes="false" primaryItemName="jcr:data">
+    <nodeType name="nt:linkedFile" isMixin="false" hasOrderableChildNodes="false" primaryItemName="jcr:content">
         <supertypes>
-            <supertype>nt:base</supertype>
-            <supertype>mix:referenceable</supertype>
+            <supertype>nt:hierarchyNode</supertype>
         </supertypes>
-        <propertyDef name="jcr:encoding" type="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:mimeType" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:data" type="Binary" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:lastModified" type="Date" autoCreate="true" mandatory="true" onParentVersion="COMPUTE" protected="false" multiple="false"/>
+        <propertyDef name="jcr:content" requiredType="Reference" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
     </nodeType>
-    <nodeType name="nt:folder" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:folder" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:hierarchyNode</supertype>
         </supertypes>
@@ -117,15 +113,25 @@
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="nt:nodeType" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:resource" isMixin="false" hasOrderableChildNodes="false" primaryItemName="jcr:data">
         <supertypes>
             <supertype>nt:base</supertype>
+            <supertype>mix:referenceable</supertype>
         </supertypes>
-        <propertyDef name="jcr:nodeTypeName" type="Name" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:supertypes" type="Name" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="true"/>
-        <propertyDef name="jcr:isMixin" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:orderableChildNodes" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:primaryItemName" type="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:encoding" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:mimeType" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:data" requiredType="Binary" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:lastModified" requiredType="Date" autoCreate="false" mandatory="true" onParentVersion="IGNORE" protected="false" multiple="false"/>
+    </nodeType>
+    <nodeType name="nt:nodeType" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+        <supertypes>
+            <supertype>nt:base</supertype>
+        </supertypes>
+        <propertyDef name="jcr:nodeTypeName" requiredType="Name" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:supertypes" requiredType="Name" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="true"/>
+        <propertyDef name="jcr:isMixin" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:hasOrderableChildNodes" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:primaryItemName" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
         <childNodeDef name="jcr:propertyDef" defaultPrimaryType="nt:propertyDef" autoCreate="false" mandatory="false" onParentVersion="VERSION" protected="false" sameNameSibs="true">
             <requiredPrimaryTypes>
                 <requiredPrimaryType>nt:propertyDef</requiredPrimaryType>
@@ -137,38 +143,38 @@
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="nt:propertyDef" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:propertyDef" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <propertyDef name="jcr:name" type="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:type" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:valueConstraints" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="true"/>
-        <propertyDef name="jcr:defaultValues" type="undefined" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="true"/>
-        <propertyDef name="jcr:autoCreate" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:mandatory" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:onParentVersion" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:protected" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:multiple" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:name" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:autoCreate" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:mandatory" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:onParentVersion" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:protected" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:requiredType" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:valueConstraints" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+        <propertyDef name="jcr:defaultValues" requiredType="undefined" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
+        <propertyDef name="jcr:multiple" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
     </nodeType>
-    <nodeType name="nt:childNodeDef" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:childNodeDef" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <propertyDef name="jcr:name" type="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:requiredPrimaryTypes" type="String" autoCreate="true" mandatory="true" onParentVersion="COPY" protected="false" multiple="true">
+        <propertyDef name="jcr:name" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:autoCreate" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:mandatory" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:onParentVersion" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:protected" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:requiredPrimaryTypes" requiredType="Name" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="true">
             <defaultValues>
-                <defaultValue>nt:base</defaultValue>
+                <defaultValue>{http://www.jcp.org/jcr/nt/1.0}base</defaultValue>
             </defaultValues>
         </propertyDef>
-        <propertyDef name="jcr:defaultPrimaryType" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:autoCreate" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:mandatory" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:onParentVersion" type="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:protected" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:sameNameSibs" type="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:defaultPrimaryType" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:sameNameSibs" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
     </nodeType>
-    <nodeType name="nt:versionHistory" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:versionHistory" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
             <supertype>mix:referenceable</supertype>
@@ -178,112 +184,120 @@
                 <requiredPrimaryType>nt:version</requiredPrimaryType>
             </requiredPrimaryTypes>
         </childNodeDef>
+        <childNodeDef name="jcr:versionLabels" defaultPrimaryType="nt:versionLabels" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" sameNameSibs="false">
+            <requiredPrimaryTypes>
+                <requiredPrimaryType>nt:versionLabels</requiredPrimaryType>
+            </requiredPrimaryTypes>
+        </childNodeDef>
         <childNodeDef name="*" defaultPrimaryType="nt:version" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" sameNameSibs="false">
             <requiredPrimaryTypes>
                 <requiredPrimaryType>nt:version</requiredPrimaryType>
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="nt:frozenVersionableChild" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:versionLabels" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <propertyDef name="jcr:versionHistory" type="Reference" autoCreate="false" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false">
-            <valueConstraints>
-                <valueConstraint>nt:versionHistory</valueConstraint>
-            </valueConstraints>
-        </propertyDef>
-        <propertyDef name="jcr:baseVersion" type="Reference" autoCreate="false" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false">
+        <propertyDef name="*" requiredType="Reference" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="false">
             <valueConstraints>
                 <valueConstraint>nt:version</valueConstraint>
             </valueConstraints>
         </propertyDef>
     </nodeType>
-    <nodeType name="nt:versionedChild" mixin="false" orderableChildNodes="false" primaryItemName="">
-        <supertypes>
-            <supertype>nt:base</supertype>
-        </supertypes>
-        <propertyDef name="jcr:child" type="Reference" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false">
-            <valueConstraints>
-                <valueConstraint>nt:versionHistory</valueConstraint>
-            </valueConstraints>
-        </propertyDef>
-    </nodeType>
-    <nodeType name="nt:version" mixin="false" orderableChildNodes="false" primaryItemName="jcr:frozen">
+    <nodeType name="nt:version" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
             <supertype>mix:referenceable</supertype>
         </supertypes>
-        <propertyDef name="jcr:versionLabels" type="String" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true"/>
-        <propertyDef name="jcr:created" type="Date" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false"/>
-        <propertyDef name="jcr:frozenPrimaryType" type="Name" autoCreate="false" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false"/>
-        <propertyDef name="jcr:frozenMixinTypes" type="Name" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true"/>
-        <propertyDef name="jcr:frozenUUID" type="String" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="false"/>
-        <propertyDef name="jcr:predecessors" type="Reference" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="true">
+        <propertyDef name="jcr:created" requiredType="Date" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false"/>
+        <propertyDef name="jcr:predecessors" requiredType="Reference" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true">
             <valueConstraints>
                 <valueConstraint>nt:version</valueConstraint>
             </valueConstraints>
         </propertyDef>
-        <propertyDef name="jcr:successors" type="Reference" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="true">
+        <propertyDef name="jcr:successors" requiredType="Reference" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true">
             <valueConstraints>
                 <valueConstraint>nt:version</valueConstraint>
             </valueConstraints>
         </propertyDef>
-        <childNodeDef name="jcr:frozen" defaultPrimaryType="nt:base" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" sameNameSibs="false">
+        <childNodeDef name="jcr:frozenNode" defaultPrimaryType="" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" sameNameSibs="true">
+            <requiredPrimaryTypes>
+                <requiredPrimaryType>nt:frozenNode</requiredPrimaryType>
+            </requiredPrimaryTypes>
+        </childNodeDef>
+    </nodeType>
+    <nodeType name="nt:frozenNode" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
+        <supertypes>
+            <supertype>nt:base</supertype>
+            <supertype>mix:referenceable</supertype>
+        </supertypes>
+        <propertyDef name="jcr:frozenPrimaryType" requiredType="Name" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false"/>
+        <propertyDef name="jcr:frozenMixinTypes" requiredType="Name" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true"/>
+        <propertyDef name="jcr:frozenUuid" requiredType="String" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false"/>
+        <propertyDef name="*" requiredType="undefined" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="false"/>
+        <propertyDef name="*" requiredType="undefined" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" multiple="true"/>
+        <childNodeDef name="*" defaultPrimaryType="" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="true" sameNameSibs="true">
             <requiredPrimaryTypes>
                 <requiredPrimaryType>nt:base</requiredPrimaryType>
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="nt:query" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="nt:versionedChild" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
-        <propertyDef name="jcr:statement" type="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
-        <propertyDef name="jcr:language" type="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:child" requiredType="Reference" autoCreate="true" mandatory="true" onParentVersion="ABORT" protected="true" multiple="false">
+            <valueConstraints>
+                <valueConstraint>nt:versionHistory</valueConstraint>
+            </valueConstraints>
+        </propertyDef>
+    </nodeType>
+    <nodeType name="nt:query" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
+        <supertypes>
+            <supertype>nt:base</supertype>
+        </supertypes>
+        <propertyDef name="jcr:statement" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
+        <propertyDef name="jcr:language" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
     </nodeType>
 
     <!-- mixin types -->
-    <nodeType name="mix:lockable" mixin="true" orderableChildNodes="false" primaryItemName="">
-        <propertyDef name="jcr:lockOwner" type="String" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false"/>
-        <propertyDef name="jcr:lockIsDeep" type="Boolean" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false"/>
+    <nodeType name="mix:lockable" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
+        <propertyDef name="jcr:lockOwner" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false"/>
+        <propertyDef name="jcr:lockIsDeep" requiredType="Boolean" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false"/>
     </nodeType>
-    <nodeType name="mix:referenceable" mixin="true" orderableChildNodes="false" primaryItemName="">
-        <propertyDef name="jcr:uuid" type="String" autoCreate="true" mandatory="true" onParentVersion="INITIALIZE" protected="true" multiple="false"/>
+    <nodeType name="mix:referenceable" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
+        <propertyDef name="jcr:uuid" requiredType="String" autoCreate="true" mandatory="true" onParentVersion="INITIALIZE" protected="true" multiple="false"/>
     </nodeType>
-    <nodeType name="mix:versionable" mixin="true" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="mix:versionable" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>mix:referenceable</supertype>
         </supertypes>
-        <propertyDef name="jcr:versionHistory" type="Reference" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="true" multiple="false">
+        <propertyDef name="jcr:versionHistory" requiredType="Reference" autoCreate="true" mandatory="true" onParentVersion="COPY" protected="true" multiple="false">
             <valueConstraints>
                 <valueConstraint>nt:versionHistory</valueConstraint>
             </valueConstraints>
         </propertyDef>
-        <propertyDef name="jcr:baseVersion" type="Reference" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false">
+        <propertyDef name="jcr:baseVersion" requiredType="Reference" autoCreate="true" mandatory="true" onParentVersion="IGNORE" protected="true" multiple="false">
             <valueConstraints>
                 <valueConstraint>nt:version</valueConstraint>
             </valueConstraints>
         </propertyDef>
-        <propertyDef name="jcr:isCheckedOut" type="Boolean" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="false">
+        <propertyDef name="jcr:isCheckedOut" requiredType="Boolean" autoCreate="true" mandatory="true" onParentVersion="IGNORE" protected="true" multiple="false">
             <defaultValues>
                 <defaultValue>true</defaultValue>
             </defaultValues>
         </propertyDef>
-        <propertyDef name="jcr:predecessors" type="Reference" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="true" multiple="true">
-            <valueConstraints>
-                <valueConstraint>nt:version</valueConstraint>
-            </valueConstraints>
-        </propertyDef>
-        <propertyDef name="jcr:mergeFailed" type="Reference" autoCreate="false" mandatory="false" onParentVersion="IGNORE" protected="true" multiple="true">
+        <propertyDef name="jcr:predecessors" requiredType="Reference" autoCreate="true" mandatory="true" onParentVersion="COPY" protected="true" multiple="true">
             <valueConstraints>
                 <valueConstraint>nt:version</valueConstraint>
             </valueConstraints>
         </propertyDef>
+        <propertyDef name="jcr:mergeFailed" requiredType="Reference" autoCreate="true" mandatory="false" onParentVersion="COPY" protected="true" multiple="true" />
     </nodeType>
 
     <!-- internal node types -->
-    <nodeType name="rep:root" mixin="false" orderableChildNodes="true" primaryItemName="">
+    <nodeType name="rep:root" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
         <supertypes>
             <supertype>nt:unstructured</supertype>
         </supertypes>
@@ -293,7 +307,7 @@
             </requiredPrimaryTypes>
         </childNodeDef>
     </nodeType>
-    <nodeType name="rep:system" mixin="false" orderableChildNodes="true" primaryItemName="">
+    <nodeType name="rep:system" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
         <supertypes>
             <supertype>nt:base</supertype>
         </supertypes>
@@ -309,22 +323,22 @@
         </childNodeDef>
     </nodeType>
     <!-- internal nodetypes for persistent version manager -->
-    <nodeType name="rep:versionHistory" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="rep:versionHistory" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:unstructured</supertype>
         </supertypes>
     </nodeType>
-    <nodeType name="rep:version" mixin="false" orderableChildNodes="false" primaryItemName="">
+    <nodeType name="rep:version" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
         <supertypes>
             <supertype>nt:unstructured</supertype>
         </supertypes>
     </nodeType>
-    <nodeType name="rep:frozen" mixin="false" orderableChildNodes="true" primaryItemName="">
+    <nodeType name="rep:frozen" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
         <supertypes>
             <supertype>nt:unstructured</supertype>
         </supertypes>
     </nodeType>
-    <nodeType name="rep:frozenVersionHistory" mixin="false" orderableChildNodes="true" primaryItemName="">
+    <nodeType name="rep:frozenVersionHistory" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
         <supertypes>
             <supertype>nt:unstructured</supertype>
         </supertypes>