| Commit in servicemix/tooling/maven-jbi-plugin on MAIN | |||
| plugin.jelly | +37 | added 1.1 | |
| test.xml | +41 | added 1.1 | |
| .cvsignore | +2 | added 1.1 | |
| project.properties | +19 | added 1.1 | |
| project.xml | +54 | added 1.1 | |
| plugin.properties | +26 | added 1.1 | |
| src/plugin-resources/jbi.jsl | +57 | added 1.1 | |
| /service.xsd | +47 | added 1.1 | |
| /jbi.xsd | +265 | added 1.1 | |
| +548 | |||
Initial revision of a maven plugin that allow you to create a JBI installer from a maven project, only the start but can be used to create installers.
servicemix/tooling/maven-jbi-plugin
plugin.jelly added at 1.1
diff -N plugin.jelly --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ plugin.jelly 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!--
+/*
+ * Copyright 2001-2004 Unity Systems
+ *
+ * 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.
+ */
+ -->
+<project xmlns:j="jelly:core"
+ xmlns:ant="jelly:ant"
+ xmlns:license="license"
+ xmlns:util="jelly:util"
+ xmlns:artifact="artifact">
+<goal name="jbi:generateInstaller" prereqs="jar:jar" description="Generates a JBI installer">
+ <ant:mkdir dir="${jbi.build.dir}/lib"/>
+ <ant:mkdir dir="${jbi.build.dir}/META-INF"/>
+ <j:file name="${jbi.build.dir}/META-INF/jbi.xml" prettyPrint="true"
+ outputMode="xml" escapeText="false">
+ <j:import file="${jbi.xml.template}" inherit="true" />
+ </j:file>
+ <ant:copy file="${plugin.resources}/jbi.xsd" todir="${jbi.build.dir}"/>
+ <ant:copy file="${plugin.resources}/service.xsd" todir="${jbi.build.dir}"/>
+ <ant:jar destfile="${maven.build.dir}/${maven.final.name}-jbi-installer.jar" basedir="${jbi.build.dir}">
+ <include name="**/*"/>
+ </ant:jar>
+ </goal>
+</project>
servicemix/tooling/maven-jbi-plugin
test.xml added at 1.1
diff -N test.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test.xml 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?> + +<jbi xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns="http://java.sun.com/xml/ns/jbi version="1.0" schemaLocation="http://java.sun.com/xml/ns/jbi ./jbi.xsd"> + <component type="service-engine"> + <identification> + <name>Provider JBI Services</name> + <description>JBI Service Engines and Components for the Providers</description> + </identification> + <component-class-name description="Component Implementation">com.unity.provider.jbi.ProviderComponent</component-class-name> + <component-class-path> + <path-element>lib/unity-provider-jbi-2.2.1-DEV.jar</path-element> + <path-element>lib/jmxri-1.2.1.jar</path-element> + <path-element>lib/commons-logging-1.0.jar</path-element> + <path-element>lib/commons-collections-3.0.jar</path-element> + <path-element>lib/servicemix-1.0-M1.jar</path-element> + <path-element>lib/xmlunit-1.0.jar</path-element> + <path-element>lib/xalan-2.6.0.jar</path-element> + <path-element>lib/xercesImpl-2.6.2.jar</path-element> + <path-element>lib/xmlParserAPIs-2.6.2.jar</path-element> + <path-element>lib/xbean-1.0.3.jar</path-element> + <path-element>lib/aqapi13-9.2.0.jar</path-element> + <path-element>lib/ojdbc14-9.2.0.jar</path-element> + <path-element>lib/unity-metadata-2.2.1-DEV.jar</path-element> + <path-element>lib/unity-infrastructure-2.2.1-DEV.jar</path-element> + <path-element>lib/unity-provider-2.2.1-DEV.jar</path-element> + <path-element>lib/unity-util-2.2.1-DEV.jar</path-element> + <path-element>lib/unity-event-2.2.1-DEV.jar</path-element> + <path-element>lib/xjavadoc-1.0.3.jar</path-element> + <path-element>lib/xdoclet-1.2.jar</path-element> + <path-element>lib/xdoclet-ejb-module-1.2.jar</path-element> + <path-element>lib/xdoclet-jmx-module-1.2.jar</path-element> + <path-element>lib/xdoclet-jboss-module-1.2.jar</path-element> + <path-element>lib/xdoclet-web-module-1.2.jar</path-element> + <path-element>lib/j2ee-1.3.jar</path-element> + </component-class-path> + <bootstrap-class-name>com.unity.provider.jbi.ProviderBootstrap</bootstrap-class-name> + <bootstrap-class-path> + <path-element>lib/unity-provider-jbi-2.2.1-DEV.jar</path-element> + </bootstrap-class-path> + </component> +</jbi>
\ No newline at end of file
servicemix/tooling/maven-jbi-plugin
.cvsignore added at 1.1
diff -N .cvsignore --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .cvsignore 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,2 @@
+target +.project
servicemix/tooling/maven-jbi-plugin
project.properties added at 1.1
diff -N project.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ project.properties 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,19 @@
+# ------------------------------------------------------------------- +# Copyright 2001-2004 The Apache Software Foundation. +# +# 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. +# ------------------------------------------------------------------- + +# ------------------------------------------------------------------- +# P R O J E C T P R O P E R T I E S +# -------------------------------------------------------------------
servicemix/tooling/maven-jbi-plugin
project.xml added at 1.1
diff -N project.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ project.xml 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * 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.
+ */
+ -->
+
+<project>
+ <pomVersion>3</pomVersion>
+ <id>maven-jbi-plugin</id>
+ <name>Maven JBI Plugin</name>
+ <currentVersion>0.1</currentVersion>
+ <description>JBI Plugin for Maven</description>
+ <shortDescription>JBI Plugin for Maven</shortDescription>
+ <developers>
+ <developer>
+ <name>Philip Dodds</name>
+ <id>pdodds</id>
+ <email>Unity Systems</email>
+ </developer>
+ </developers>
+ <dependencies/>
+ <build>
+ <!-- This section is compulsory -->
+ <resources>
+ <resource>
+ <directory>${basedir}/src/plugin-resources</directory>
+ <targetPath>plugin-resources</targetPath>
+ </resource>
+ <resource>
+ <directory>${basedir}</directory>
+ <includes>
+ <include>plugin.jelly</include>
+ <include>plugin.properties</include>
+ <include>project.properties</include>
+ <include>project.xml</include>
+ </includes>
+ </resource>
+ </resources>
+ </build>
+</project>
servicemix/tooling/maven-jbi-plugin
plugin.properties added at 1.1
diff -N plugin.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ plugin.properties 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,26 @@
+# -------------------------------------------------------------------
+# Copyright 2001-2004 The Apache Software Foundation.
+#
+# 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.
+# -------------------------------------------------------------------
+
+# -------------------------------------------------------------------
+# P L U G I N P R O P E R T I E S
+# -------------------------------------------------------------------
+# JBoss SAR plugin
+# -------------------------------------------------------------------
+
+# Location of where SAR sources (non-java) are located.
+jbi.build.dir=${maven.build.dir}/jbi
+jbi.xml.template=${plugin.resources}/jbi.jsl
+
servicemix/tooling/maven-jbi-plugin/src/plugin-resources
jbi.jsl added at 1.1
diff -N jbi.jsl --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ jbi.jsl 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<j:whitespace xmlns:j="jelly:core" xmlns:util="jelly:util" xmlns:x="jelly:xml"
+ xmlns:ant="jelly:ant" xmlns="dummy" trim="true">
+<x:element URI="http://java.sun.com/xml/ns/jbi" name="jbi">
+ <x:attribute name="xmlns" trim="true">
+ http://java.sun.com/xml/ns/jbi
+ </x:attribute>
+ <x:attribute name="xmlns:xsi" trim="true">
+ http://www.w3.org/2001/XMLSchema-instance
+ </x:attribute>
+ <x:attribute name="xsi:schemaLocation" trim="true">
+ http://java.sun.com/xml/ns/jbi
+ </x:attribute>
+ <x:attribute name="version" trim="true">
+ 1.0
+ </x:attribute>
+ <component
+ type="service-engine">
+ <identification>
+ <name>${pom.artifactId}</name>
+ <description>${pom.description}
+ </description>
+ </identification>
+ <j:set var="componentName" value="${jbi.component.class.name}"/>
+ <j:set var="componentJar" value="lib/${maven.final.name}.jar"/>
+ <j:if test="${componentName!=null}">
+ <component-class-name description="Component Implementation" >${componentName}</component-class-name>
+ <component-class-path>
+ <ant:copy
+ file="${maven.build.dir}/${maven.final.name}.jar"
+ todir="${jbi.build.dir}/lib" />
+ <path-element>${componentJar}</path-element>
+ <j:forEach var="lib" items="${pom.artifacts}">
+ <j:if test="${lib.getProperty('jbi.bundle')=='true' and lib.type=='jar'}">
+ <ant:copy
+ file="${pom.getDependencyPath(lib.dependency.getId())}"
+ todir="${jbi.build.dir}/lib" />
+ <j:set var="libname" value="lib/${lib.file.name}"/>
+ <path-element>${libname}</path-element>
+ </j:if>
+ </j:forEach>
+ </component-class-path>
+ </j:if>
+ <j:set var="bootstrapName" value="${jbi.bootstrap.class.name}"/>
+ <j:if test="${bootstrapName!=null}">
+ <bootstrap-class-name>${bootstrapName}</bootstrap-class-name>
+ <bootstrap-class-path>
+ <ant:copy
+ file="${maven.build.dir}/${maven.final.name}.jar"
+ todir="${jbi.build.dir}/lib" />
+ <path-element>${componentJar}</path-element>
+ </bootstrap-class-path>
+ </j:if>
+ <!--<shared-library>SunWSDLSharedLibrary</shared-library>-->
+ </component>
+</x:element>
+</j:whitespace>
\ No newline at end of file
servicemix/tooling/maven-jbi-plugin/src/plugin-resources
service.xsd added at 1.1
diff -N service.xsd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ service.xsd 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sun.com/ns/jbi/engines/transformation/deploy/service-config" targetNamespace="http://www.sun.com/ns/jbi/engines/transformation/deploy/service-config" elementFormDefault="qualified"> + <xsd:complexType name="qnameType"> + <xsd:sequence> + <xsd:element name="namespace-uri" type="xsd:anyURI"/> + <xsd:element name="local-part" type="xsd:NCName"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="service-list"> + <xsd:complexType> + <xsd:sequence> + <!-- Service Metadata Information --> + <xsd:element name="service"> + <xsd:complexType> + <xsd:sequence> + <!-- Service NAme in QName format --> + <xsd:element name="service-name" type="qnameType"/> + <!-- endpoint-name Name of the Jbi local endpoint for this service --> + <xsd:element name="endpoint-name" type="xsd:string"/> + <!-- service-description Service Description --> + <xsd:element name="service-description" type="xsd:string" minOccurs="0"/> + <!-- create-cache - Whether to catche the xml stylesheet or not.--> + <xsd:element name="create-cache" type="xsd:string"/> + <!-- service-id - Unique ID representing this service.--> + <xsd:element name="service-id" type="xsd:string"/> + <!-- Elements for Non XML data parsing --> + <!-- column-separator - This is the column separator for non XML data. It should be a character generally not found in + the input data. The default value can be a semi colon (;)--> + <xsd:element name="column-separator" type="xsd:string" default=";" minOccurs="0"/> + <!-- first-row-col-headers - This element decides if the first row in the input data should be trated asColumn Headers. --> + <xsd:element name="first-row-col-headers" type="xsd:string" minOccurs="0"/> + <!-- column-headers Optional element. If present denotes that following column headers should be used for input data. --> + <xsd:element name="column-headers" minOccurs="0"> + <xsd:complexType> + <xsd:sequence> + <!-- column-header Name of the column --> + <xsd:element name="column-header" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> +</xsd:schema>
servicemix/tooling/maven-jbi-plugin/src/plugin-resources
jbi.xsd added at 1.1
diff -N jbi.xsd --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ jbi.xsd 8 Aug 2005 00:46:34 -0000 1.1 @@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://java.sun.com/xml/ns/jbi" xmlns:this="http://java.sun.com/xml/ns/jbi"> + <xs:element name="jbi"> + <xs:complexType> + <xs:choice> + <xs:element ref="this:component"/> + <xs:element ref="this:service-assembly"/> + <xs:group ref="this:shared-library"/> + <xs:element ref="this:services"/> + </xs:choice> + <xs:attribute name="version" use="required" type="xs:decimal"/> + </xs:complexType> + </xs:element> + <xs:element name="component"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:identification"/> + <xs:element ref="this:component-class-name"/> + <xs:element ref="this:component-class-path"/> + <xs:element ref="this:bootstrap-class-name"/> + <xs:element ref="this:bootstrap-class-path"/> + <xs:group minOccurs="0" maxOccurs="unbounded" ref="this:shared-library-list"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="service-engine"/> + <xs:enumeration value="binding-component"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="component-class-loader-delegation"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="parent-first"/> + <xs:enumeration value="self-first"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="bootstrap-class-loader-delegation"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="parent-first"/> + <xs:enumeration value="self-first"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="component-class-name"> + <xs:complexType mixed="true"> + <xs:attribute name="description"/> + </xs:complexType> + </xs:element> + <xs:element name="component-class-path" type="this:class-path"/> + <xs:element name="bootstrap-class-name" type="xs:string"/> + <xs:element name="bootstrap-class-path" type="this:class-path"/> + <xs:group name="shared-library"> + <xs:sequence> + <xs:element name="shared-library"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:identification"/> + <xs:element ref="this:shared-library-class-path"/> + </xs:sequence> + <xs:attribute name="class-loader-delegation"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="parent-first"/> + <xs:enumeration value="self-first"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="version"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:element name="shared-library-class-path" type="this:class-path"/> + <xs:group name="shared-library-list"> + <xs:sequence> + <xs:element name="shared-library"> + <xs:complexType mixed="true"> + <xs:attribute name="version"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:element name="service-assembly"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:identification"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="this:service-unit"/> + <xs:element minOccurs="0" ref="this:connections"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="service-unit"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:identification"/> + <xs:element ref="this:target"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="target"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:artifacts-zip"/> + <xs:element ref="this:component-name"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="artifacts-zip" type="xs:string"/> + <xs:element name="component-name" type="xs:string"/> + <xs:element name="identification"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:name"/> + <xs:element ref="this:description"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="name" type="xs:string"/> + <xs:element name="description" type="xs:string"/> + <xs:complexType name="class-path"> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="this:path-element"/> + </xs:sequence> + </xs:complexType> + <xs:element name="path-element" type="xs:string"/> + <xs:element name="connections"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="this:connection"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="connection"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:consumer"/> + <xs:element ref="this:provider"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="consumer"> + <xs:complexType> + <xs:attribute name="interface-name" type="xs:QName"/> + <xs:attribute name="service-name" type="xs:QName"/> + <xs:attribute name="endpoint-name"/> + </xs:complexType> + </xs:element> + <xs:element name="provider"> + <xs:complexType> + <xs:attribute name="service-name" use="required" type="xs:QName"/> + <xs:attribute name="endpoint-name" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="services"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="this:provides"/> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="this:consumes"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="binding-component" use="required" type="xs:boolean"/> + </xs:complexType> + </xs:element> + <xs:element name="provides"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="this:requires-capabilities"/> + <xs:element minOccurs="0" ref="this:provides-capabilities"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="interface-name" use="required" type="xs:QName"/> + <xs:attribute name="service-name" use="required" type="xs:QName"/> + <xs:attribute name="endpoint-name" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="consumes"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="this:requires-capabilities"/> + <xs:element minOccurs="0" ref="this:provides-capabilities"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="interface-name" use="required" type="xs:QName"/> + <xs:attribute name="service-name" type="xs:QName"/> + <xs:attribute name="endpoint-name"/> + <xs:attribute name="link-type"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="standard"/> + <xs:enumeration value="hard"/> + <xs:enumeration value="soft"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="requires-capabilities"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="this:capability"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="provides-capabilities"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="this:capability"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="capability"> + <xs:complexType> + <xs:sequence> + <xs:element ref="this:value"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="value"> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema>
