【问题标题】:How to create new custom Node Type in adobe CQ如何在 adobe CQ 中创建新的自定义节点类型
【发布时间】:2013-01-27 06:23:39
【问题描述】:

我是 CQ 新手,如何在 Day(adobe) CQ5.4 中创建新的自定义节点类型,如 mycmpny:testNode

【问题讨论】:

标签: jackrabbit aem jcr sling


【解决方案1】:

您可以像这样从工作区获取NodeTypeManager

NodeTypeManager manager = session.getWorkspace().getNodeTypeManager();
manager.registerNodeTypes(myNewNodeType, true);

还有一些关于custom node typesadministration 的附加信息在日网站上。

但是,您最好避免从一开始就使用模式,并在必要时再添加。请参阅 Michael Marth 的 Structured or unstructured? In JCR you do not have to choose 以另一种方式看待这个问题。这是echoed by JCR spec lead David Nuescheler

【讨论】:

  • 非常感谢,我可以在节点管理中使用导入节点选项吗?如何在组件中使用这个自定义类型节点
  • 通过 CRX 资源管理器,您可以进入节点类型管理,选择导入节点类型菜单项。从那里您可以输入 CND 格式的节点定义。 CND in a nutshell 描述了格式。
【解决方案2】:

如果你看看节点类型可以为你做什么,基本上有三件事:

  1. 为事物命名 - 但您也可以使用 Sling 之类的约定 此的资源类型
  2. 阻止存储某些内容 - 但规则将 随时间变化
  3. 提供高效观察

第三点可能是引入自定义节点类型的最重要原因。如果您不想观察存储库某个部分中的所有更改,那么节点类型提供了一个有效的过滤器。 (此内容来自 Adob​​e 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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多