]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-3441: Added final support in the Services core for tenant specifc document...
authorRichard Millet <richard.millet@berkeley.edu>
Fri, 17 Jun 2011 05:23:00 +0000 (05:23 +0000)
committerRichard Millet <richard.millet@berkeley.edu>
Fri, 17 Jun 2011 05:23:00 +0000 (05:23 +0000)
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/build.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/pom.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/META-INF/MANIFEST.MF [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/core-types-contrib.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/deployment-fragment.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/ecm-types-contrib.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/layouts-contrib.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/life-cycle-contrib.xml [new file with mode: 0644]
services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/schemas/collectionobjects_naturalhistory.xsd [new file with mode: 0644]

diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/build.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/build.xml
new file mode 100644 (file)
index 0000000..6f38373
--- /dev/null
@@ -0,0 +1,151 @@
+\r
+<project name="nuxeo-platform-collectionobject-hearst" default="package" basedir=".">\r
+    <description>\r
+        Collectionobject nuxeo document type for the Hearst tenant\r
+    </description>\r
+    <!-- set global properties for this build -->\r
+    <property name="services.trunk" value="../../../.."/>\r
+    <!-- environment should be declared before reading build.properties -->\r
+    <property environment="env" />\r
+    <property file="${services.trunk}/build.properties" />\r
+    <property name="mvn.opts" value="" />\r
+    <property name="src" location="src"/>\r
+    <property name="build" location="build"/>\r
+    <property name="dist"  location="dist"/>\r
+    <property name="nuxeo.collectionobject.jar"\r
+        value="org.collectionspace.services.collectionobject.CollectionObjectTenant2.nuxeo-${cspace.release}.jar"/>\r
+    <property name="nuxeo.collectionobject.jars.all"\r
+        value="org.collectionspace.services.collectionobject.CollectionObjectTenant2.nuxeo-*.jar"/>\r
+\r
+    <condition property="osfamily-unix">\r
+        <os family="unix" />\r
+    </condition>\r
+    <condition property="osfamily-windows">\r
+        <os family="windows" />\r
+    </condition>\r
+\r
+    <target name="init" >\r
+        <!-- Create the time stamp -->\r
+        <tstamp/>\r
+        <!-- Create the build directory structure used by compile -->\r
+        <mkdir dir="${build}"/>\r
+    </target>\r
+\r
+    <target name="package" depends="package-unix,package-windows"\r
+        description="Package CollectionSpace Services" />\r
+    <target name="package-unix" if="osfamily-unix">\r
+        <exec executable="mvn" failonerror="true">\r
+            <arg value="package" />\r
+            <arg value="-Dmaven.test.skip=true" />\r
+            <arg value="-f" />\r
+            <arg value="${basedir}/pom.xml" />\r
+            <arg value="-N" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+    <target name="package-windows" if="osfamily-windows">\r
+        <exec executable="cmd" failonerror="true">\r
+            <arg value="/c" />\r
+            <arg value="mvn.bat" />\r
+            <arg value="package" />\r
+            <arg value="-Dmaven.test.skip=true" />\r
+            <arg value="-f" />\r
+            <arg value="${basedir}/pom.xml" />\r
+            <arg value="-N" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+\r
+    <target name="install" depends="install-unix,install-windows"\r
+  description="Install" />\r
+    <target name="install-unix" if="osfamily-unix">\r
+        <exec executable="mvn" failonerror="true">\r
+            <arg value="install" />\r
+            <arg value="-Dmaven.test.skip=true" />\r
+            <arg value="-f" />\r
+            <arg value="${basedir}/pom.xml" />\r
+            <arg value="-N" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+    <target name="install-windows" if="osfamily-windows">\r
+        <exec executable="cmd" failonerror="true">\r
+            <arg value="/c" />\r
+            <arg value="mvn.bat" />\r
+            <arg value="install" />\r
+            <arg value="-Dmaven.test.skip=true" />\r
+            <arg value="-f" />\r
+            <arg value="${basedir}/pom.xml" />\r
+            <arg value="-N" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+    \r
+    <target name="clean" depends="clean-unix,clean-windows"\r
+        description="Delete target directories" >\r
+        <delete dir="${build}"/>\r
+    </target>\r
+    <target name="clean-unix" if="osfamily-unix">\r
+        <exec executable="mvn" failonerror="true">\r
+            <arg value="clean" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+    <target name="clean-windows" if="osfamily-windows">\r
+        <exec executable="cmd" failonerror="true">\r
+            <arg value="/c" />\r
+            <arg value="mvn.bat" />\r
+            <arg value="clean" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+\r
+    <target name="test" depends="test-unix,test-windows" description="Run tests" />\r
+    <target name="test-unix" if="osfamily-unix">\r
+        <exec executable="mvn" failonerror="true">\r
+            <arg value="test" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+    <target name="test-windows" if="osfamily-windows">\r
+        <exec executable="cmd" failonerror="true">\r
+            <arg value="/c" />\r
+            <arg value="mvn.bat" />\r
+            <arg value="test" />\r
+            <arg value="${mvn.opts}" />\r
+        </exec>\r
+    </target>\r
+\r
+    <target name="deploy" depends="install"\r
+        description="deploy collectionobject doctype in ${jboss.server.nuxeo}">\r
+        <copy file="${basedir}/target/${nuxeo.collectionobject.jar}"\r
+        todir="${jboss.deploy.nuxeo.plugins}"/>\r
+    </target>\r
+\r
+    <target name="undeploy"\r
+        description="undeploy collectionobject doctype from ${jboss.server.nuxeo}">\r
+        <delete>\r
+            <fileset dir="${jboss.deploy.nuxeo.plugins}">\r
+                <include name="${nuxeo.collectionobject.jars.all}"/>\r
+            </fileset>\r
+            <!-- Legacy deployment location through release 0.6 -->\r
+            <fileset dir="${jboss.deploy.nuxeo.system}">\r
+                <include name="${nuxeo.collectionobject.jars.all}"/>\r
+            </fileset>\r
+        </delete>\r
+    </target>\r
+\r
+    <target name="dist"\r
+       description="generate distribution for collectionobject doctype" depends="package">\r
+        <copy todir="${services.trunk}/${dist.deploy.nuxeo.plugins}">\r
+            <fileset file="${basedir}/target/${nuxeo.collectionobject.jar}"/>\r
+        </copy>\r
+    </target>\r
+\r
+    <target name="dist_installer"\r
+       description="Creates an installer distribution for CollectionObject doctype" depends="package">\r
+        <copy todir="${services.trunk}/${dist.installer.services}/collectionobject/nuxeo">\r
+            <fileset file="${basedir}/target/${nuxeo.collectionobject.jar}"/>\r
+        </copy>\r
+    </target>\r
+</project>\r
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/pom.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/pom.xml
new file mode 100644 (file)
index 0000000..af484ac
--- /dev/null
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <groupId>org.collectionspace.services</groupId>
+        <artifactId>org.collectionspace.services.collectionobject.3rdparty</artifactId>
+        <version>1.8-SNAPSHOT</version>
+    </parent>
+    
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.collectionspace.services</groupId>
+    <artifactId>org.collectionspace.services.collectionobject.CollectionObjectTenant2.nuxeo</artifactId>
+    <name>services.collectionobject.CollectionObjectTenant2.nuxeo</name>
+    <packaging>jar</packaging>
+    <description>
+        CollectionObject Nuxeo document type for Tenant ID = "1"
+    </description>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestFile> src/main/resources/META-INF/MANIFEST.MF </manifestFile>
+                        <manifestEntries>
+                            <Bundle-Version>${eclipseVersion}</Bundle-Version>
+                            <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
+                        </manifestEntries>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    
+</project>
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/META-INF/MANIFEST.MF b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..cd9e64e
--- /dev/null
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0 \r
+Bundle-ManifestVersion: 1 \r
+Bundle-Name: org.collectionspace.collectionobjecttenant2\r
+Bundle-SymbolicName: org.collectionspace.collectionobjecttenant2;singleton:=true \r
+Bundle-Version: 1.0.0\r
+Bundle-Localization: plugin\r
+Bundle-Vendor: Nuxeo \r
+Require-Bundle: org.nuxeo.runtime, \r
+ org.nuxeo.ecm.core.api,\r
+ org.nuxeo.ecm.core,\r
+ org.nuxeo.ecm.webapp.core,\r
+ org.collectionspace.collectionspace_core,\r
+ org.collectionspace.collectionobject\r
+Provide-Package: org.collectionspace.collectionobjecttenant2\r
+Nuxeo-Component: OSGI-INF/core-types-contrib.xml,\r
+ OSGI-INF/life-cycle-contrib.xml,\r
+ OSGI-INF/ecm-types-contrib.xml,\r
+ OSGI-INF/layouts-contrib.xml\r
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/core-types-contrib.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/core-types-contrib.xml
new file mode 100644 (file)
index 0000000..cb535a7
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<component name="org.collectionspace.CollectionObjectTenant2.coreTypes">
+    <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
+        <schema name="collectionobjects_naturalhistory" prefix="collectionobjects_naturalhistory" src="schemas/collectionobjects_naturalhistory.xsd"/>
+    </extension>
+       <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
+        <doctype name="CollectionObjectTenant2" extends="CollectionObject">
+            <schema name="common"/>
+            <schema name="dublincore"/>
+            <schema name="collectionspace_core"/>
+            <schema name="collectionobjects_common"/>
+                       <schema name="collectionobjects_naturalhistory"/>
+        </doctype>
+    </extension>
+</component>
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/deployment-fragment.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/deployment-fragment.xml
new file mode 100644 (file)
index 0000000..06404c6
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>\r
+<fragment>\r
+\r
+  <extension target="application#MODULE">\r
+    <module>\r
+      <java>${bundle.fileName}</java>\r
+    </module>\r
+  </extension>\r
+\r
+</fragment>\r
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/ecm-types-contrib.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/ecm-types-contrib.xml
new file mode 100644 (file)
index 0000000..736cb14
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<component name="org.collectionspace.CollectionObjectTenant2.ecm.types">
+  <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
+  
+    <type id="CollectionObjectTenant2" coretype="CollectionObjectTenant2">
+      <label>org.collectionspace.CollectionObjectTenant2</label>
+      <!--icon>/icons/file.gif</icon-->
+      <default-view>view_documents</default-view>
+
+      <layouts mode="any">
+        <layout>heading</layout>
+        <layout>collectionspace_core</layout>
+        <layout>CollectionObjectTenant2</layout>
+      </layouts>        
+    </type>
+
+    <type id="Folder" coretype="Folder">
+      <subtypes>
+        <type>"CollectionObjectTenant2"</type>
+      </subtypes>
+    </type>
+    
+    <type id="Workspace" coretype="Workspace">
+      <subtypes>
+        <type>"CollectionObjectTenant2"</type>
+      </subtypes>
+    </type>
+  </extension>
+</component>
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/layouts-contrib.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/layouts-contrib.xml
new file mode 100644 (file)
index 0000000..b325930
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<component name="org.collectionspace.CollectionObjectTenant2.layouts.webapp">
+
+  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
+    point="layouts">
+
+    <layout name="CollectionObjectTenant2">
+       <!--
+      <templates>
+        <template mode="any">/layouts/layout_default_template.xhtml</template>
+      </templates>
+      <rows>
+        <row><widget>exampleField</widget></row>
+      </rows>
+
+      <widget name="exampleField" type="text">
+        <labels>
+          <label mode="any">exampleField</label>
+        </labels>
+        <translated>true</translated>
+        <fields>
+          <field schema="collectionobjects_naturalhistory">exampleField</field>
+        </fields>
+        <properties widgetMode="edit">
+          <property name="styleClass">dataInputText</property>
+        </properties>
+      </widget>
+      -->
+    </layout>
+  </extension>
+</component>
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/life-cycle-contrib.xml b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/OSGI-INF/life-cycle-contrib.xml
new file mode 100644 (file)
index 0000000..12688b1
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<component name="org.collectionspace.CollectionObjectTenant2.ecm.platform.LifeCycleManagerExtensions">
+
+  <extension target="org.nuxeo.ecm.core.lifecycle.LifeCycleService"
+             point="types">
+    <types>
+      <type name="CollectionObjectTenant2">default</type>
+    </types>
+  </extension>
+
+</component>
diff --git a/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/schemas/collectionobjects_naturalhistory.xsd b/services/collectionobject/3rdparty/nuxeo-platform-collectionobject-hearst/src/main/resources/schemas/collectionobjects_naturalhistory.xsd
new file mode 100644 (file)
index 0000000..4011811
--- /dev/null
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+\r
+<!--\r
+  CollectionObject schema (XSD)\r
+  \r
+  Entity  : CollectionObject\r
+  Part    : Domain - Natural History (example)\r
+  Used for: Nuxeo EP core document type\r
+  \r
+  $LastChangedRevision: 4929 $\r
+  $LastChangedDate: 2011-06-07 13:26:32 -0700 (Tue, 07 Jun 2011) $\r
+-->\r
+\r
+<xs:schema \r
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
+  xmlns:ns="http://collectionspace.org/services/collectionobject/domain/naturalhistory"\r
+  xmlns="http://collectionspace.org/services/collectionobject/domain/naturalhistory"\r
+  targetNamespace="http://collectionspace.org/services/collectionobject/domain/naturalhistory"\r
+  version="0.1">\r
+\r
+  <!-- used for testing\r
+  <xs:element name="nh-string" type="xs:string" />\r
+  <xs:element name="nh-int" type="xs:int"/>\r
+  <xs:element name="nh-long" type="xs:long"/>\r
+  <xs:element name="nh-date" type="xs:dateTime"/>\r
+  <xs:element name="nh-note" type="xs:string"/>\r
+  -->\r
+\r
+  <!--  These items are being moved to common\r
+  <xs:element name="fieldCollector" type="xs:string"/>\r
+  <xs:element name="fieldCollectionDate" type="xs:string"/>\r
+  <xs:element name="fieldLocPlace" type="xs:string"/>\r
+  <xs:element name="catalogDate" type="xs:string"/>\r
+  -->\r
+\r
+  <xs:element name="labelHeader" type="xs:string"/>\r
+  <xs:element name="labelFooter" type="xs:string"/>\r
+\r
+  <xs:element name="fieldLocVerbatim" type="xs:string"/>\r
+  <xs:element name="fieldCollectionDateEarliest" type="xs:string"/>\r
+  <xs:element name="fieldCollectionDateLatest" type="xs:string"/>\r
+  <xs:element name="fieldLocLatDecimal" type="xs:string"/>\r
+  <xs:element name="fieldLocLongDecimal" type="xs:string"/>\r
+  <xs:element name="fieldLocElevation" type="xs:string"/>\r
+\r
+  <!-- These will become contolled lists -->\r
+  <xs:element name="fieldLocGeodeticDatum" type="xs:string"/>\r
+  <xs:element name="fieldLocCoordinateSystem" type="xs:string"/>\r
+  <xs:element name="fieldLocCounty" type="xs:string"/>\r
+  <xs:element name="fieldLocState" type="xs:string"/>\r
+  <xs:element name="fieldLocCountry" type="xs:string"/>\r
+  <xs:element name="fieldLocHigherGeography" type="xs:string"/>\r
+\r
+  <xs:element name="taxonomicIdentGroupList" type="taxonomicIdentGroupList"/>\r
+  <xs:element name="typeSpecimenGroupList" type="typeSpecimenGroupList"/>\r
+  <xs:element name="fieldCollElevationGroupList" type="fieldCollElevationGroupList"/>\r
+  <xs:element name="fieldCollDepthGroupList" type="fieldCollDepthGroupList"/>\r
+  <xs:element name="associatedTaxaGroupList" type="associatedTaxaGroupList"/>\r
+\r
+       <xs:complexType name="taxonomicIdentGroupList">\r
+                       <xs:sequence>\r
+                                       <xs:element name="taxonomicIdentGroup" type="taxonomicIdentGroup" minOccurs="0"\r
+                                                       maxOccurs="unbounded"/>\r
+                       </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="taxonomicIdentGroup">\r
+                       <xs:sequence>\r
+                                       <xs:element name="taxon" type="xs:string"/>\r
+                                       <xs:element name="qualifier" type="xs:string"/>\r
+                                       <xs:element name="identBy" type="xs:string"/>\r
+                                       <xs:element name="identDate" type="xs:string"/>\r
+                                       <xs:element name="institution" type="xs:string"/>\r
+                                       <xs:element name="identKind" type="xs:string"/>\r
+                                       <xs:element name="reference" type="xs:string"/>\r
+                                       <xs:element name="refPage" type="xs:string"/>\r
+                                       <xs:element name="notes" type="xs:string"/>\r
+                        </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="typeSpecimenGroupList">\r
+                       <xs:sequence>\r
+                                       <xs:element name="typeSpecimenGroup" type="typeSpecimenGroup" minOccurs="0"\r
+                                                       maxOccurs="unbounded"/>\r
+                       </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="typeSpecimenGroup">\r
+                       <xs:sequence>\r
+                                       <xs:element name="kindOfType" type="xs:string"/>\r
+                                       <xs:element name="reference" type="xs:string"/>\r
+                                       <xs:element name="refPage" type="xs:string"/>\r
+                                       <xs:element name="institution" type="xs:string"/>\r
+                                       <xs:element name="institutionType" type="xs:string"/>\r
+                                       <xs:element name="notes" type="xs:string"/>\r
+                        </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="fieldCollElevationGroupList">\r
+                       <xs:sequence>\r
+                                       <xs:element name="fieldCollElevationGroup" type="fieldCollElevationGroup" minOccurs="0"\r
+                                                       maxOccurs="unbounded"/>\r
+                       </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="fieldCollElevationGroup">\r
+                       <xs:sequence>\r
+                                       <xs:element name="minElevation" type="xs:integer"/>\r
+                                       <xs:element name="maxElevation" type="xs:integer"/>\r
+                                       <xs:element name="units" type="xs:string"/>\r
+                                       <xs:element name="qualifier" type="xs:string"/>\r
+                                       <xs:element name="notes" type="xs:string"/>\r
+                        </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="fieldCollDepthGroupList">\r
+                       <xs:sequence>\r
+                                       <xs:element name="fieldCollDepthGroup" type="fieldCollDepthGroup" minOccurs="0"\r
+                                                       maxOccurs="unbounded"/>\r
+                       </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="fieldCollDepthGroup">\r
+                       <xs:sequence>\r
+                                       <xs:element name="minDepth" type="xs:integer"/>\r
+                                       <xs:element name="maxDepth" type="xs:integer"/>\r
+                                       <xs:element name="units" type="xs:string"/>\r
+                                       <xs:element name="qualifier" type="xs:string"/>\r
+                                       <xs:element name="notes" type="xs:string"/>\r
+                        </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="associatedTaxaGroupList">\r
+                       <xs:sequence>\r
+                                       <xs:element name="associatedTaxaGroup" type="associatedTaxaGroup" minOccurs="0"\r
+                                                       maxOccurs="unbounded"/>\r
+                       </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="associatedTaxaGroup">\r
+                       <xs:sequence>\r
+                                       <xs:element name="taxon" type="xs:string"/>\r
+                                       <xs:element name="commonName" type="xs:integer"/>\r
+                                       <xs:element name="interaction" type="xs:integer"/>\r
+                        </xs:sequence>\r
+       </xs:complexType>\r
+\r
+</xs:schema>\r