我正在尝试理解JCR中MixinTypes的概念。我读到的是“Mixin节点类型通常指定与添加到节点的功能相关的附加属性或子节点”,但这似乎有些不清楚。我正在寻找简单的定义,以便我能够理解。就像我们有节点类型,它有超类型,后者属于mixin类型。如果我从中删除mixin类型属性,会发生什么情况呢?或者任何其他的例子。谢谢。
如果您阅读文档,应该会很清楚。“每个节点都有一个声明的主节点类型和零个或多个混合节点类型。主节点类型通常用于定义节点的核心特性,而混合节点类型用于添加附加特性,通常与特定存储库功能或元数据相关。”一种看待这个问题的方式是,并非所有JCR实现都具有所有功能,因此并不是所有混合类型都能起作用。一些混合类型会暴露出隐藏属性。Jackrabbit为每个节点提供唯一标识符(jcr:uuid),但如果您尝试列出节点属性,则不会显示,除非您添加mix:referenceable混合类型。其他混合类型告诉JCR使用哪些功能,例如版本控制。如果您的JCR支持它,则必须添加mix:versionable或mix:simpleVersionable以告诉它需要对哪些节点进行版本控制。