I cleared everything down in JBoss, re-deployed Nuxeo and it worked. Thanks for your help. We just need to figure out how to workflow these new documents now ;-)

Thanks

Craig Pugsley
Technical Consultant - PolicyMatter Ltd

On 23 May 2007, at 16:11, Anahide Tchertchian wrote:

Maybe your new schema is not registered ok.
I suggest you start again using a fresh repository (remove jboss/ server/default/data/NXRuntime and restart jboss).

If you do not want to remove your repository, you can try to set the property "forceReloadTypes" to "true" in nuxeo.ear/config/ default-repository-config.xml and restart jboss.

Craig Pugsley a e'crit :
So we're very keen to, at this stage, just get a document into Nuxeo using a very cut down schema and start evaluating some of the other elements of the system. We're already using a schema very similar to the one you suggested (just a couple of simple elements with no attributes), however we are getting another problem: 15:58:53,990 ERROR [JCRDocument] Error setting value: Version 1.0.0 on property: Version
15:58:53,991 ERROR [ClientException] ClientException created...
org.nuxeo.ecm.core.api.ClientException: Failed to create document my-new-policy at org.nuxeo.ecm.core.api.AbstractSession.createDocument (AbstractSession.java:525) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Caused by: org.nuxeo.ecm.core.api.DocumentException: failed to set boolean property Version at org.nuxeo.ecm.core.jcr.properties.StringProperty.create (StringProperty.java:45) at org.nuxeo.ecm.core.jcr.properties.JCRScalarProperty.setValue (JCRScalarProperty.java:90) at org.nuxeo.ecm.core.jcr.JCRDocument.setPropertyValue (JCRDocument.java:430) at org.nuxeo.ecm.core.api.AbstractSession.writeModel (AbstractSession.java:336) at org.nuxeo.ecm.core.api.AbstractSession.createDocument (AbstractSession.java:498) ... 217 more Caused by: javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {}Version at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePr opertyDef(EffectiveNodeType.java:771) at org.apache.jackrabbit.core.NodeImpl.getApplicablePropertyDefinition (NodeImpl.java:926) at org.apache.jackrabbit.core.NodeImpl.getOrCreateProperty (NodeImpl.java:457) at org.apache.jackrabbit.core.NodeImpl.getOrCreateProperty (NodeImpl.java:407) at org.apache.jackrabbit.core.NodeImpl.setProperty (NodeImpl.java:2121) at org.nuxeo.ecm.core.jcr.properties.StringProperty.create (StringProperty.java:42) ... 221 more
In 'ecm-types-contrib.xml', we are using:
    <type id="Policy" coretype="policy">
      <label>PolicyMatter Document</label>
      <icon>/icons/pmLogo16.png</icon>
      <default-view>view_documents</default-view>
      <layout>
        <widget jsfcomponent="h:inputText"
          schemaname="dublincore" fieldname="title"
          required="true"/>
        <widget jsfcomponent="h:inputText"
          schemaname="policy" fieldname="Version"
          required="true"/>
        <widget jsfcomponent="nxu:editor"
          schemaname="policy" fieldname="Content" />
        <widget jsfcomponent="nxdir:selectOneListbox"
          schemaname="dublincore" fieldname="language"
          directory="sample_languages"/>
      </layout>
    </type>
...with the schema:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://policy.policymatter.com"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="qualified">
  <xsd:element name="Name" type="xsd:string"/>
  <xsd:element name="Version" type="xsd:string"/>
  <xsd:element name="Content" type="xsd:string"/>
</xsd:schema>
Any idea what could be going on here?
Craig Pugsley
Technical Consultant - PolicyMatter Ltd
On 23 May 2007, at 15:26, Anahide Tchertchian wrote:
Hi,

Question 1: What is the correct way to reference the 'name' attribute on the 'RULE-POOL' element in 'ecm-types-contrib.xml'?
You cannot bind individual sub-elements (like the RULE/name field) to a widget. Each schema element is seen as an indivisible entity when editing it.
(you cannot edit only parts of a element)
So when you have complex elements in a schema like in your case you need to bind the complex element to an widget
to edit it as an indivisible entity.
For this you may create a custom JSF widget that is able to show two text boxes for your 2 sub-elements. For simple elements like strings it is easy because you can use existing widgets but for complex elements I think you need
to create your own widgets.
In future we will provide a generic widget for complex types (that will generate forms to edit a complex type)
but for now we don't have such a widget.
May be people more experienced with JSF can help you on this.
So the question is how a complex field can be bound to an widget or how can it be edited.
Is nuxeo web framework providing some generic mechanism for this?
Anahide any hint?

When we have the API to set a sub property on a document model, maybe this will be possible. Currently we're using the current syntax:
<h:inputText value="#{document.schemaName.fieldName}" />
This will trigger the document.setProperty(schemaName, fieldName, value) when setting the value. A syntax like would not be able to trigger the setProperty method on the document: <h:inputText value="# {document.schemaName.fieldName.subFieldName}" />

Question 2: Is there any documentation on the the '<widget>'s that are available to use in 'ecm-types-contrib.xml'? Specifically, I would like to know how to change the display name of this field, so it doesn't appear to the user as 'RULE- POOL:name', but something more human-readable, and would also know what types of widgets are available to display the data.

There is no documentation yet as this mecanism is not done yet: the layout system is not configurable enough to address non- simple use cases.

If you can, I would suggest that you change your schema for now into:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://policy.policymatter.com"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="qualified">
  <xsd:element name="name" type="xsd:string" use="required" />
  <xsd:element name="version" type="xsd:string" use="required" />
</xsd:schema>

Regards,

--Anahide Tchertchian, Nuxeo
Mail: [EMAIL PROTECTED] - Tel: +33 (0)1 40 33 79 87
http://www.nuxeo.com - http://www.nuxeo.org


_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm

Reply via email to