【发布时间】:2013-01-27 06:23:39
【问题描述】:
我是 CQ 新手,如何在 Day(adobe) CQ5.4 中创建新的自定义节点类型,如 mycmpny:testNode
【问题讨论】:
标签: jackrabbit aem jcr sling
我是 CQ 新手,如何在 Day(adobe) CQ5.4 中创建新的自定义节点类型,如 mycmpny:testNode
【问题讨论】:
标签: jackrabbit aem jcr sling
您可以像这样从工作区获取NodeTypeManager:
NodeTypeManager manager = session.getWorkspace().getNodeTypeManager();
manager.registerNodeTypes(myNewNodeType, true);
还有一些关于custom node types 和administration 的附加信息在日网站上。
但是,您最好避免从一开始就使用模式,并在必要时再添加。请参阅 Michael Marth 的 Structured or unstructured? In JCR you do not have to choose 以另一种方式看待这个问题。这是echoed by JCR spec lead David Nuescheler。
【讨论】:
如果你看看节点类型可以为你做什么,基本上有三件事:
第三点可能是引入自定义节点类型的最重要原因。如果您不想观察存储库某个部分中的所有更改,那么节点类型提供了一个有效的过滤器。 (此内容来自 Adobe CQ5 产品经理 Lars Trieloff 的帖子)
这些几乎是使用自定义节点类型的唯一原因。我只在少数场景中使用了自定义节点类型,而且大多数情况下它与索引和复杂的 jcr 查询有关。从你的问题的声音来看,听起来你都没有做这些。我建议使用开箱即用的节点类型。
要创建一个新的节点类型,请创建一个名为 nodetypes 的文件夹并在其中放置一个 example.cnd 文件,其中包含以下内容
<'example'='http://www.somedomain.com/example'>
[example:Audit]
- * (undefined)
它还应该有一个 .content.xml
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
xmlns:rep="internal" jcr:mixinTypes="[rep:AccessControllable]"
jcr:primaryType="nt:folder" />
【讨论】: