I created a new schema:
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://project.nuxeo.org/schemas/dev/cookbook/example/pap/process-request-form/"
xmlns:area51="http://project.nuxeo.org/schemas/dev/cookbook/example/pap/process-request-form/"
>
<xs:simpleType name="vehicle_type">
<xs:restriction base="xs:string">
<xs:enumeration value="Car"/>
<xs:enumeration value="Airplane"/>
<xs:enumeration value="X-Plane"/>
<xs:enumeration value="Ufo"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="parking_area" type="area51:vehicle_type"/>
</xs:schema>
The schema was imported via the extension point schema of TypeService:
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="area51" src="schemas/process_request_form.xsd" prefix="area51" />
</extension>
Additionally the schema was used for an user defined document type. This works.
Additionally I added a layout to the extension point types of TypeService. The layout was added via the extension point layouts of WebLayoutManager. This works too.
The problem is the widget which I created for the new layout:
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager" point="widgets">
<widget name="type_of_vehicle" type="selectOneDirectory">
<labels>
<label mode="any">Vehicle type</label>
</labels>
<translated>true</translated>
<fields>
<field>area51:parking_area</field>
</fields>
<properties widgetMode="any">
<property name="directoryName">area51:vehicle_type</property>
<property name="localize">true</property>
<property name="ordering">label</property>
</properties>
</widget>
</extension>
It is no problem to display the document but if I try to edit the document then an excpetion occurs:
stackTrace : javax.servlet.ServletException: failed to build option list for directory area51:vehicle_type
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
It would be nice if somebody could give me a hint, how to define the options.