| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you 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. |
| --> |
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> |
| <xs:element name="ofbiz-component"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="depends-on"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="resource-loader"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="classpath"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="entity-resource"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="service-resource"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="test-suite"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="keystore"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="webapp"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="container"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.ofbiz-component"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.ofbiz-component"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute type="xs:string" name="enabled" use="optional" default="true"/> |
| </xs:attributeGroup> |
| <xs:element name="depends-on"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.depends-on"> |
| <xs:annotation> |
| <xs:documentation> |
| Alter the way components are loaded. |
| |
| By default components are loaded in the order they are found (i.e. alphabetic or creation date). |
| For the plugins, all components will be loaded after the OFBiz components, including, in this order, those in: |
| framework |
| themes |
| applications |
| The plugins Auto-Loading feature also loads all components in the order they are found (i.e. alphabetic or creation date). |
| |
| Using depends-on allows to create a series of dependencies for component loading, before loading a particular component. |
| For instance we can define dependency for a component like component ebaystore is dependent on component ebay |
| (even multiple dependencies for a single component is supported). |
| |
| If any anomaly is found loading of components will stop. |
| |
| We can declare it in this fashion in ofbiz-component.xml file (beware ebaystore is disabled by default) |
| <![CDATA[ |
| <ofbiz-component name="ebaystore" enabled="true" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd"> |
| <depends-on component-name="ebay"/> |
| ]]> |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attributeGroup> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.depends-on"> |
| <xs:attribute type="xs:string" name="component-name" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="resource-loader"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.resource-loader"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.resource-loader"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute name="type" default="component"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="component"/> |
| <xs:enumeration value="file"/> |
| <xs:enumeration value="classpath"/> |
| <xs:enumeration value="url"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="prepend-env"/> |
| <xs:attribute type="xs:string" name="prefix"/> |
| </xs:attributeGroup> |
| <xs:element name="classpath"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.classpath"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.classpath"> |
| <xs:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="jar"/> |
| <xs:enumeration value="dir"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="entity-resource"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.entity-resource"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.entity-resource"> |
| <xs:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="model"/> |
| <xs:enumeration value="group"/> |
| <xs:enumeration value="eca"/> |
| <xs:enumeration value="data"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="reader-name" use="required"/> |
| <xs:attribute type="xs:string" name="loader" use="required"/> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="service-resource"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.service-resource"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.service-resource"> |
| <xs:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="model"/> |
| <xs:enumeration value="group"/> |
| <xs:enumeration value="eca"/> |
| <xs:enumeration value="mca"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="loader" use="required"/> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="test-suite"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.test-suite"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.test-suite"> |
| <xs:attribute type="xs:string" name="loader" use="required"/> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="keystore"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.keystore"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.keystore"> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="jks"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="password" type="xs:string" use="required"/> |
| <xs:attribute name="is-truststore" type="xs:boolean" use="required"/> |
| <xs:attribute name="is-certstore" type="xs:boolean" use="required"/> |
| <xs:attribute type="xs:string" name="loader" use="required"/> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="webapp"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="virtual-host"/> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="init-param"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.webapp"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.webapp"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute type="xs:string" name="title"> |
| <xs:annotation> |
| <xs:documentation> |
| This value is shown in the application menu, when no uiLabelMap is available. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="description"/> |
| <xs:attribute name="menu-name" use="optional" default="main"> |
| <xs:annotation> |
| <xs:documentation> |
| This value determines in which application menu the application is shown. |
| For instance "secondary" is used by plugins and webtools webapps to put their menu-names in the second menu. |
| Note that not all OOTB themes use this "secondary" option, for instance Flat-Grey does not. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="app-shortcut-screen" use="optional"> |
| <xs:annotation> |
| <xs:documentation> |
| This value determines the location of a screen to use as application main menu shortcut. |
| This can be used to display sub-menu on application main menu hover. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="position"/> |
| <xs:attribute type="xs:string" name="server" use="required"/> |
| <xs:attribute type="xs:string" name="location" use="required"/> |
| <xs:attribute type="xs:string" name="mount-point"/> |
| <xs:attribute type="xs:string" name="access-permission"> |
| <xs:annotation> |
| <xs:documentation> |
| A user must have this permission to access the application. |
| When omitted, the application can be used by anyone. This |
| attribute takes precedence over the base-permission attribute - |
| if both attributes are not empty, this attribute will be used. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute type="xs:string" name="base-permission"> |
| <xs:annotation> |
| <xs:documentation> |
| Deprecated - use access-permission. |
| A user must have ALL of the permissions in the list to access the application. |
| When set to "NONE", the application can be used by anyone. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="privileged" type="xs:boolean" default="false"/> |
| <xs:attribute name="app-bar-display" type="xs:boolean" default="true"/> |
| <xs:attribute name="use-autologin-cookie" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation> |
| Defines if the webapp uses the auto login feature which keeps a memory of the user last visit. |
| This allows an user easier login by showing his/her username. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:attributeGroup> |
| <xs:element name="virtual-host"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.virtual-host"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.virtual-host"> |
| <xs:attribute type="xs:string" name="host-name" use="required"/> |
| </xs:attributeGroup> |
| <xs:element name="init-param"> |
| <xs:complexType> |
| <xs:attributeGroup ref="attlist.init-param"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.init-param"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute type="xs:string" name="value" use="required"/> |
| </xs:attributeGroup> |
| |
| <xs:element name="container"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.container"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.container"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute type="xs:string" name="class" use="required"/> |
| <xs:attribute type="xs:string" name="loaders"/> |
| </xs:attributeGroup> |
| <xs:element name="property"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/> |
| <xs:element minOccurs="0" ref="property-value"/> |
| </xs:sequence> |
| <xs:attributeGroup ref="attlist.property"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:attributeGroup name="attlist.property"> |
| <xs:attribute type="xs:string" name="name" use="required"/> |
| <xs:attribute type="xs:string" name="value"/> |
| </xs:attributeGroup> |
| <xs:element name="property-value" type="any"/> |
| <xs:complexType name="any" mixed="true"> |
| <xs:sequence> |
| <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:schema> |