You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2015/04/08 22:34:17 UTC

svn commit: r1672168 [18/33] - in /jackrabbit/site/live/jcr: ./ components/ css/ images/ images/logos/ images/profiles/ img/ js/ ocm/ status/

Added: jackrabbit/site/live/jcr/node-type-notation.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/node-type-notation.html?rev=1672168&view=auto
==============================================================================
--- jackrabbit/site/live/jcr/node-type-notation.html (added)
+++ jackrabbit/site/live/jcr/node-type-notation.html Wed Apr  8 20:34:14 2015
@@ -0,0 +1,947 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2015-04-08 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20150408" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Apache Jackrabbit - Node Type Notation</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+                  </head>
+        <body class="topBarEnabled">
+          
+    
+    
+            
+    
+    
+    <a href="http://github.com/apache/jackrabbit">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
+        alt="Fork me on GitHub">
+    </a>
+  
+                
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                <div class="container-fluid">
+        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </a>
+                
+                                                                                <a class="brand" href="index.html"  title="Apache Jackrabbit">
+
+                                
+                                                                                                                    <img src="images/logos/jlogo.gif" alt="Apache Jackrabbit" />
+                
+                </a>
+                    
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Welcome">Welcome</a>
+</li>
+                  
+                      <li>      <a href="downloads.html"  title="Downloads">Downloads</a>
+</li>
+                  
+                      <li>      <a href="articles.html"  title="Articles">Articles</a>
+</li>
+                  
+                      <li>      <a href="frequently-asked-questions.html"  title="FAQ">FAQ</a>
+</li>
+                  
+                      <li>      <a href="http://wiki.apache.org/jackrabbit/FrontPage"  title="Jackrabbit Wiki">Jackrabbit Wiki</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-history.html"  title="Jackrabbit History">Jackrabbit History</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="getting-started-with-apache-jackrabbit.html"  title="Getting Started">Getting Started</a>
+</li>
+                  
+                      <li>      <a href="standalone-server.html"  title="Standalone Server">Standalone Server</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-components.html"  title="Jackrabbit Components">Jackrabbit Components</a>
+</li>
+                  
+                      <li>      <a href="first-hops.html"  title="First Hops">First Hops</a>
+</li>
+                  
+                      <li>      <a href="jcr-api.html"  title="JCR & API">JCR & API</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-architecture.html"  title="Jackrabbit Architecture">Jackrabbit Architecture</a>
+</li>
+                  
+                      <li>      <a href="deployment-models.html"  title="Deployment Models">Deployment Models</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-configuration.html"  title="Jackrabbit Configuration">Jackrabbit Configuration</a>
+</li>
+                  
+                      <li>      <a href="node-types.html"  title="Node Types">Node Types</a>
+</li>
+                  
+                      <li>      <a href="object-content-mapping.html"  title="Object Content Mapping">Object Content Mapping</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="jackrabbit-team.html"  title="Jackrabbit Team">Jackrabbit Team</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-roadmap.html"  title="Jackrabbit Roadmap">Jackrabbit Roadmap</a>
+</li>
+                  
+                      <li>      <a href="building-jackrabbit.html"  title="Building Jackrabbit">Building Jackrabbit</a>
+</li>
+                  
+                      <li>      <a href="mailing-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                  
+                      <li>      <a href="issue-tracker.html"  title="Issue Tracker">Issue Tracker</a>
+</li>
+                  
+                      <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
+</li>
+                  
+                      <li>      <a href="continuous-integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                  
+                      <li>      <a href="website.html"  title="Website">Website</a>
+</li>
+                  
+                      <li>      <a href="creating-releases.html"  title="Creating Releases">Creating Releases</a>
+</li>
+                  
+                      <li>      <a href="supporting-software-attribution.html"  title="Attribution">Attribution</a>
+</li>
+                  
+                      <li>      <a href="privacy-policy.html"  title="Privacy">Privacy</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="http://www.apache.org/foundation/how-it-works.html"  title="Introduction">Introduction</a>
+</li>
+                  
+                      <li>      <a href="http://www.apache.org/foundation/sponsorship.html"  title="Sponsorship">Sponsorship</a>
+</li>
+                  
+                      <li>      <a href="http://www.apache.org/foundation/thanks.html"  title="Current Sponsors">Current Sponsors</a>
+</li>
+                          </ul>
+      </li>
+                  </ul>
+          
+          
+          
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                <div id="bannerLeft">
+                <h2>Apache Jackrabbit Site</h2>
+                </div>
+                      </div>
+        <div class="pull-right">  </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                  <li id="publishDate">Last Published: 2015-04-08
+                   </li>
+                      
+                
+                    
+      
+                            </ul>
+      </div>
+
+            
+      <div class="row-fluid">
+        <div id="leftColumn" class="span3">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Apache Jackrabbit</li>
+                              
+      <li>
+  
+                          <a href="index.html" title="Welcome">
+          <i class="none"></i>
+        Welcome</a>
+            </li>
+                
+      <li>
+  
+                          <a href="downloads.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                
+      <li>
+  
+                          <a href="articles.html" title="Articles">
+          <i class="none"></i>
+        Articles</a>
+            </li>
+                
+      <li>
+  
+                          <a href="frequently-asked-questions.html" title="FAQ">
+          <i class="none"></i>
+        FAQ</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://wiki.apache.org/jackrabbit/FrontPage" class="externalLink" title="Jackrabbit Wiki">
+          <i class="none"></i>
+        Jackrabbit Wiki</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-history.html" title="Jackrabbit History">
+          <i class="none"></i>
+        Jackrabbit History</a>
+            </li>
+                              <li class="nav-header">Documentation</li>
+                              
+      <li>
+  
+                          <a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">
+          <i class="none"></i>
+        Getting Started</a>
+            </li>
+                
+      <li>
+  
+                          <a href="standalone-server.html" title="Standalone Server">
+          <i class="none"></i>
+        Standalone Server</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-components.html" title="Jackrabbit Components">
+          <i class="none"></i>
+        Jackrabbit Components</a>
+            </li>
+                
+      <li>
+  
+                          <a href="first-hops.html" title="First Hops">
+          <i class="none"></i>
+        First Hops</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jcr-api.html" title="JCR & API">
+          <i class="none"></i>
+        JCR & API</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-architecture.html" title="Jackrabbit Architecture">
+          <i class="none"></i>
+        Jackrabbit Architecture</a>
+            </li>
+                
+      <li>
+  
+                          <a href="deployment-models.html" title="Deployment Models">
+          <i class="none"></i>
+        Deployment Models</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-configuration.html" title="Jackrabbit Configuration">
+          <i class="none"></i>
+        Jackrabbit Configuration</a>
+            </li>
+                
+      <li>
+  
+                          <a href="node-types.html" title="Node Types">
+          <i class="none"></i>
+        Node Types</a>
+            </li>
+                
+      <li>
+  
+                          <a href="object-content-mapping.html" title="Object Content Mapping">
+          <i class="none"></i>
+        Object Content Mapping</a>
+            </li>
+                              <li class="nav-header">Development</li>
+                              
+      <li>
+  
+                          <a href="jackrabbit-team.html" title="Jackrabbit Team">
+          <i class="none"></i>
+        Jackrabbit Team</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">
+          <i class="none"></i>
+        Jackrabbit Roadmap</a>
+            </li>
+                
+      <li>
+  
+                          <a href="building-jackrabbit.html" title="Building Jackrabbit">
+          <i class="none"></i>
+        Building Jackrabbit</a>
+            </li>
+                
+      <li>
+  
+                          <a href="mailing-lists.html" title="Mailing Lists">
+          <i class="none"></i>
+        Mailing Lists</a>
+            </li>
+                
+      <li>
+  
+                          <a href="issue-tracker.html" title="Issue Tracker">
+          <i class="none"></i>
+        Issue Tracker</a>
+            </li>
+                
+      <li>
+  
+                          <a href="source-repository.html" title="Source Repository">
+          <i class="none"></i>
+        Source Repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="continuous-integration.html" title="Continuous Integration">
+          <i class="none"></i>
+        Continuous Integration</a>
+            </li>
+                
+      <li>
+  
+                          <a href="website.html" title="Website">
+          <i class="none"></i>
+        Website</a>
+            </li>
+                
+      <li>
+  
+                          <a href="creating-releases.html" title="Creating Releases">
+          <i class="none"></i>
+        Creating Releases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="supporting-software-attribution.html" title="Attribution">
+          <i class="none"></i>
+        Attribution</a>
+            </li>
+                
+      <li>
+  
+                          <a href="privacy-policy.html" title="Privacy">
+          <i class="none"></i>
+        Privacy</a>
+            </li>
+                              <li class="nav-header">Apache Software Foundation</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="Introduction">
+          <i class="none"></i>
+        Introduction</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
+          <i class="none"></i>
+        Sponsorship</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Current Sponsors">
+          <i class="none"></i>
+        Current Sponsors</a>
+            </li>
+            </ul>
+                
+                    
+                
+          <hr />
+
+           <div id="poweredBy">
+                   
+    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+
+    
+    <div class="g-plusone" data-href="http://www.apache.org/jackrabbit-site/" data-size="tall" ></div>
+
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                
+        <div id="bodyColumn"  class="span9" >
+                                  
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License. --><h1>Node Type Notation</h1>
+<p>The Compact Namespace and Node Type Definition (CND) notation provides a compact standardized syntax for defining node types and making namespace declarations. The notation is intended both for documentation and for programmatically registering node types (if you are unfamiliar with JCR node types, you may want to read the general Node Types section first).</p>
+<p>Here is a &#x201c;worst-case scenario&#x201d; example that demonstrates all the features of the notation:</p>
+
+<div class="source">
+<pre>/*  An example node type definition */
+
+// The namespace declaration
+&lt;ns = 'http://namespace.com/ns'&gt;
+
+// Node type name
+[ns:NodeType]
+
+// Supertypes
+&gt; ns:ParentType1, ns:ParentType2
+
+// This node type supports orderable child nodes
+orderable
+
+// This is a mixin node type
+mixin
+
+// Nodes of this node type have a property called 'ex:property' of type STRING
+- ex:property (string)
+
+// The default values for this
+// (multi-value) property are...
+= 'default1', 'default2'
+
+// This property is the primary item
+primary
+
+// and it is...
+mandatory autocreated protected
+
+// and multi-valued
+multiple
+
+// It has an on-parent-version setting of ...
+version
+
+// The constraint settings are...
+&lt; 'constraint1', 'constraint2'
+
+// Nodes of this node type have a child node called ns:node which must be of
+// at least the node types ns:reqType1 and ns:reqType2
++ ns:node (ns:reqType1, ns:reqType2)
+
+// and the default primary node type of the child node is...
+= ns:defaultType
+
+// This child node is...
+mandatory autocreated protected
+
+// and supports same name siblings
+multiple
+
+// and has an on-parent-version setting of ...
+version
+</pre></div>
+<p>This definition can be written more compactly and with indentation:</p>
+
+<div class="source">
+<pre>/*  An example node type definition */
+&lt;ns = 'http://namespace.com/ns'&gt;
+[ns:NodeType] &gt; ns:ParentType1, ns:ParentType2
+  orderable mixin
+  - ex:property (string)
+  = 'default1', 'default2'
+    primary mandatory autocreated protected multiple
+    version
+    &lt; 'constraint1', 'constraint2'
+  + ns:node (ns:reqType1, ns:reqType2)
+    = ns:defaultType
+    mandatory autocreated protected multiple version
+</pre></div>
+<p>or, using short forms for the attributes, even like this:</p>
+
+<div class="source">
+<pre>&lt;ns='http://namespace.com/ns'&gt;
+[ns:NodeType] &gt;ns:ParentType1, ns:ParentType2 o m
+  - ex:property='default1','default2' ! m a p * version &lt;'constraint1', 'constraint2'
+  + ns:node(ns:reqType1,ns:reqType2)=ns:defaultType m a p *  version
+</pre></div>
+<div class="section">
+<h2>Grammar<a name="Grammar"></a></h2>
+<p>The following grammar defines the CND notation. Terminal symbols are in double quotes.</p>
+
+<div class="source">
+<pre>cnd ::= {ns_mapping | node_type_def}
+ns_mapping ::= &quot;&lt;&quot; prefix &quot;=&quot; uri &quot;&gt;&quot;
+prefix ::= string
+uri ::= string
+node_type_def ::= node_type_name [supertypes] [options] {property_def | child_node_def}
+node_type_name ::= &quot;[&quot; string &quot;]&quot;
+supertypes ::= &quot;&gt;&quot; string_list
+options ::= orderable_opt | mixin_opt | orderable_opt
+        mixin_opt | mixin_opt orderable_opt
+orderable_opt ::= &quot;orderable&quot; | &quot;ord&quot; | &quot;o&quot;
+mixin_opt ::= &quot;mixin&quot; | &quot;mix&quot; | &quot;m&quot;
+property_def ::= &quot;-&quot; property_name [property_type_decl] [default_values] [attributes] [value_constraints]
+property_name ::= string
+property_type_decl ::= &quot;(&quot; property_type &quot;)&quot;
+property_type ::= &quot;STRING&quot; | &quot;String&quot; |&quot;string&quot; |
+         &quot;BINARY&quot; | &quot;Binary&quot; | &quot;binary&quot; |
+         &quot;LONG&quot; | &quot;Long&quot; | &quot;long&quot; |
+         &quot;DOUBLE&quot; | &quot;Double&quot; | &quot;double&quot; |
+         &quot;BOOLEAN&quot; | &quot;Boolean&quot; | &quot;boolean&quot; |
+         &quot;DATE&quot; | &quot;Date&quot; | &quot;date&quot; |
+         &quot;NAME | &quot;Name | &quot;name&quot; |
+         &quot;PATH&quot; | &quot;Path&quot; | &quot;path&quot; |
+         &quot;REFERENCE&quot; | &quot;Reference&quot; | &quot;reference&quot; |
+         &quot;UNDEFINED&quot; | &quot;Undefined&quot; | &quot;undefined&quot; | &quot;*&quot;
+
+default_values ::= &quot;=&quot; string_list
+value_constraints ::= &quot;&lt;&quot; string_list
+node_def ::= &quot;+&quot; node_name [required_types] [default_type] [attributes]
+node_name ::= string
+required_types ::= &quot;(&quot; string_list &quot;)&quot;
+default_type ::= &quot;=&quot; string
+attributes ::= &quot;primary&quot; | &quot;pri&quot; | &quot;!&quot; |
+           &quot;autocreated&quot; | &quot;aut&quot; | &quot;a&quot; |
+           &quot;mandatory&quot; | &quot;man&quot; | &quot;m&quot; |
+           &quot;protected&quot; | &quot;pro&quot; | &quot;p&quot; |
+           &quot;multiple&quot; | &quot;mul&quot; | &quot;*&quot; |
+           &quot;COPY&quot; | &quot;Copy&quot; | &quot;copy&quot; |
+           &quot;VERSION&quot; | &quot;Version&quot; | &quot;version&quot; |
+           &quot;INITIALIZE&quot; | &quot;Initialize&quot; | &quot;initialize&quot; |
+           &quot;COMPUTE&quot; | &quot;Compute&quot; | &quot;compute&quot; |
+           &quot;IGNORE&quot; | &quot;Ignore&quot; | &quot;ignore&quot; |
+           &quot;ABORT&quot; | &quot;Abort&quot; | &quot;abort&quot;
+string_list ::= string {&quot;,&quot; string}
+string ::= quoted_string | unquoted_string
+quoted_string :: = &quot;'&quot; unquoted_string &quot;'&quot;
+unquoted_string ::= [A-Za-z0-9:_]+
+</pre></div></div>
+<div class="section">
+<h2>CND Notation in Detail<a name="CND_Notation_in_Detail"></a></h2>
+
+<div class="source">
+<pre>cnd ::= {ns_mapping | node_type_def}
+</pre></div>
+<p>A CND consists of zero or more blocks, each of which is either namespace declaration or a node type definition. Namespace prefixes referenced in a node type definition block must be declared in a preceding namespace declaration block.</p>
+<div class="section">
+<h3>Namespace Declaration<a name="Namespace_Declaration"></a></h3>
+
+<div class="source">
+<pre>ns_mapping ::= &quot;&lt;&quot; prefix &quot;=&quot; uri &quot;&gt;&quot;
+prefix ::= string
+uri ::= string
+</pre></div>
+<p>A namespace declaration consists of prefix/URI pair. The prefix must be a valid JCR namespace prefix, which is the same as a valid XML namespace prefix. The URI can in fact be any string. Just as in XML, it need not actually be a URI, though adhering to that convention is recommended.</p></div>
+<div class="section">
+<h3>Node Type Definition<a name="Node_Type_Definition"></a></h3>
+
+<div class="source">
+<pre>node_type_def ::= node_type_name [super_types] [options] {property_def | child_node_def}
+</pre></div>
+<p>A node type definition consists of a node type name followed by an optional supertypes block, an optional options block and zero or more blocks, each either a property or node definition.</p></div>
+<div class="section">
+<h3>Node Type Name<a name="Node_Type_Name"></a></h3>
+
+<div class="source">
+<pre>node_type_name ::= &quot;[&quot; string &quot;]&quot; 
+</pre></div>
+<p>The node type name is delimited by square brackets and must be a valid JCR name. It may be single-quoted (see Quoting, below). This element is the only strictly required element within a node type definition, though a definition consisting only of a node type name would simply define a new node type identical to nt:base.</p></div>
+<div class="section">
+<h3>Supertypes<a name="Supertypes"></a></h3>
+
+<div class="source">
+<pre>supertypes ::= &quot;&gt;&quot; string_list
+</pre></div>
+<p>After the node type name comes the optional list of supertypes. If this element is not present and the node type is not a mixin (see ?1.3.5 Options), then a supertype of nt:base is assumed. If present, the element consists of a greater-than sign followed by a comma delimited list of node type names, each of which may optionally be single-quoted (see Quoting below). In Jackrabbit, multiple inheritance of node types is supported, so this list can be greater than one item in length.</p></div>
+<div class="section">
+<h3>Options<a name="Options"></a></h3>
+
+<div class="source">
+<pre>options ::= orderable_opt | mixin_opt | orderable_opt mixin_opt | mixin_opt orderable_opt
+orderable_opt ::= &quot;orderable&quot; | &quot;ord&quot; | &quot;o&quot;
+mixin_opt ::= &quot;mixin&quot; | &quot;mix&quot; | &quot;m&quot;
+</pre></div>
+<p>The option indicators follow the node type name and optional supertype list.</p>
+<p>If the keyword orderable (or a short form) is present, then the orderable child node setting of the node type is true. If the keyword is missing, then the setting is false.</p>
+<p>If the keyword mixin (or a short form) is present, then this is a mixin node type. If the keyword is missing, then this is a primary node type.</p></div>
+<div class="section">
+<h3>Property Definition<a name="Property_Definition"></a></h3>
+
+<div class="source">
+<pre>property_def ::= &quot;-&quot; property_name [property_type_decl] [default_values] [attributes] [value_constraints]
+</pre></div>
+<p>A property definition consists of a minus sign followed by a property name, followed in turn by optional elements defining the property type, the default values, the property attributes and the value constraints.</p></div>
+<div class="section">
+<h3>Property Name<a name="Property_Name"></a></h3>
+
+<div class="source">
+<pre>property_name ::= string
+</pre></div>
+<p>The property name must be a valid JCR name or *, to indicate a residual property definition. It may be single-quoted.</p></div>
+<div class="section">
+<h3>Property Type<a name="Property_Type"></a></h3>
+
+<div class="source">
+<pre>property_type_decl ::= &quot;(&quot; property_type &quot;)&quot;
+property_type ::= &quot;STRING&quot; | &quot;String |&quot;string&quot; |
+         &quot;BINARY&quot; | &quot;Binary&quot; | &quot;binary&quot; |
+         &quot;LONG&quot; | &quot;Long&quot; | &quot;long&quot; |
+         &quot;DOUBLE&quot; | &quot;Double&quot; | &quot;double&quot; |
+         &quot;BOOLEAN&quot; | &quot;Boolean&quot; | &quot;boolean&quot; |
+         &quot;DATE&quot; | &quot;Date&quot; | &quot;date&quot; |
+         &quot;NAME | &quot;Name | &quot;name&quot; |
+         &quot;PATH&quot; | &quot;Path&quot; | &quot;path&quot; |
+         &quot;REFERENCE&quot; | &quot;Reference&quot; | &quot;reference&quot; |
+         &quot;UNDEFINED&quot; | &quot;Undefined&quot; | &quot;undefined&quot; | &quot;*&quot;
+</pre></div>
+<p>The property type is indicated by a keyword delimited by parentheses. If the property type declaration is missing a type of STRING is assumed.</p></div>
+<div class="section">
+<h3>Default Values<a name="Default_Values"></a></h3>
+
+<div class="source">
+<pre>default_values ::= &quot;=&quot; string_list
+</pre></div>
+<p>The default value or values, in the case of a multi-value property, are indicated by an equal sign followed by either a single value in string form or a comma-delimited list of values. The values may be single-quoted. If the default value definition is missing then no default value is set.</p></div>
+<div class="section">
+<h3>Attributes<a name="Attributes"></a></h3>
+
+<div class="source">
+<pre>attributes ::= &quot;primary&quot; | &quot;pri&quot; | &quot;!&quot; |
+           &quot;autocreated&quot; | &quot;aut&quot; | &quot;a&quot; |
+           &quot;mandatory&quot; | &quot;man&quot; | &quot;m&quot; |
+           &quot;protected&quot; | &quot;pro&quot; | &quot;p&quot; |
+           &quot;multiple&quot; | &quot;mul&quot; | &quot;*&quot; |
+           &quot;COPY&quot; | &quot;Copy&quot; | &quot;copy&quot; |
+           &quot;VERSION&quot; | &quot;Version&quot; | &quot;version&quot; |
+           &quot;INITIALIZE&quot; | &quot;Initialize&quot; | &quot;initialize&quot; |
+           &quot;COMPUTE&quot; | &quot;Compute&quot; | &quot;compute&quot; |
+           &quot;IGNORE&quot; | &quot;Ignore&quot; | &quot;ignore&quot; |
+           &quot;ABORT&quot; | &quot;Abort&quot; | &quot;abort&quot;
+</pre></div>
+<p>The attribute indicators describe the characteristics of the property. The presence of an attribute keyword indicates that the corresponding characteristic applies to this property. It&#x2019;s absence indicates that the corresponding characteristic does not apply.</p>
+<p>The primary keyword indicates that this property is the primary item. It may appear on a maximum of one property or child node definition within a node type definition.</p>
+<p>The multiple keyword indicates that this property is multi-valued.</p>
+<p>A maximum of one on-version indicator may be present. If none is present then an on-version setting of COPY is assumed.</p></div>
+<div class="section">
+<h3>Value Constraints<a name="Value_Constraints"></a></h3>
+
+<div class="source">
+<pre>value_constraints ::= &quot;&lt;&quot; string_list
+</pre></div>
+<p>Value constraint are specified by a less-than sign followed by a comma-delimited list of constraint strings, each optionally single-quoted.</p></div>
+<div class="section">
+<h3>Child Node Definition<a name="Child_Node_Definition"></a></h3>
+
+<div class="source">
+<pre>child_node_def ::= &quot;+&quot; node_name [required_types] [default_type] [attributes] 
+</pre></div>
+<p>A child node definition consists of a plus sign followed by a property name, followed in turn by optional elements defining the required primary node types, the default node type, and the node attributes.</p></div>
+<div class="section">
+<h3>Node Name<a name="Node_Name"></a></h3>
+
+<div class="source">
+<pre>node_name ::= string
+</pre></div>
+<p>The node name must be a valid JCR name or <tt>*</tt>, to indicate a residual child node definition. It may be single-quoted.</p></div>
+<div class="section">
+<h3>Required Primary Node Types<a name="Required_Primary_Node_Types"></a></h3>
+
+<div class="source">
+<pre>required_types ::= &quot;(&quot; string_list &quot;)&quot;
+</pre></div>
+<p>The required node types of the child node are indicated by a comma-delimited list of node types, within parentheses. If this element is missing then a required primary node type of nt:base is assumed. This is the least restrictive setting possible.</p></div>
+<div class="section">
+<h3>Default Primary Node Type<a name="Default_Primary_Node_Type"></a></h3>
+
+<div class="source">
+<pre>default_type ::= &quot;=&quot; string
+</pre></div>
+<p>The default primary node type is indicated by an equals-sign followed by a node type name, which may be single-quoted. If this element is missing then no default primary node type is set.</p></div>
+<div class="section">
+<h3>Attributes<a name="Attributes"></a></h3>
+
+<div class="source">
+<pre>attributes ::= &quot;primary&quot; | &quot;pri&quot; | &quot;!&quot; |
+           &quot;autocreated&quot; | &quot;aut&quot; | &quot;a&quot; |
+           &quot;mandatory&quot; | &quot;man&quot; | &quot;m&quot; |
+           &quot;protected&quot; | &quot;pro&quot; | &quot;p&quot; |
+           &quot;multiple&quot; | &quot;mul&quot; | &quot;*&quot; |
+           &quot;COPY&quot; | &quot;Copy&quot; | &quot;copy&quot; |
+           &quot;VERSION&quot; | &quot;Version&quot; | &quot;version&quot; |
+           &quot;INITIALIZE&quot; | &quot;Initialize&quot; | &quot;initialize&quot; |
+           &quot;COMPUTE&quot; | &quot;Compute&quot; | &quot;compute&quot; |
+           &quot;IGNORE&quot; | &quot;Ignore&quot; | &quot;ignore&quot; |
+           &quot;ABORT&quot; | &quot;Abort&quot; | &quot;abort&quot;
+</pre></div>
+<p>The attribute indicators describe the characteristics of the child node. The presence of an attribute keyword indicates that the corresponding characteristic applies to this child node. It&#x2019;s absence indicates that the corresponding characteristic does not apply.</p>
+<p>The primary keyword indicates that this child node is the primary item. It may appear on a maximum of one property or child node definition within a node type definition.</p>
+<p>The multiple keyword indicates that this child node may have same-name siblings.</p>
+<p>A maximum of one on-version indicator may be present. If none is present then an on-version setting of COPY is assumed.</p></div>
+<div class="section">
+<h3>Quoting<a name="Quoting"></a></h3>
+
+<div class="source">
+<pre>string_list ::= string {&quot;,&quot; string}
+string ::= quoted_string | unquoted_string
+quoted_string :: = &quot;'&quot; unquoted_string &quot;'&quot;
+unquoted_string ::= /* a string */
+</pre></div>
+<p>Single quotes (') are used to allow for strings (i.e., names, prefixes, URIs, values or constraint strings) with characters that would otherwise be interpreted as delimiters.</p></div>
+<div class="section">
+<h3>Escaping<a name="Escaping"></a></h3>
+<p>The standard Java escape sequences are also supported:</p>
+
+<div class="source">
+<pre>\n newline
+\t tab
+\b backspace
+\f form feed
+\r return
+\&quot; double quote
+\' single quote
+\\ back slash
+\uHHHH Unicode character in hexadecimal
+</pre></div></div>
+<div class="section">
+<h3>Comments<a name="Comments"></a></h3>
+<p>Comment can also be included in the notation using either of the standard Java forms:</p>
+
+<div class="source">
+<pre>// A comment
+/* Another comment */
+</pre></div></div>
+<div class="section">
+<h3>Whitespace and Short Forms<a name="Whitespace_and_Short_Forms"></a></h3>
+<p>The notation can be compacted by taking advantage of the following the fact that spacing around keychars (<tt>[ ] &gt; , - ( ) = &lt;</tt>), newlines and indentation are not required. So, the following is also well-formed:</p>
+
+<div class="source">
+<pre>[x] &gt;y,z orderable mixin -p(date)=a,b primary mandatory autocreated protected multiple version &lt;c,d
+</pre></div>
+<p>Additionally, though spaces are required around the keywords (orderable, mixin, date, mandatory, etc.), short forms for keywords can be used. So, this:</p>
+
+<div class="source">
+<pre>[x] &gt;y,z o m-p(date)=a,b ! m a p * version &lt;c,d
+</pre></div>
+<p>is well-formed (but perhaps not recommended!).</p></div>
+<div class="section">
+<h3>Why this Weird Notation?<a name="Why_this_Weird_Notation"></a></h3>
+<p>Here&#x2019;s why:</p>
+<p>Old Documentation Notation</p>
+<p>Here is the definition of the built-in node type nt:resource using the old documentation notation (used in v1.0 of the JCR specification, for example):</p>
+
+<div class="source">
+<pre>NodeTypeName
+  nt:resource
+Supertypes
+  nt:base
+  mix:referenceable
+IsMixin
+  false
+HasOrderableChildNodes
+  false
+PrimaryItemName
+  jcr:data
+PropertyDefinition
+  Name jcr:encoding
+  RequiredType STRING
+  ValueConstraints []
+  DefaultValues null
+  AutoCreated false
+  Mandatory false
+  OnParentVersion COPY
+  Protected false
+  Multiple false
+PropertyDefinition
+  Name jcr:mimeType
+  RequiredType STRING
+  ValueConstraints []
+  DefaultValues null
+  AutoCreated false
+  Mandatory true
+  OnParentVersion COPY
+  Protected false
+  Multiple false
+PropertyDefinition
+  Name jcr:data
+  RequiredType BINARY
+  ValueConstraints []
+  DefaultValues null
+  AutoCreated false
+  Mandatory true
+  OnParentVersion COPY
+  Protected false
+  Multiple false
+PropertyDefinition
+  Name jcr:lastModified
+  RequiredType DATE
+  ValueConstraints []
+  DefaultValues null
+  AutoCreated false
+  Mandatory true
+  OnParentVersion IGNORE
+  Protected false
+  Multiple false
+</pre></div>
+<p>Old Configuration Notation</p>
+<p>Here is the same node type in the standard XML notation (used in configuration files in the Jackrabbit project, for example):</p>
+
+<div class="source">
+<pre>&lt;nodeType name=&quot;nt:resource&quot;
+      isMixin=&quot;false&quot;
+      hasOrderableChildNodes=&quot;false&quot;
+      primaryItemName=&quot;jcr:data&quot;&gt;
+    &lt;supertypes&gt;
+    &lt;supertype&gt;nt:base&lt;/supertype&gt;
+    &lt;supertype&gt;mix:referenceable&lt;/supertype&gt;
+    &lt;/supertypes&gt;
+    &lt;propertyDefinition name=&quot;jcr:encoding&quot;
+         requiredType=&quot;String&quot;
+         autoCreated=&quot;false&quot;
+         mandatory=&quot;false&quot;
+         onParentVersion=&quot;COPY&quot;
+         protected=&quot;false&quot;
+         multiple=&quot;false&quot;/&gt;
+    &lt;propertyDefinition name=&quot;jcr:mimeType&quot;
+         requiredType=&quot;String&quot;
+         autoCreated=&quot;false&quot;
+         mandatory=&quot;true&quot;
+         onParentVersion=&quot;COPY&quot;
+         protected=&quot;false&quot;
+         multiple=&quot;false&quot;/&gt;
+    &lt;propertyDefinition name=&quot;jcr:data&quot;
+         requiredType=&quot;Binary&quot;
+         autoCreated=&quot;false&quot;
+         mandatory=&quot;true&quot;
+         onParentVersion=&quot;COPY&quot;
+         protected=&quot;false&quot;
+         multiple=&quot;false&quot;/&gt;
+    &lt;propertyDefinition name=&quot;jcr:lastModified&quot;
+         requiredType=&quot;Date&quot;
+         autoCreated=&quot;false&quot;
+         mandatory=&quot;true&quot;
+         onParentVersion=&quot;IGNORE&quot;
+         protected=&quot;false&quot;
+         multiple=&quot;false&quot;/&gt;
+&lt;/nodeType&gt;
+</pre></div>
+<p>New Format</p>
+<p>And, here it is in the new CND notation:</p>
+
+<div class="source">
+<pre>[nt:resource] &gt; mix:referenceable
+- jcr:encoding
+- jcr:mimeType mandatory
+- jcr:data (binary) mandatory
+- jcr:lastModified (date) mandatory ignore
+</pre></div>
+<p>Case closed.</p></div></div>
+<div class="section">
+<h2>Syntax highlighting for text editors<a name="Syntax_highlighting_for_text_editors"></a></h2>
+<p>Here is a TextMate bundle for CND syntax highlighting: <a href="CND.zip">CND.zip</a></p></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2015
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+        
+        
+          
+    
+    
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
\ No newline at end of file

Added: jackrabbit/site/live/jcr/node-type-visualization.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/node-type-visualization.html?rev=1672168&view=auto
==============================================================================
--- jackrabbit/site/live/jcr/node-type-visualization.html (added)
+++ jackrabbit/site/live/jcr/node-type-visualization.html Wed Apr  8 20:34:14 2015
@@ -0,0 +1,622 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2015-04-08 
+ | Rendered using Apache Maven Fluido Skin 1.3.1
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20150408" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Apache Jackrabbit - Node Type Visualization</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>
+
+    
+                  </head>
+        <body class="topBarEnabled">
+          
+    
+    
+            
+    
+    
+    <a href="http://github.com/apache/jackrabbit">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
+        alt="Fork me on GitHub">
+    </a>
+  
+                
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                <div class="container-fluid">
+        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </a>
+                
+                                                                                <a class="brand" href="index.html"  title="Apache Jackrabbit">
+
+                                
+                                                                                                                    <img src="images/logos/jlogo.gif" alt="Apache Jackrabbit" />
+                
+                </a>
+                    
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Welcome">Welcome</a>
+</li>
+                  
+                      <li>      <a href="downloads.html"  title="Downloads">Downloads</a>
+</li>
+                  
+                      <li>      <a href="articles.html"  title="Articles">Articles</a>
+</li>
+                  
+                      <li>      <a href="frequently-asked-questions.html"  title="FAQ">FAQ</a>
+</li>
+                  
+                      <li>      <a href="http://wiki.apache.org/jackrabbit/FrontPage"  title="Jackrabbit Wiki">Jackrabbit Wiki</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-history.html"  title="Jackrabbit History">Jackrabbit History</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="getting-started-with-apache-jackrabbit.html"  title="Getting Started">Getting Started</a>
+</li>
+                  
+                      <li>      <a href="standalone-server.html"  title="Standalone Server">Standalone Server</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-components.html"  title="Jackrabbit Components">Jackrabbit Components</a>
+</li>
+                  
+                      <li>      <a href="first-hops.html"  title="First Hops">First Hops</a>
+</li>
+                  
+                      <li>      <a href="jcr-api.html"  title="JCR & API">JCR & API</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-architecture.html"  title="Jackrabbit Architecture">Jackrabbit Architecture</a>
+</li>
+                  
+                      <li>      <a href="deployment-models.html"  title="Deployment Models">Deployment Models</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-configuration.html"  title="Jackrabbit Configuration">Jackrabbit Configuration</a>
+</li>
+                  
+                      <li>      <a href="node-types.html"  title="Node Types">Node Types</a>
+</li>
+                  
+                      <li>      <a href="object-content-mapping.html"  title="Object Content Mapping">Object Content Mapping</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="jackrabbit-team.html"  title="Jackrabbit Team">Jackrabbit Team</a>
+</li>
+                  
+                      <li>      <a href="jackrabbit-roadmap.html"  title="Jackrabbit Roadmap">Jackrabbit Roadmap</a>
+</li>
+                  
+                      <li>      <a href="building-jackrabbit.html"  title="Building Jackrabbit">Building Jackrabbit</a>
+</li>
+                  
+                      <li>      <a href="mailing-lists.html"  title="Mailing Lists">Mailing Lists</a>
+</li>
+                  
+                      <li>      <a href="issue-tracker.html"  title="Issue Tracker">Issue Tracker</a>
+</li>
+                  
+                      <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
+</li>
+                  
+                      <li>      <a href="continuous-integration.html"  title="Continuous Integration">Continuous Integration</a>
+</li>
+                  
+                      <li>      <a href="website.html"  title="Website">Website</a>
+</li>
+                  
+                      <li>      <a href="creating-releases.html"  title="Creating Releases">Creating Releases</a>
+</li>
+                  
+                      <li>      <a href="supporting-software-attribution.html"  title="Attribution">Attribution</a>
+</li>
+                  
+                      <li>      <a href="privacy-policy.html"  title="Privacy">Privacy</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="http://www.apache.org/foundation/how-it-works.html"  title="Introduction">Introduction</a>
+</li>
+                  
+                      <li>      <a href="http://www.apache.org/foundation/sponsorship.html"  title="Sponsorship">Sponsorship</a>
+</li>
+                  
+                      <li>      <a href="http://www.apache.org/foundation/thanks.html"  title="Current Sponsors">Current Sponsors</a>
+</li>
+                          </ul>
+      </li>
+                  </ul>
+          
+          
+          
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                <div id="bannerLeft">
+                <h2>Apache Jackrabbit Site</h2>
+                </div>
+                      </div>
+        <div class="pull-right">  </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                  <li id="publishDate">Last Published: 2015-04-08
+                   </li>
+                      
+                
+                    
+      
+                            </ul>
+      </div>
+
+            
+      <div class="row-fluid">
+        <div id="leftColumn" class="span3">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Apache Jackrabbit</li>
+                              
+      <li>
+  
+                          <a href="index.html" title="Welcome">
+          <i class="none"></i>
+        Welcome</a>
+            </li>
+                
+      <li>
+  
+                          <a href="downloads.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                
+      <li>
+  
+                          <a href="articles.html" title="Articles">
+          <i class="none"></i>
+        Articles</a>
+            </li>
+                
+      <li>
+  
+                          <a href="frequently-asked-questions.html" title="FAQ">
+          <i class="none"></i>
+        FAQ</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://wiki.apache.org/jackrabbit/FrontPage" class="externalLink" title="Jackrabbit Wiki">
+          <i class="none"></i>
+        Jackrabbit Wiki</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-history.html" title="Jackrabbit History">
+          <i class="none"></i>
+        Jackrabbit History</a>
+            </li>
+                              <li class="nav-header">Documentation</li>
+                              
+      <li>
+  
+                          <a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">
+          <i class="none"></i>
+        Getting Started</a>
+            </li>
+                
+      <li>
+  
+                          <a href="standalone-server.html" title="Standalone Server">
+          <i class="none"></i>
+        Standalone Server</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-components.html" title="Jackrabbit Components">
+          <i class="none"></i>
+        Jackrabbit Components</a>
+            </li>
+                
+      <li>
+  
+                          <a href="first-hops.html" title="First Hops">
+          <i class="none"></i>
+        First Hops</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jcr-api.html" title="JCR & API">
+          <i class="none"></i>
+        JCR & API</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-architecture.html" title="Jackrabbit Architecture">
+          <i class="none"></i>
+        Jackrabbit Architecture</a>
+            </li>
+                
+      <li>
+  
+                          <a href="deployment-models.html" title="Deployment Models">
+          <i class="none"></i>
+        Deployment Models</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-configuration.html" title="Jackrabbit Configuration">
+          <i class="none"></i>
+        Jackrabbit Configuration</a>
+            </li>
+                
+      <li>
+  
+                          <a href="node-types.html" title="Node Types">
+          <i class="none"></i>
+        Node Types</a>
+            </li>
+                
+      <li>
+  
+                          <a href="object-content-mapping.html" title="Object Content Mapping">
+          <i class="none"></i>
+        Object Content Mapping</a>
+            </li>
+                              <li class="nav-header">Development</li>
+                              
+      <li>
+  
+                          <a href="jackrabbit-team.html" title="Jackrabbit Team">
+          <i class="none"></i>
+        Jackrabbit Team</a>
+            </li>
+                
+      <li>
+  
+                          <a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">
+          <i class="none"></i>
+        Jackrabbit Roadmap</a>
+            </li>
+                
+      <li>
+  
+                          <a href="building-jackrabbit.html" title="Building Jackrabbit">
+          <i class="none"></i>
+        Building Jackrabbit</a>
+            </li>
+                
+      <li>
+  
+                          <a href="mailing-lists.html" title="Mailing Lists">
+          <i class="none"></i>
+        Mailing Lists</a>
+            </li>
+                
+      <li>
+  
+                          <a href="issue-tracker.html" title="Issue Tracker">
+          <i class="none"></i>
+        Issue Tracker</a>
+            </li>
+                
+      <li>
+  
+                          <a href="source-repository.html" title="Source Repository">
+          <i class="none"></i>
+        Source Repository</a>
+            </li>
+                
+      <li>
+  
+                          <a href="continuous-integration.html" title="Continuous Integration">
+          <i class="none"></i>
+        Continuous Integration</a>
+            </li>
+                
+      <li>
+  
+                          <a href="website.html" title="Website">
+          <i class="none"></i>
+        Website</a>
+            </li>
+                
+      <li>
+  
+                          <a href="creating-releases.html" title="Creating Releases">
+          <i class="none"></i>
+        Creating Releases</a>
+            </li>
+                
+      <li>
+  
+                          <a href="supporting-software-attribution.html" title="Attribution">
+          <i class="none"></i>
+        Attribution</a>
+            </li>
+                
+      <li>
+  
+                          <a href="privacy-policy.html" title="Privacy">
+          <i class="none"></i>
+        Privacy</a>
+            </li>
+                              <li class="nav-header">Apache Software Foundation</li>
+                              
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="Introduction">
+          <i class="none"></i>
+        Introduction</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
+          <i class="none"></i>
+        Sponsorship</a>
+            </li>
+                
+      <li>
+  
+                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Current Sponsors">
+          <i class="none"></i>
+        Current Sponsors</a>
+            </li>
+            </ul>
+                
+                    
+                
+          <hr />
+
+           <div id="poweredBy">
+                   
+    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+
+    
+    <div class="g-plusone" data-href="http://www.apache.org/jackrabbit-site/" data-size="tall" ></div>
+
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                
+        <div id="bodyColumn"  class="span9" >
+                                  
+            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License. --><h1>Node Type Visualization</h1>
+<p>Visualizing the Node Type Hierarchy is non-trivial, even in the case of a repository containing only the default Jackrabbit node types. Here, GraphViz can help:</p>
+<p><img src="jackrabbit-nodetypes.png" alt="Jackrabbit Nodetypes" /></p>
+<p>Node Type Hierarchy for Jackrabbit (<a href="jackrabbit-nodetypes.svg">SVG version</a>)</p>
+<p>In this diagram, the rounded boxes represent node types (green for mixins, gold for primrary types), with the arrows indicating the node inheritance. The square boxes represent child node and property definitions.</p>
+<p>To generate these diagrams, you will need:</p>
+
+<ol style="list-style-type: decimal">
+  
+<li>A system view export of <tt>/jcr:system/jcr:nodeTypes</tt>.</li>
+  
+<li>An XSLT processor and the XSLT code below.</li>
+  
+<li>The <a class="externalLink" href="http://graphviz.org/">GraphViz</a> tool</li>
+</ol>
+
+<div class="source">
+<pre>&lt;!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the &quot;License&quot;); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+--&gt;
+
+&lt;!--
+  A tool for converting the system view of /jcr:system/jcr:nodeTypes
+  to GraphViz input (see &lt;http://www.graphviz.org/&gt;).
+
+  Usage:
+
+  1: Export System View of /jcr:system/jcr:nodeTypes
+
+  2: Run XSLT transformation, producing a .dot file, such as with
+
+     $ saxon nt-sample.xml jcr-nodetypes-to-dot.xslt &gt; nt-sample.dot
+
+  3: Run Graphviz, for instance
+
+     $ dot nt-sample.dot -Tsvg -o nt-sample.svg
+
+     ...producing nt-sample.svg as output.
+--&gt;
+
+&lt;xsl:transform xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
+       version=&quot;1.0&quot;
+       xmlns:ed=&quot;http://greenbytes.de/2002/rfcedit&quot;
+       xmlns:exslt=&quot;http://exslt.org/common&quot;
+       xmlns:nt=&quot;http://www.jcp.org/jcr/nt/1.0&quot;
+       xmlns:sv=&quot;http://www.jcp.org/jcr/sv/1.0&quot;
+       xmlns:jcr=&quot;http://www.jcp.org/jcr/1.0&quot;
+&gt;
+
+&lt;xsl:output method=&quot;text&quot; encoding=&quot;UTF-8&quot;/&gt;
+
+&lt;xsl:template match=&quot;/&quot;&gt;
+  &lt;xsl:text&gt;digraph {&amp;#10;&lt;/xsl:text&gt;
+  &lt;xsl:text&gt;  rankdir=LR;&amp;#10;&lt;/xsl:text&gt;
+  &lt;xsl:apply-templates select=&quot;//sv:node[sv:property[@sv:name='jcr:primaryType']/sv:value='nt:nodeType']&quot;/&gt;
+  &lt;xsl:text&gt;}&amp;#10;&lt;/xsl:text&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match=&quot;sv:node[sv:property[@sv:name='jcr:primaryType']/sv:value='nt:nodeType']&quot;&gt;
+  &lt;xsl:text&gt;  &quot;&lt;/xsl:text&gt;
+  &lt;xsl:value-of select=&quot;@sv:name&quot;/&gt;
+  &lt;xsl:text&gt;&quot; &lt;/xsl:text&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test=&quot;sv:property[@sv:name='jcr:isMixin'] /sv:value='true'&quot;&gt;
+      &lt;xsl:text&gt;[style = &quot;filled, rounded&quot;, fillcolor = greenyellow];&lt;/xsl:text&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:text&gt;[style = &quot;filled, rounded&quot;, fillcolor = gold] ;&lt;/xsl:text&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+  &lt;xsl:text&gt;&amp;#10;&lt;/xsl:text&gt;
+
+  &lt;xsl:for-each select=&quot;sv:property[@sv:name='jcr:supertypes']/sv:value&quot;&gt;
+    &lt;xsl:text&gt;  &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;.&quot;/&gt;
+    &lt;xsl:text&gt;&quot; -&gt; &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;../../@sv:name&quot;/&gt;
+    &lt;xsl:text&gt;&quot; [dir = back, tooltip = &quot;supertype&quot;] ;&amp;#10;&lt;/xsl:text&gt;
+  &lt;/xsl:for-each&gt;
+
+  &lt;xsl:for-each select=&quot;sv:node[@sv:name='jcr:childNodeDefinition']&quot;&gt;
+
+    &lt;xsl:variable name=&quot;name&quot;&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test=&quot;sv:property[@sv:name='jcr:name']&quot;&gt;
+          &lt;xsl:value-of select=&quot;sv:property[@sv:name='jcr:name']/sv:value&quot;/&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;*&lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:variable&gt;
+
+    &lt;xsl:variable name=&quot;id&quot; select=&quot;generate-id()&quot;/&gt;
+
+    &lt;xsl:value-of select=&quot;concat('  &amp;quot;',$id,'&amp;quot; [shape = box, style = filled, fillcolor = khaki, label=&amp;quot;',$name,'&amp;quot;]&amp;#10;')&quot;/&gt;
+
+    &lt;xsl:text&gt;  &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;../@sv:name&quot;/&gt;
+    &lt;xsl:text&gt;&quot; -&gt; &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;$id&quot;/&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test=&quot;sv:property[@sv:name='jcr:mandatory']/sv:value='true'&quot;&gt;
+    &lt;xsl:text&gt;&quot; [tooltip = &quot;is mandatory child node of&quot;, dir = back];&amp;#10;&lt;/xsl:text&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+    &lt;xsl:text&gt;&quot; [style = dotted, tooltip = &quot;is child node of&quot;, dir = back];&amp;#10;&lt;/xsl:text&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+
+    &lt;xsl:text&gt;  &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;sv:property[@sv:name='jcr:requiredPrimaryTypes']/sv:value&quot;/&gt;
+    &lt;xsl:text&gt;&quot; -&gt; &quot;&lt;/xsl:text&gt;
+    &lt;xsl:value-of select=&quot;$id&quot;/&gt;
+    &lt;xsl:text&gt;&quot; [dir = back, tooltip = &quot;has primary type&quot;];&amp;#10;&lt;/xsl:text&gt;
+
+  &lt;/xsl:for-each&gt;
+
+&lt;/xsl:template&gt;
+
+&lt;/xsl:transform&gt;
+</pre></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+                      <div class="row-fluid">
+                              <p >Copyright &copy;                    2015
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All rights reserved.      
+                    
+      </p>
+        </div>
+
+        
+        
+          
+    
+    
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
+    </div>
+        </div>
+    </footer>
+        </body>
+</html>
\ No newline at end of file