JBoss.orgCommunity Documentation
This sequencer processes JCR Compact Node Definition (CND) files
to extract the node definitions with their property definitions, and inserts these into the repository using JCR built-in types.
The node structure generated by this sequencer is equivalent to the node structure used in /jcr:system/jcr:nodeTypes
.
This sequencer generates a graph structure that corresponds to what can be found in the /jcr:system/jcr:nodeTypes subtree. As an example, the CND file below:
<mode = "http://www.modeshape.org/1.0"> // My CND type [mode:example] mixin - mode:name (string) multiple copy + mode:child (mode:example) = mode:example version
The resulting graph structure (listed in the JCR document view) contains the node type information from the CND file above. Note that comments are not sequenced.
<mode:example jcr:primaryType="nt:nodeType"
jcr:mixinTypes="mode:derived"
mode:derivedAt="2011-05-13T13:12:03.925Z"
mode:derivedFrom="/files/docForReferenceGuide.xml"
jcr:nodeTypeName="mode:example"
jcr:supertypes="nt:base"
jcr:isAbstract="false"
jcr:isMixin="true"
jcr:isQueryable="true"
jcr:hasOrderableChildNodes="false">
<nt:propertyDefinition jcr:name="mode:name"
jcr:autoCreated="false"
jcr:mandatory="false"
jcr:isFullTextSearchable="true"
jcr:isQueryOrderable="true"
jcr:onParentVersion="copy"
jcr:protected="false"
jcr:requiredType="STRING"
jcr:availableQueryOperators="= > >= < <= <> LIKE"
jcr:multiple="true" />
<nt:childNodeDefinition jcr:name="mode:child"
jcr:autoCreated="false"
jcr:mandatory="false"
jcr:onParentVersion="VERSION"
jcr:protected="false"
jcr:requiredPrimaryTypes="mode:example"
jcr:defaultPrimaryType="mode:example"
jcr:sameNameSiblings="false" />
</mode:example>
This sequencer can be added to the repository configuration like so:
JcrConfiguration config = ...
config.sequencer("CND Sequencer")
.usingClass("org.modeshape.sequencer.cnd.CndSequencer")
.loadedFromClasspath()
.setDescription("Sequences CND files to extract the node type definitions")
.sequencingFrom("//(*.cnd[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/nodeTypes/$1");