Jackrabbit能够让开发者制定自己的节点类型, 应用程序能够在启动的时候读取节点类型定义文件,加载节点定义.
下面是一个简单的说明:
说明
- /* Jackrabbit 节点类型定义说明 */
- // 名域的声明. 下面声明了一个名域ns,值为http://namespace.com/ns
- // 节点类型的名字, 这里是声明一个名字为NodeType的节点类型,ns为其名域
- [ns:NodeType]
- // 首先定义其父类型,注意:">"符号表明继承关系,用","符号分隔多个条目
- // 下面 声明名字为NodeType的节点类型继承两个节点类型,分别为ns:ParentType1和ns:ParentType2
- > ns:ParentType1, ns:ParentType2
- // 声明这个节点类型支持子节点可排序
- orderable
- // 声明这个节点类型是混合类型的
- mixin
- // 声明这个节点类型拥有一个ex:property属性,符号"-"代表一个属性,(string)表示这个属性的类型为string
- - ex:property (string)
- // 声明这个属性ex:property的默认值(多值)
- // "="符号代表赋值
- = 'default1', 'default2'
- // 声明这个属性是主项
- primary
- // 声明这个属性是强制的,自动创建的,和受保护的
- mandatory autocreated protected
- // 声明这个属性是多值属性
- multiple
- // 声明这个属性的 on-parent-version 项设置为version
- version
- // 声明这个属性的约束设置为contraint1,constraint2. "<"符号代表受约束
- < 'constraint1', 'constraint2'
- // 声明这个节点类型拥有一个名为ns:node的子节点
- // 这个子节点必须是ns:reqType1和ns:reqType2两种类型的,类型用","号分隔
- // "+"符号代表一个子节点
- + ns:node (ns:reqType1, ns:reqType2)
- // 声明这个子节点的主节点类型为ns:defaultType,"="代表赋值
- = ns:defaultType
- // 声明这个子节点强制的,自动创建的,和受保护的
- mandatory autocreated protected
- // 声明这个子节点是可以有同名兄弟节点的
- multiple
- // 声明这个子节点的 on-parent-version 项设置为version
- version