Hi
The integration of JCR into 1.4.x made quite good progress the last
weeks. Thanks a lot to the programmers involved!
So far, the integration approach has been a filesystem-
centric approach , i.e. the originating file-system structure was
mapped to JCR using the jcr block of cocoon. From my point of view,
this approach does not come up with the primal intention of the
JSR-170 standard and its functionality as a content repository.
I think, a JSR-170 repository can be much more adapted to the needs
of Lenya -- or generally, a CMS -- than a filesystem. JSR-170 offers
the tools to support a CMS storing and retrieving its content in
an easy, standardized way.
I think, a JSR-170 repository has to be considered as similar to a
database (that's maybe why JSR-170 supports SQL-like queries). That
means that a JSR-170 repository requires a structure (in the database
world, that would be tables, etc.) that fits the needs of a CMS.
Please find attached a first (incomplete: only documents and
meta data are considered so far) draft.
Please let me know what you think about the draft moving
Lenya away from the filesystem-centric approach to a more
powerful usage of the possibilities JSR-170 offers.
- Felix
--
Felix Röthenbacher [EMAIL PROTECTED]
Wyona Inc. - Open Source Content Management - Apache Lenya
http://www.wyona.com http://lenya.apache.org
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright 2004-2005 The Apache Software Foundation or its licensors,
* as applicable.
*
* Licensed 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.
*/
-->
<nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
xmlns:rep="internal"
xmlns:sv="http://www.jcp.org/jcr/sv/1.0"
xmlns:lpu="http://apache.org/cocoon/lenya/jcr/usr/1.0"
xmlns:lps="http://apache.org/cocoon/lenya/jcr/sys/1.0"
xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:dc="http://purl.org/dc/elements/1.1"
xmlns:dcterms="http://purl.org/dc/terms/">
<nodeType name="jcr:content" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
<supertypes>
<supertype>nt:resource</supertype>
</supertypes>
</nodeType>
<!-- Dublin Core Elements (see http://dublincore.org/documents/usageguide/elements.shtml) -->
<nodeType name="lps:dc" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
<propertyDef name="dc:title" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:creator" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:subject" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:description" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:publisher" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:contributor" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:date" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:type" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:format" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="true"/>
<propertyDef name="dc:identifier" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:source" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:language" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:relation" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:coverage" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dc:rights" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
</nodeType>
<!-- Dublin Core Terms (see http://dublincore.org/documents/usageguide/elements.shtml) -->
<nodeType name="lps:dcterms" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
<propertyDef name="dcterms:abstract" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:accessRights" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:alternative" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:audience" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:available" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:bibliographicCitation" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:conformsTo" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:created" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:dateAccepted" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:dateCopyrighted" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:dateSubmitted" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:educationLevel" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:extent" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:hasFormat" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:hasPart" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:hasVersion" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:isFormatOf" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:isPartOf" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:isReferencedBy" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:isReplacedBy" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:isRequiredBy" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:issued" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:mediator" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:medium" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:modified" requiredType="Date" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:references" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:replaces" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:requires" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:spatial" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:temporal" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="dcterms:valid" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="COPY" protected="false" multiple="false"/>
</nodeType>
<!-- Dublin Core meta data -->
<nodeType name="lps:meta" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
<supertypes>
<supertype>nt:unstructured</supertype>
<supertype>lps:dc</supertype>
<supertype>lps:dcterms</supertype>
</supertypes>
</nodeType>
<nodeType name="lps:document" isMixin="false" hasOrderableChildNodes="false" primaryItemName="jcr:content">
<supertypes>
<supertype>nt:file</supertype>
<supertype>mix:versionable</supertype>
<supertype>mix:lockable</supertype>
</supertypes>
<propertyDef name="xml:lang" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
<propertyDef name="lps:label" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false"/>
<childNodeDef name="lps:meta" defaultPrimaryType="lps:meta" autoCreate="true" mandatory="true" onParentVersion="COPY" protected="false" sameNameSibs="false">
<requiredPrimaryTypes>
<requiredPrimaryType>lps:meta</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDef>
</nodeType>
<nodeType name="lps:node" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
<supertypes>
<supertype>nt:hierarchyNode</supertype>
<supertype>mix:referenceable</supertype>
<supertype>mix:lockable</supertype>
</supertypes>
<propertyDef name="*" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" multiple="false"/>
<propertyDef name="lps:visibleinnav" requiredType="Boolean" autoCreate="false" mandatory="true" onParentVersion="ABORT" protected="false" multiple="false"/>
<propertyDef name="lps:href" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" multiple="false"/>
<propertyDef name="lps:suffix" requiredType="String" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" multiple="false"/>
<propertyDef name="lps:link" requiredType="Boolean" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" multiple="false"/>
<childNodeDef name="lps:document" defaultPrimaryType="lps:document" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" sameNameSibs="true">
<requiredPrimaryTypes>
<requiredPrimaryType>lps:document</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDef>
<childNodeDef name="*" defaultPrimaryType="" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" sameNameSibs="false"/>
</nodeType>
<nodeType name="lps:site" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
<supertypes>
<supertype>nt:hierarchyNode</supertype>
<supertype>mix:referenceable</supertype>
<supertype>mix:lockable</supertype>
</supertypes>
<propertyDef name="lps:label" requiredType="String" autoCreate="false" mandatory="true" onParentVersion="ABORT" protected="false"/>
<childNodeDef name="*" defaultPrimaryType="lps:node" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" sameNameSibs="false">
<requiredPrimaryTypes>
<requiredPrimaryType>lps:node</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDef>
</nodeType>
<nodeType name="lps:publication" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
<supertypes>
<supertype>nt:hierarchyNode</supertype>
<supertype>mix:referenceable</supertype>
</supertypes>
<childNodeDef name="*" defaultPrimaryType="" autoCreate="false" mandatory="false" onParentVersion="ABORT" protected="false" sameNameSibs="false">
<requiredPrimaryTypes>
<requiredPrimaryType>lps:site</requiredPrimaryType>
</requiredPrimaryTypes>
</childNodeDef>
</nodeType>
</nodeTypes>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]