]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-2927: Added 23 repeatable groups to the CollectionObject schema, in the servic...
authorAron Roberts <aron@socrates.berkeley.edu>
Thu, 9 Dec 2010 21:35:22 +0000 (21:35 +0000)
committerAron Roberts <aron@socrates.berkeley.edu>
Thu, 9 Dec 2010 21:35:22 +0000 (21:35 +0000)
28 files changed:
services/IntegrationTests/src/test/java/org/collectionspace/services/IntegrationTests/test/CollectionSpaceIntegrationTest.java
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/cspace-2242-first-value-instance-blank.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/cspace-2242-first-value-instance-nonblank.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/nh-collectionobject.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/repfield_whitesp1.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/repfield_whitesp2.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/repfield_whitesp3.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/repfield_whitesp4.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/testCambridge-update.xml
services/IntegrationTests/src/test/resources/test-data/xmlreplay/collectionobject/testCambridge.xml
services/PerformanceTests/src/test/java/org/collectionspace/services/PerformanceTests/test/CollectionSpacePerformanceTest.java
services/collectionobject/3rdparty/nuxeo-platform-cs-collectionobject/src/main/resources/schemas/collectionobjects_common.xsd
services/collectionobject/client/src/test/java/org/collectionspace/services/client/test/CollectionObjectAuthRefsTest.java
services/collectionobject/client/src/test/java/org/collectionspace/services/client/test/CollectionObjectSearchTest.java
services/collectionobject/client/src/test/java/org/collectionspace/services/client/test/CollectionObjectServiceTest.java
services/collectionobject/client/src/test/resources/test-data/cspace-2242-first-value-instance-blank.xml
services/collectionobject/client/src/test/resources/test-data/cspace-2242-first-value-instance-nonblank.xml
services/collectionobject/client/src/test/resources/test-data/cspace-2779-utf-8-create.xml
services/collectionobject/client/src/test/resources/test-data/repfield_whitesp1.xml
services/collectionobject/client/src/test/resources/test-data/repfield_whitesp2.xml
services/collectionobject/client/src/test/resources/test-data/repfield_whitesp3.xml
services/collectionobject/client/src/test/resources/test-data/repfield_whitesp4.xml
services/collectionobject/client/src/test/resources/test-data/testCambridge.xml
services/collectionobject/jaxb/src/main/java/org/collectionspace/services/CollectionObjectListItemJAXBSchema.java
services/collectionobject/jaxb/src/main/resources/collectionobjects_common.xsd
services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/nuxeo/CollectionObjectDocumentModelHandler.java
services/common/src/main/config/services/tenant-bindings.xml
services/security/client/src/test/java/org/collectionspace/services/security/client/test/AuthenticationServiceTest.java

index 03f39e9607555986223f749efa47fb1d20a06fd5..856e3e5c6fe0324603b2ef75cf3eb9d44df31b8d 100755 (executable)
@@ -27,6 +27,7 @@
 package org.collectionspace.services.IntegrationTests.test;\r
 \r
 import java.util.ArrayList;\r
+import java.util.List;\r
 \r
 import javax.ws.rs.core.MultivaluedMap;\r
 import javax.ws.rs.core.Response;\r
@@ -34,6 +35,8 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;\r
 \r
 import org.collectionspace.services.collectionobject.CollectionobjectsCommon;\r
+import org.collectionspace.services.collectionobject.TitleGroup;\r
+import org.collectionspace.services.collectionobject.TitleGroupList;\r
 import org.collectionspace.services.intake.IntakesCommon;\r
 import org.collectionspace.services.relation.RelationsCommon;\r
 import org.collectionspace.services.relation.RelationshipType;\r
@@ -71,7 +74,12 @@ public abstract class CollectionSpaceIntegrationTest {
        void fillCollectionObject(CollectionobjectsCommon co, String objectNumber,\r
                        String title) {\r
                co.setObjectNumber(objectNumber);\r
-               co.setTitle(title);\r
+                TitleGroupList titleGroupList = new TitleGroupList();\r
+                List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();\r
+                TitleGroup titleGroup = new TitleGroup();\r
+                titleGroup.setTitle(title);\r
+                titleGroups.add(titleGroup);\r
+                co.setTitleGroupList(titleGroupList);\r
        }\r
 \r
        /**\r
index c0ab86876ed1f7cf3150c73d97242a9e03ef5ce9..0be1c98f52c991619b4ae7b829551a39a2396ad2 100755 (executable)
@@ -12,7 +12,6 @@
     xsi:schemaLocation="http://collectionspace.org/services/collectionobject http://services.collectionspace.org/collectionobject/collectionobjects_common.xsd">
     <objectNumber>2</objectNumber>
     <comments>description</comments>
-    <title></title>
     <briefDescriptions>
         <!-- First value instance of this repeatable field is blank -->
         <briefDescription></briefDescription>
index a75c5847252d7fbb0943e856ff86ae91ed613aa2..51b35bef2b79210341d3e25e3dc61ca42b161f79 100755 (executable)
@@ -11,8 +11,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://collectionspace.org/services/collectionobject http://services.collectionspace.org/collectionobject/collectionobjects_common.xsd">
     <objectNumber>2</objectNumber>
-    <comments>description</comments>
-    <title></title>
+    <distinguishingFeatures>features</distinguishingFeatures>
     <briefDescriptions>
         <!-- First value instance of this repeatable field is non-blank -->
         <briefDescription>data</briefDescription>
index 06ed8577baaefd47c713a25379a3b2ea8c73760a..c8342a85a9625cf38c686ba38620517f93dcb055 100755 (executable)
@@ -29,7 +29,7 @@
 <responsibleDepartment>urn:org.collectionspace.services.department:Registrar</responsibleDepartment>\r
 <responsibleDepartment>urn:org.walkerart.department:Fine Art</responsibleDepartment>\r
 </responsibleDepartments>\r
-<title>atitle</title>\r
+<titleGroupList><titleGroup><title>title</title></titleGroup></titleGroupList>\r
 <age>\r
 </age>\r
 <dimensions>\r
index df977b5f2c4d72c082bdde29ff21c452b6a995b7..b639891b1ed7c054809f6cf67c87588c6fab4771 100755 (executable)
@@ -1,13 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <ns2:collectionobjects_common xmlns:ns2="http://collectionspace.org/services/collectionobject">
 <objectNumber>objectNumber</objectNumber>
-
-<otherNumber>XXX</otherNumber>
-<otherNumberType>otherNumberType</otherNumberType>
 <briefDescriptions> <briefDescription> briefDescription</briefDescription></briefDescriptions>
 <distinguishingFeatures>distFeatures</distinguishingFeatures>
 <numberOfObjects>numberOfObjects</numberOfObjects>
 <!-- test whitespace as first child node -->
 <responsibleDepartments> <responsibleDepartment> responsibleDept1</responsibleDepartment><responsibleDepartment>responsibleDept2</responsibleDepartment></responsibleDepartments>
-<title>title</title>
+<titleGroupList><titleGroup><title>title</title></titleGroup></titleGroupList>
 </ns2:collectionobjects_common> 
index 1917883d77013871b4b0f15e5c2591b001f9d8a9..1a2186437246901b54fba50555a399fe3d819d63 100755 (executable)
@@ -15,6 +15,4 @@
 <responsibleDepartment>responsibleDept1</responsibleDepartment>
 <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index ab44bf31424d8cbf3f6026299da1e3861c86c4f0..5c8a81b8c2383d24f631edefb79d7dc426cd31eb 100755 (executable)
@@ -18,6 +18,4 @@
 <responsibleDepartment> responsibleDept1</responsibleDepartment>
 <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index e8746eed1b4ec232949703c9405dbafc93104c69..a83be2855881e2edc5614b16c64af0df4701b062 100755 (executable)
@@ -15,6 +15,4 @@
     <responsibleDepartment>responsibleDept1</responsibleDepartment>
     <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index 81aeadcfcaeb92feb71225960dd53d940fe39433..905ae0428e691e64cb6557fbda410d10d5ded06e 100755 (executable)
@@ -3,7 +3,6 @@
   <objectNumber>objectNumber</objectNumber>
   <otherNumber>XXX</otherNumber>
   <otherNumberType>otherNumberType</otherNumberType>
-  <comments>This is an UPDATEd comment</comments>
-  <title>NEW TITLE UPDATED</title>
-  
-</ns2:collectionobjects_common> 
+  <distinguishingFeatures>This is an UPDATEd distFeatures</distinguishingFeatures>
+  <titleGroupList><titleGroup><title>NEW TITLE UPDATED</title></titleGroup></titleGroupList>
+</ns2:collectionobjects_common>
index 00f5813934dca918a33a059cc6bb3429ca9b0bc0..dd7a6fb1281c4f5cb715e1321bb52313f7559651 100755 (executable)
@@ -9,7 +9,11 @@
   <numberOfObjects>numberOfObjects</numberOfObjects>
   <responsibleDepartments>
   </responsibleDepartments>
-  <title>title</title>
+  <titleGroupList>
+      <titleGroup>
+          <title>title</title>
+      </titleGroup>
+  </titleGroupList>
   <objectTitleLanguage>objectTitleLanguage</objectTitleLanguage>
   <titleTranslation>titleTranslation</titleTranslation>
   <titleType>titleType</titleType>
index d84a6754ca92345c86703ad181e698bdb08a1067..b6e161b385943d0d73cea5f5dff4225025b016f9 100644 (file)
@@ -27,6 +27,7 @@
 package org.collectionspace.services.PerformanceTests.test;\r
 \r
 import java.util.ArrayList;\r
+import java.util.List;\r
 import java.util.Random;\r
 \r
 import javax.ws.rs.core.MultivaluedMap;\r
@@ -35,6 +36,8 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;\r
 \r
 import org.collectionspace.services.collectionobject.CollectionobjectsCommon;\r
+import org.collectionspace.services.collectionobject.TitleGroup;\r
+import org.collectionspace.services.collectionobject.TitleGroupList;\r
 import org.collectionspace.services.intake.IntakesCommon;\r
 import org.collectionspace.services.relation.RelationsCommon;\r
 import org.collectionspace.services.relation.RelationshipType;\r
@@ -74,7 +77,12 @@ public abstract class CollectionSpacePerformanceTest {
        void fillCollectionObject(CollectionobjectsCommon co, String objectNumber,\r
                        String title) {\r
                co.setObjectNumber(objectNumber);\r
-               co.setTitle(title);\r
+                TitleGroupList titleGroupList = new TitleGroupList();\r
+                List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();\r
+                TitleGroup titleGroup = new TitleGroup();\r
+                titleGroup.setTitle(title);\r
+                titleGroups.add(titleGroup);\r
+                co.setTitleGroupList(titleGroupList);\r
        }\r
 \r
        /**\r
index 2b18551ae31266b128a00c73169613dd7f9cf207..a238c8a4e9b54a8855775793fc7167fde4e1338d 100644 (file)
     <xs:element name="remNumber" type="ns:otherNumber"/>\r
 \r
     <!-- Object identification information -->\r
+\r
     <xs:element name="objectNumber" type="xs:string"/>\r
     <xs:element name="otherNumberList" type="ns:otherNumberList"/>\r
-\r
     <!-- Remove these two elements when the App/UI layer is using -->\r
     <!-- the new repeatable 'otherNumbers' field: -->\r
     <xs:element name="otherNumber" type="xs:string"/>\r
     <xs:element name="otherNumberType" type="xs:string"/>\r
-\r
+    <!-- end of two elements to be removed -->\r
     <xs:element name="briefDescriptions" type="xs:string">\r
         <xs:complexType>\r
             <xs:sequence>\r
@@ -46,7 +46,6 @@
     <xs:element name="distinguishingFeatures" type="xs:string"/>\r
     <xs:element name="numberOfObjects" type="xs:string"/>\r
     <xs:element name="objectNameList" type="ns:objectNameList"/>\r
-\r
     <xs:element name="responsibleDepartments">\r
         <xs:complexType>\r
             <xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="collection" type="xs:string"/>\r
-\r
-    <!-- FIXME Start of Title repeatable group -->\r
-    <xs:element name="title" type="xs:string"/>\r
-    <xs:element name="titleLanguage" type="xs:string"/>\r
-    <xs:element name="titleTranslation" type="xs:string"/>\r
-    <!-- FIXME [1.0 alpha] Need to add titleTranslationLanguage field here. DONE -->\r
-    <xs:element name="titleTranslationLanguage" type="xs:string"/>\r
-    <xs:element name="titleType" type="xs:string"/>\r
-    <!-- FIXME End of Title repeatable group -->\r
-\r
+    <xs:element name="titleGroupList" type="titleGroupList"/>\r
     <xs:element name="recordStatus" type="xs:string"/>\r
 \r
     <!-- Object Description Information -->\r
+\r
     <xs:element name="age" type="xs:string"/>\r
     <xs:element name="ageQualifier" type="xs:string"/>\r
     <xs:element name="ageUnit" type="xs:string"/>\r
     <!-- field, so perhaps this may merely be a product of some confusion. -->\r
     <xs:element name="contentDate" type="xs:string"/>\r
     <xs:element name="contentDescription" type="xs:string"/>\r
-\r
-    <!-- FIXME Start of Content event name repeatable group -->\r
-    <xs:element name="contentEventName" type="xs:string"/>\r
-    <xs:element name="contentEventNameType" type="xs:string"/>\r
-    <!-- FIXME End of Content event name repeatable group -->\r
-\r
+    <xs:element name="contentEventNameGroupList" type="contentEventNameGroupList"/>\r
     <xs:element name="contentNote" type="xs:string"/>\r
     <xs:element name="contentLanguages">\r
         <xs:complexType>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
-    <!-- FIXME Start of Content object repeatable group -->\r
-    <xs:element name="contentObject" type="xs:string"/>\r
-    <xs:element name="contentObjectType" type="xs:string"/>\r
-    <!-- FIXME End of Content object repeatable group -->\r
-\r
+    <xs:element name="contentObjectGroupList" type="contentObjectGroupList"/>\r
     <xs:element name="contentOrganizations">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
-    <!-- FIXME Start of Content other group -->\r
-    <xs:element name="contentOther" type="xs:string"/>\r
-    <xs:element name="contentOtherType" type="xs:string"/>\r
-    <!-- FIXME End of Content other group -->\r
-\r
+    <xs:element name="contentOtherGroupList" type="contentOtherGroupList"/>\r
     <xs:element name="contentPeoples">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
-    <!-- FIXME [1.0 alpha] contentPosition field must be made repeatable. DONE -->\r
     <xs:element name="contentPositions">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    \r
     <xs:element name="contentScripts">\r
         <xs:complexType>\r
             <xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="copyNumber" type="xs:string"/>\r
-    \r
-    <!-- FIXME [1.0 alpha] Need to add dimensionSummary field here. DONE -->\r
+    <!-- FIXME Move this dimensionSummary field into the repeatable Dimensions group in 1.3+ -->\r
     <xs:element name="dimensionSummary" type="xs:string"/>\r
     <xs:element name="dimensions" type="ns:dimensionList"/>\r
-\r
     <!-- FIXME Remove these six elements when the App/UI layer is -->\r
     <!-- using the new repeatable 'dimensions' field: -->\r
     <xs:element name="dimension" type="xs:string"/>\r
     <xs:element name="dimensionValue" type="xs:string"/>\r
     <xs:element name="dimensionValueDate" type="xs:string"/>\r
     <xs:element name="dimensionValueQualifier" type="xs:string"/>\r
-\r
+    <!-- end of six elements to be removed -->\r
     <xs:element name="editionNumber" type="xs:string"/>\r
     <xs:element name="forms">\r
         <xs:complexType>\r
 \r
     <!-- Object description Inscription - Content Information -->\r
 \r
-    <!-- FIXME Start of Inscription content (or Textual inscription) repeatable group -->\r
     <!-- FIXME Consider whether changes to field names below are required -->\r
     <!-- in response to the renaming of this group to Textual inscription -->\r
     <xs:element name="inscriptionContent" type="xs:string"/>\r
     <xs:element name="inscriptionContentTranslation" type="xs:string"/>\r
     <xs:element name="inscriptionContentTransliteration" type="xs:string"/>\r
     <xs:element name="inscriptionContentType" type="xs:string"/>\r
-    <!-- FIXME End of Inscription content (or Textual inscription) repeatable group -->\r
 \r
     <!-- Object Description Inscription - Description Information -->\r
 \r
-    <!-- FIXME Start of Inscription description (or Non-textual inscription) repeatable group -->\r
     <!-- FIXME Consider whether changes to field names below are required -->\r
     <!-- in response to the renaming of this group to Non-textual inscription -->\r
     <xs:element name="inscriptionDescription" type="xs:string"/>\r
     <xs:element name="inscriptionDescriptionMethod" type="xs:string"/>\r
     <xs:element name="inscriptionDescriptionPosition" type="xs:string"/>\r
     <xs:element name="inscriptionDescriptionType" type="xs:string"/>\r
-    <!-- FIXME End of Inscription description (or Non-textual inscription) repeatable group -->\r
 \r
     <!-- Object Description Material Information -->\r
 \r
-    <!-- FIXME Start of Material repeatable group -->\r
-    <xs:element name="material" type="xs:string"/>\r
-    <xs:element name="materialComponent" type="xs:string"/>\r
-    <xs:element name="materialComponentNote" type="xs:string"/>\r
-    <xs:element name="materialName" type="xs:string"/>\r
-    <xs:element name="materialSource" type="xs:string"/>\r
-    <!-- FIXME End of Material repeatable group -->\r
+    <xs:element name="materialGroupList" type="materialGroupList"/>\r
 \r
     <!-- Misc Object Description Information -->\r
+\r
     <xs:element name="objectStatus" type="xs:string"/>\r
     <xs:element name="phase" type="xs:string"/>\r
     <xs:element name="physicalDescription" type="xs:string"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
-    <!-- FIXME Start of Technical attribute repeatable group -->\r
-    <xs:element name="technicalAttribute" type="xs:string"/>\r
-    <xs:element name="technicalAttributeMeasurement" type="xs:string"/>\r
-    <xs:element name="technicalAttributeMeasurementUnit" type="xs:string"/>\r
-    <!-- FIXME End of Technical attribute repeatable group -->\r
-\r
-    <!-- FIXME Start of Object component repeatable group -->\r
-    <xs:element name="objectComponentName" type="xs:string"/>\r
-    <xs:element name="objectComponentInformation" type="xs:string"/>\r
-    <!-- FIXME End of Object component repeatable group -->\r
+    <xs:element name="technicalAttributeGroupList" type="technicalAttributeGroupList"/>\r
+    <xs:element name="objectComponentGroupList" type="objectComponentGroupList"/>\r
 \r
     <!-- Object Production Information -->\r
 \r
-    <!-- FIXME [1.0 alpha] objectProductionDate field must be made repeatable. DONE -->\r
     <xs:element name="objectProductionDates">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
     <xs:element name="objectProductionNote" type="xs:string"/>\r
-\r
-    <!-- FIXME Start of Object production organization repeatable group -->\r
-    <xs:element name="objectProductionOrganization" type="xs:string"/>\r
-    <xs:element name="objectProductionOrganizationRole" type="xs:string"/>\r
-    <!-- FIXME End of Object production organization repeatable group -->\r
-\r
-    <!-- FIXME Start of Object production people repeatable group -->\r
-    <xs:element name="objectProductionPeople" type="xs:string"/>\r
-    <xs:element name="objectProductionPeopleRole" type="xs:string"/>\r
-    <!-- FIXME End of Object production people repeatable group -->\r
-\r
-    <!-- FIXME Start of Object production person repeatable group -->\r
-    <xs:element name="objectProductionPerson" type="xs:string"/>\r
-    <xs:element name="objectProductionPersonRole" type="xs:string"/>\r
-    <!-- FIXME End of Object production person repeatable group -->\r
-\r
-    <!-- FIXME Start of Object production place repeatable group -->\r
-    <xs:element name="objectProductionPlace" type="xs:string"/>\r
-    <xs:element name="objectProductionPlaceRole" type="xs:string"/>\r
-    <!-- FIXME End of Object production place repeatable group -->\r
-\r
-    <!-- FIXME [1.0 alpha] objectProductionReason field must be made repeatable. DONE -->\r
+    <xs:element name="objectProductionOrganizationGroupList" type="objectProductionOrganizationGroupList"/>\r
+    <xs:element name="objectProductionPeopleGroupList" type="objectProductionPeopleGroupList"/>\r
+    <xs:element name="objectProductionPersonGroupList" type="objectProductionPersonGroupList"/>\r
+    <xs:element name="objectProductionPlaceGroupList" type="objectProductionPlaceGroupList"/>\r
     <xs:element name="objectProductionReasons">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
-    <!-- FIXME Start of Technique repeatable group -->\r
-    <xs:element name="technique" type="xs:string"/>\r
-    <xs:element name="techniqueType" type="xs:string"/>\r
-    <!-- FIXME End of Technique repeatable group -->\r
+    <xs:element name="techniqueGroupList" type="techniqueGroupList"/>\r
 \r
     <!-- Object History and Association Information - Association -->\r
 \r
     <!-- In the following field names, "assoc" is an abbreviation for "associated". -->\r
     <!-- See the comments to CSPACE-2501 for a discussion of the database identifier -->\r
     <!-- length limit that made this abbreviation necessary. -->\r
-\r
-    <!-- FIXME Start of Associated activity repeatable group -->\r
-    <xs:element name="assocActivity" type="xs:string"/>\r
-    <xs:element name="assocActivityNote" type="xs:string"/>\r
-    <!-- FIXME End of Associated activity repeatable group -->\r
-\r
-    <!-- FIXME Convert to Associated concept repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocConceptNote field here. DONE -->\r
-    <xs:element name="assocConceptNote" type="xs:string"/>\r
-    <xs:element name="assocConcepts">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocConcept" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocConceptNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
+    <xs:element name="assocActivityGroupList" type="assocActivityGroupList"/>\r
+    <xs:element name="assocConceptGroupList" type="assocConceptGroupList"/>\r
     <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->\r
-    <!-- to assocCulturalAffinities, assocCulturalAffinity -->\r
-    <!-- FIXME Convert to Associated cultural contexts repeatable group -->\r
-    <!-- FIXME [1.0 Alpha] Need to add assocCulturalContextNote field here. DONE -->\r
-    <xs:element name="assocCulturalContextNote" type="xs:string"/>\r
-    <xs:element name="assocCulturalContexts">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocCulturalContext" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocCulturalContextNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
-    <!-- FIXME Convert to Associated date repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocDateNote field here. DONE -->\r
-    <xs:element name="assocDateNote" type="xs:string"/>\r
-    <xs:element name="assocDate" type="xs:string"/>\r
-        <!-- FIXME Need to move assocDateNote field here, after conversion. -->\r
-\r
+    <!-- to assocCulturalAffinity -->\r
+    <xs:element name="assocCulturalContextGroupList" type="assocCulturalContextGroupList"/>\r
+    <xs:element name="assocDateGroupList" type="assocDateGroupList"/>\r
     <!-- FIXME Start of Associated event repeatable group -->\r
+    <!-- Note: this group has repeatable sub-fields, and thus will -->\r
+    <!-- not be implemented as part of CSPACE-3229 in Release 1.2 -->\r
     <xs:element name="assocEventName" type="xs:string"/>\r
     <xs:element name="assocEventNameType" type="xs:string"/>\r
-    <!-- FIXME [1.0 alpha] Need to add assocEventNote field here. DONE -->\r
     <xs:element name="assocEventNote" type="xs:string"/>\r
     <xs:element name="assocEventOrganizations">\r
         <xs:complexType>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <!-- FIXME End of Associated event repeatable group -->\r
-\r
-    <!-- FIXME Start of Associated object repeatable group -->\r
-    <xs:element name="assocObject" type="xs:string"/>\r
-    <!-- Note: the Cataloging Schema - Limited for Release 1.0 shows -->\r
-    <!-- an Associated object note field, but no Associated object -->\r
-    <!-- type field. This is currently believed to be a typo, as the -->\r
-    <!-- main Cataloging Schema page and the repeatability spreadsheets -->\r
-    <!-- all show this as Associated object type. -->\r
-    <xs:element name="assocObjectType" type="xs:string"/>\r
-\r
-    <!-- FIXME End of Associated object repeatable group -->\r
-\r
-    <!-- FIXME Convert to Associated organizations repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocOrganizationNote field here. DONE -->\r
-    <xs:element name="assocOrganizationNote" type="xs:string"/>\r
-    <xs:element name="assocOrganizations">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocOrganization" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocOrganizationNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
-    <!-- FIXME Convert to Associated people repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocPeopleNote field here. DONE -->\r
-    <xs:element name="assocPeopleNote" type="xs:string"/>\r
-    <xs:element name="assocPeoples">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocPeople" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocPeopleNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
-    <!-- FIXME Convert to Associated person repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocPersonNote field here. DONE -->\r
-    <xs:element name="assocPersonNote" type="xs:string"/>\r
-    <xs:element name="assocPersons">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocPerson" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocPersonNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
-    <!-- FIXME Convert to Associated place repeatable group -->\r
-    <!-- FIXME [1.0 alpha] Need to add assocPlaceNote field here. DONE -->\r
-    <xs:element name="assocPlaceNote" type="xs:string"/>\r
-    <xs:element name="assocPlaces">\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element name="assocPlace" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>\r
-                <!-- FIXME Need to move assocPlaceNote field here, after conversion. -->\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-\r
-    <!-- FIXME [1.0 alpha] Remove the associationNote field. DONE -->\r
-    <!-- FIXME [1.0 alpha] Remove the associationType field. DONE -->\r
+    <xs:element name="assocObjectGroupList" type="assocObjectGroupList"/>\r
+    <xs:element name="assocOrganizationGroupList" type="assocOrganizationGroupList"/>\r
+    <xs:element name="assocPeopleGroupList" type="assocPeopleGroupList"/>\r
+    <xs:element name="assocPersonGroupList" type="assocPersonGroupList"/>\r
+    <xs:element name="assocPlaceGroupList" type="assocPlaceGroupList"/>\r
 \r
     <!-- Object History and Association Information - History -->\r
-    <xs:element name="objectHistoryNote" type="xs:string"/>\r
 \r
-    <!-- Note: Erin has proposed the creation of a repeatable Ownership group -->\r
-    <!-- that may wrap multiple fields below, TBD -->\r
+    <xs:element name="objectHistoryNote" type="xs:string"/>\r
+    <!-- FIXME Start of owner repeatable group -->\r
+    <!-- Note: this group has repeatable sub-fields, and thus will -->\r
+    <!-- not be implemented as part of CSPACE-3229 in Release 1.2 -->\r
     <xs:element name="owners">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
     <xs:element name="ownershipAccess" type="xs:string"/>\r
     <xs:element name="ownershipCategory" type="xs:string"/>\r
-\r
     <!-- FIXME Make into a repeatable, structured date ("date units of information") -->\r
     <!-- field, when structured dates are introduced -->\r
     <xs:element name="ownershipDates" type="xs:string"/>\r
-\r
     <xs:element name="ownershipExchangeMethod" type="xs:string"/>\r
     <xs:element name="ownershipExchangeNote" type="xs:string"/>\r
     <xs:element name="ownershipExchangePriceCurrency" type="xs:string"/>\r
     <xs:element name="ownershipExchangePriceValue" type="xs:string"/>\r
     <xs:element name="ownershipPlace" type="xs:string"/>\r
-\r
-    <!-- FIXME Start of Usage repeatable group -->\r
-    <xs:element name="usage" type="xs:string"/>\r
-    <xs:element name="usageNote" type="xs:string"/>\r
-    <!-- FIXME End of Usage repeatable group -->\r
+    <!-- FIXME End of owner repeatable group -->\r
+    <xs:element name="usageGroupList" type="usageGroupList"/>\r
 \r
     <!-- Object Owner's Contribution Information -->\r
+\r
     <xs:element name="ownersPersonalExperience" type="xs:string"/>\r
     <xs:element name="ownersPersonalResponse" type="xs:string"/>\r
-    <!-- FIXME [1.0 alpha] ownersReference field must be made repeatable. DONE -->\r
     <xs:element name="ownersReferences">\r
         <xs:complexType>\r
             <xs:sequence>\r
     <xs:element name="ownersContributionNote" type="xs:string"/>\r
 \r
     <!-- Object Viewers Contribution Information -->\r
+\r
     <xs:element name="viewersRole" type="xs:string"/>\r
     <xs:element name="viewersPersonalExperience" type="xs:string"/>\r
     <xs:element name="viewersPersonalResponse" type="xs:string"/>\r
-    <!-- FIXME [1.0 alpha] viewersReference field must be made repeatable. DONE -->\r
     <xs:element name="viewersReferences">\r
             <xs:complexType>\r
             <xs:sequence>\r
 \r
     <!-- Reference Information -->\r
 \r
-    <!-- FIXME [1.0 alpha] reference field must be made repeatable. DONE -->\r
     <xs:element name="references">\r
         <xs:complexType>\r
             <xs:sequence>\r
     <xs:element name="catalogNumber" type="xs:string"/>\r
 \r
     <!--  Object Collection Information Group -->\r
+\r
     <xs:element name="fieldCollectionDate" type="xs:string"/>\r
     <xs:element name="fieldCollectionMethods">\r
         <xs:complexType>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <!-- FIXME [1.0 alpha] Make fieldCollectionEventName a repeatable scalar field. DONE -->\r
     <xs:element name="fieldColEventNames">\r
         <xs:complexType>\r
             <xs:sequence>\r
                 maxOccurs="unbounded"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
-\r
     <xs:complexType name="otherNumber">\r
         <xs:sequence>\r
             <xs:element name="numberValue" type="xs:string"/>\r
                 maxOccurs="unbounded"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
-\r
     <xs:complexType name="objectNameGroup">\r
         <xs:sequence>\r
                 <xs:element name="objectName" type="xs:string"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
 \r
+    <xs:complexType name="titleGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="titleGroup" type="titleGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="titleGroup">\r
+        <xs:sequence>\r
+            <xs:element name="title" type="xs:string"/>\r
+            <xs:element name="titleLanguage" type="xs:string"/>\r
+            <xs:element name="titleTranslation" type="xs:string"/>\r
+            <xs:element name="titleTranslationLanguage" type="xs:string"/>\r
+            <xs:element name="titleType" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="contentEventNameGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="contentEventNameGroup" type="contentEventNameGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="contentEventNameGroup">\r
+        <xs:sequence>\r
+            <xs:element name="contentEventName" type="xs:string"/>\r
+            <xs:element name="contentEventNameType" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="contentObjectGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="contentObjectGroup" type="contentObjectGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="contentObjectGroup">\r
+        <xs:sequence>\r
+            <xs:element name="contentObject" type="xs:string"/>\r
+            <xs:element name="contentObjectType" type="xs:string"/>\r
+         </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="contentOtherGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="contentOtherGroup" type="contentOtherGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="contentOtherGroup">\r
+        <xs:sequence>\r
+            <xs:element name="contentOther" type="xs:string"/>\r
+            <xs:element name="contentOtherType" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
     <xs:complexType name="dimensionList">\r
         <xs:sequence>\r
             <xs:element name="dimensionGroup" type="dimensionGroup" minOccurs="0"\r
                 maxOccurs="unbounded"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
-\r
     <xs:complexType name="dimensionGroup">\r
         <xs:sequence>\r
             <xs:element name="dimension" type="xs:string"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
 \r
+    <xs:complexType name="materialGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="materialGroup" type="materialGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="materialGroup">\r
+        <xs:sequence>\r
+            <xs:element name="material" type="xs:string"/>\r
+            <xs:element name="materialComponent" type="xs:string"/>\r
+            <xs:element name="materialComponentNote" type="xs:string"/>\r
+            <xs:element name="materialName" type="xs:string"/>\r
+            <xs:element name="materialSource" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="technicalAttributeGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="technicalAttributeGroup" type="technicalAttributeGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="technicalAttributeGroup">\r
+        <xs:sequence>\r
+            <xs:element name="technicalAttribute" type="xs:string"/>\r
+            <xs:element name="technicalAttributeMeasurement" type="xs:string"/>\r
+            <xs:element name="technicalAttributeMeasurementUnit" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="objectComponentGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="objectComponentGroup" type="objectComponentGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="objectComponentGroup">\r
+        <xs:sequence>\r
+            <xs:element name="objectComponentName" type="xs:string"/>\r
+            <xs:element name="objectComponentInformation" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="objectProductionOrganizationGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionOrganizationGroup" type="objectProductionOrganizationGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="objectProductionOrganizationGroup">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionOrganization" type="xs:string"/>\r
+            <xs:element name="objectProductionOrganizationRole" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="objectProductionPeopleGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPeopleGroup" type="objectProductionPeopleGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="objectProductionPeopleGroup">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPeople" type="xs:string"/>\r
+            <xs:element name="objectProductionPeopleRole" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="objectProductionPersonGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPersonGroup" type="objectProductionPersonGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="objectProductionPersonGroup">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPerson" type="xs:string"/>\r
+            <xs:element name="objectProductionPersonRole" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="objectProductionPlaceGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPlaceGroup" type="objectProductionPlaceGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="objectProductionPlaceGroup">\r
+        <xs:sequence>\r
+            <xs:element name="objectProductionPlace" type="xs:string"/>\r
+            <xs:element name="objectProductionPlaceRole" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="techniqueGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="techniqueGroup" type="techniqueGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="techniqueGroup">\r
+        <xs:sequence>\r
+            <xs:element name="technique" type="xs:string"/>\r
+            <xs:element name="techniqueType" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocActivityGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocActivityGroup" type="assocActivityGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocActivityGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocActivity" type="xs:string"/>\r
+            <xs:element name="assocActivityType" type="xs:string"/>\r
+            <xs:element name="assocActivityNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocConceptGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocConceptGroup" type="assocConceptGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocConceptGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocConcept" type="xs:string"/>\r
+            <xs:element name="assocConceptType" type="xs:string"/>\r
+            <xs:element name="assocConceptNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->\r
+    <!-- to assocCulturalAffinity -->\r
+    <xs:complexType name="assocCulturalContextGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocCulturalContextGroup" type="assocCulturalContextGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->\r
+    <!-- to assocCulturalAffinity -->\r
+    <xs:complexType name="assocCulturalContextGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocCulturalContext" type="xs:string"/>\r
+            <xs:element name="assocCulturalContextType" type="xs:string"/>\r
+            <xs:element name="assocCulturalContextNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocDateGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocDateGroup" type="assocDateGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocDateGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocDate" type="xs:string"/>\r
+            <xs:element name="assocDateType" type="xs:string"/>\r
+            <xs:element name="assocDateNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocObjectGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocObjectGroup" type="assocObjectGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocObjectGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocObject" type="xs:string"/>\r
+            <xs:element name="assocObjectType" type="xs:string"/>\r
+            <xs:element name="assocObjectNote" type="xs:string"/>\r
+         </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocOrganizationGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocOrganizationGroup" type="assocOrganizationGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocOrganizationGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocOrganization" type="xs:string"/>\r
+            <xs:element name="assocOrganizationType" type="xs:string"/>\r
+            <xs:element name="assocOrganizationNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocPeopleGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocPeopleGroup" type="assocPeopleGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocPeopleGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocPeople" type="xs:string"/>\r
+            <xs:element name="assocPeopleType" type="xs:string"/>\r
+            <xs:element name="assocPeopleNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocPersonGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocPersonGroup" type="assocPersonGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocPersonGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocPerson" type="xs:string"/>\r
+            <xs:element name="assocPersonType" type="xs:string"/>\r
+            <xs:element name="assocPersonNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="assocPlaceGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="assocPlaceGroup" type="assocPlaceGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="assocPlaceGroup">\r
+        <xs:sequence>\r
+            <xs:element name="assocPlace" type="xs:string"/>\r
+            <xs:element name="assocPlaceType" type="xs:string"/>\r
+            <xs:element name="assocPlaceNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+\r
+    <xs:complexType name="usageGroupList">\r
+        <xs:sequence>\r
+            <xs:element name="usageGroup" type="usageGroup" minOccurs="0"\r
+                maxOccurs="unbounded"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    <xs:complexType name="usageGroup">\r
+        <xs:sequence>\r
+            <xs:element name="usage" type="xs:string"/>\r
+            <xs:element name="usageNote" type="xs:string"/>\r
+        </xs:sequence>\r
+    </xs:complexType>\r
+    \r
     <!-- Object Description Date Information -->\r
     <!-- This appears to be a placeholder structured date -->\r
     <xs:element name="dateAssociation" type="xs:string"/>\r
index 468c223a83167611bff40bf95b07bd2a74c75618..c9b44ee6e01291678b73b95c5d47cc3763c33405 100644 (file)
@@ -41,14 +41,14 @@ import org.collectionspace.services.client.PersonAuthorityClientUtils;
 import org.collectionspace.services.common.authorityref.AuthorityRefList;
 import org.collectionspace.services.collectionobject.AssocEventOrganizationList;
 import org.collectionspace.services.collectionobject.AssocEventPersonList;
-import org.collectionspace.services.collectionobject.AssocOrganizationList;
-import org.collectionspace.services.collectionobject.AssocPersonList;
 import org.collectionspace.services.collectionobject.CollectionobjectsCommon;
 import org.collectionspace.services.collectionobject.ContentOrganizationList;
 import org.collectionspace.services.collectionobject.ContentPersonList;
+import org.collectionspace.services.collectionobject.OwnerList;
 import org.collectionspace.services.collectionobject.FieldCollectionSourceList;
 import org.collectionspace.services.collectionobject.FieldCollectorList;
-import org.collectionspace.services.collectionobject.OwnerList;
+import org.collectionspace.services.collectionobject.TitleGroup;
+import org.collectionspace.services.collectionobject.TitleGroupList;
 import org.collectionspace.services.jaxb.AbstractCommonList;
 
 import org.jboss.resteasy.client.ClientResponse;
@@ -109,14 +109,8 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
     
     private String contentOrganizationRefName = null;
     private String contentPersonRefName = null;
-    private String contentInscriberRefName = null;
-    private String descriptionInscriberRefName = null;
-    private String objectProductionPersonRefName = null;
-    private String objectProductionOrganizationRefName = null;
     private String assocEventOrganizationRefName = null;
     private String assocEventPersonRefName = null;
-    private String assocOrganizationRefName = null;
-    private String assocPersonRefName = null;
     private String ownerRefName = null;
     private String fieldCollectionSourceRefName = null;
     private String fieldCollectorRefName = null;
@@ -130,14 +124,8 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
                         + "\r\n"
                         + "\r\n contentOrganizationRefName: "+contentOrganizationRefName
                         + "\r\n contentPersonRefName: "+contentPersonRefName
-                        + "\r\n contentInscriberRefName: "+contentInscriberRefName
-                        + "\r\n descriptionInscriberRefName: "+descriptionInscriberRefName
-                        + "\r\n objectProductionPersonRefName: "+objectProductionPersonRefName
-                        + "\r\n objectProductionOrganizationRefName: "+objectProductionOrganizationRefName
                         + "\r\n assocEventOrganizationRefName: "+assocEventOrganizationRefName
                         + "\r\n assocEventPersonRefName: "+assocEventPersonRefName
-                        + "\r\n assocOrganizationRefName: "+assocOrganizationRefName
-                        + "\r\n assocPersonRefName: "+assocPersonRefName
                         + "\r\n ownerRefName: "+ownerRefName
                         + "\r\n fieldCollectionSourceRefName: "+fieldCollectionSourceRefName
                         + "\r\n fieldCollectorRefName: "+fieldCollectorRefName;
@@ -147,7 +135,7 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
     }
 
     /** The number of authority references expected. */
-    private final int NUM_AUTH_REFS_EXPECTED = 13;
+    private final int NUM_AUTH_REFS_EXPECTED = 7;
 
     /* (non-Javadoc)
      * @see org.collectionspace.services.client.test.BaseServiceTest#getClientInstance()
@@ -199,14 +187,8 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
                 "ObjNum" + "-" + identifier,
                 contentOrganizationRefName,
                 contentPersonRefName,
-                contentInscriberRefName,
-                descriptionInscriberRefName,
-                objectProductionPersonRefName,
-                objectProductionOrganizationRefName,
                 assocEventOrganizationRefName,
                 assocEventPersonRefName,
-                assocOrganizationRefName,
-                assocPersonRefName,
                 ownerRefName,
                 fieldCollectionSourceRefName,
                 fieldCollectorRefName
@@ -306,25 +288,25 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
         contentPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
         personIdsCreated.add(csid);
         
-        csid = createPerson("Ingrid", "ContentInscriber", "ingridContentInscriber");
-        contentInscriberRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
-        personIdsCreated.add(csid);
-
-        csid = createPerson("Pacifico", "ProductionPerson", "pacificoProductionPerson");
-        objectProductionPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
-        personIdsCreated.add(csid);
-
-        csid = createPerson("Dessie", "DescriptionInscriber", "dessieDescriptionInscriber");
-        descriptionInscriberRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
-        personIdsCreated.add(csid);
+//        csid = createPerson("Ingrid", "ContentInscriber", "ingridContentInscriber");
+//        contentInscriberRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
+//        personIdsCreated.add(csid);
+//
+//        csid = createPerson("Pacifico", "ProductionPerson", "pacificoProductionPerson");
+//        objectProductionPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
+//        personIdsCreated.add(csid);
+//
+//        csid = createPerson("Dessie", "DescriptionInscriber", "dessieDescriptionInscriber");
+//        descriptionInscriberRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
+//        personIdsCreated.add(csid);
 
         csid = createPerson("Asok", "AssociatedEventPerson", "asokAssociatedEventPerson");
         assocEventPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
         personIdsCreated.add(csid);
         
-        csid = createPerson("Andrew", "AssociatedPerson", "andrewAssociatedPerson");
-        assocPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
-        personIdsCreated.add(csid);
+//        csid = createPerson("Andrew", "AssociatedPerson", "andrewAssociatedPerson");
+//        assocPersonRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
+//        personIdsCreated.add(csid);
 
         csid = createPerson("Owen", "Owner", "owenOwner");
         ownerRefName = PersonAuthorityClientUtils.getPersonRefName(personAuthCSID, csid, null);
@@ -400,17 +382,17 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
         contentOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
         orgIdsCreated.add(csid);
 
-        csid = createOrganization("Production Org", "Production Org Town", "productionOrg");
-        objectProductionOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
-        orgIdsCreated.add(csid);
+//        csid = createOrganization("Production Org", "Production Org Town", "productionOrg");
+//        objectProductionOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
+//        orgIdsCreated.add(csid);
 
         csid = createOrganization("Associated Event Org", "Associated Event Org City", "associatedEventOrg");
         assocEventOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
         orgIdsCreated.add(csid);
 
-        csid = createOrganization("Associated Org", "Associated Org City", "associatedOrg");
-        assocOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
-        orgIdsCreated.add(csid);
+//        csid = createOrganization("Associated Org", "Associated Org City", "associatedOrg");
+//        assocOrganizationRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, csid, null);
+//        orgIdsCreated.add(csid);
     }
 
 
@@ -473,8 +455,8 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
             "Expected " + NUM_AUTH_REFS_EXPECTED + ", found " + numAuthRefsFound);
                
         // Check a sample of one or more person authority ref fields
-        Assert.assertEquals(collectionObject.getInscriptionContentInscriber(), contentInscriberRefName);
-        Assert.assertEquals(collectionObject.getAssocPersons().getAssocPerson().get(0), assocPersonRefName);
+        // Assert.assertEquals(collectionObject.getInscriptionContentInscriber(), contentInscriberRefName);
+        // Assert.assertEquals(collectionObject.getAssocPersons().getAssocPerson().get(0), assocPersonRefName);
         Assert.assertEquals(collectionObject.getOwners().getOwner().get(0), ownerRefName);
         Assert.assertEquals(collectionObject.getFieldCollectionSources().getFieldCollectionSource().get(0), fieldCollectionSourceRefName);
 
@@ -576,24 +558,19 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
                 String objNum,
                 String contentOrganization,
                 String contentPerson,
-                String contentInscriber,
-                String descriptionInscriber,
-                String objectProductionPerson,
-                String objectProductionOrganization,
                 String assocEventOrganization,
                 String assocEventPerson,
-                String assocOrganization,
-                String assocPerson,
                 String owner,
                 String fieldCollectionSource,
                 String fieldCollector ) {
         CollectionobjectsCommon collectionObject = new CollectionobjectsCommon();
-        collectionObject.setTitle(title);
+        TitleGroupList titleGroupList = new TitleGroupList();
+        List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
+        TitleGroup titleGroup = new TitleGroup();
+        titleGroup.setTitle("a title");
+        titleGroups.add(titleGroup);
+        collectionObject.setTitleGroupList(titleGroupList);
         collectionObject.setObjectNumber(objNum);
-        collectionObject.setInscriptionContentInscriber(contentInscriber);
-        collectionObject.setInscriptionDescriptionInscriber(descriptionInscriber);
-        collectionObject.setObjectProductionPerson(objectProductionPerson);
-        collectionObject.setObjectProductionOrganization(objectProductionOrganization);
 
         ContentOrganizationList contentOrganizationList = new ContentOrganizationList();
         List<String> contentOrganizations = contentOrganizationList.getContentOrganization();
@@ -615,15 +592,15 @@ public class CollectionObjectAuthRefsTest extends BaseServiceTest {
         assocEventPersons.add(assocEventPerson);
         collectionObject.setAssocEventPersons(assocEventPersonList);
 
-        AssocOrganizationList assocOrganizationList = new AssocOrganizationList();
-        List<String> assocOrganizations = assocOrganizationList.getAssocOrganization();
-        assocOrganizations.add(assocOrganization);
-        collectionObject.setAssocOrganizations(assocOrganizationList);
-
-        AssocPersonList assocPersonList = new AssocPersonList();
-        List<String> assocPersons = assocPersonList.getAssocPerson();
-        assocPersons.add(assocPerson);
-        collectionObject.setAssocPersons(assocPersonList);
+//        AssocOrganizationList assocOrganizationList = new AssocOrganizationList();
+//        List<String> assocOrganizations = assocOrganizationList.getAssocOrganization();
+//        assocOrganizations.add(assocOrganization);
+//        collectionObject.setAssocOrganizations(assocOrganizationList);
+//
+//        AssocPersonList assocPersonList = new AssocPersonList();
+//        List<String> assocPersons = assocPersonList.getAssocPerson();
+//        assocPersons.add(assocPerson);
+//        collectionObject.setAssocPersons(assocPersonList);
         
         OwnerList ownerList = new OwnerList();
         List<String> owners = ownerList.getOwner();
index b9ee251df43465be6e4c915ae6b9d6909a654645..acd7b03ee8f1f40ead320d30c3a305ec00b704b9 100644 (file)
@@ -460,13 +460,13 @@ public class CollectionObjectSearchTest extends BaseServiceTest {
         CollectionobjectsCommon collectionObject = new CollectionobjectsCommon();
         collectionObject.setObjectNumber(createIdentifier());
         if (keywordsInSameField) {
-            collectionObject.setTitle(listToString(keywords, KEYWORD_SEPARATOR));
+            collectionObject.setDistinguishingFeatures(listToString(keywords, KEYWORD_SEPARATOR));
         } else {
             if (keywords.size() == 1) {
-                collectionObject.setTitle(keywords.get(0));
+                collectionObject.setDistinguishingFeatures(keywords.get(0));
             } else if (keywords.size() == 2) {
-                collectionObject.setTitle(keywords.get(0));
-                collectionObject.setDistinguishingFeatures(keywords.get(1));
+                collectionObject.setDistinguishingFeatures(keywords.get(0));
+                collectionObject.setPhysicalDescription(keywords.get(1));
             } else {
                 Assert.fail("List of keywords must have exactly one or two members.");
             }
index 3de64ba69eecb16da5c3668798f81a2788be66e7..b886b06c424c81f469e71960a20184b1015cc578 100644 (file)
@@ -41,6 +41,8 @@ import org.collectionspace.services.collectionobject.ObjectNameGroup;
 import org.collectionspace.services.collectionobject.ObjectNameList;
 import org.collectionspace.services.collectionobject.OtherNumber;
 import org.collectionspace.services.collectionobject.OtherNumberList;
+import org.collectionspace.services.collectionobject.TitleGroup;
+import org.collectionspace.services.collectionobject.TitleGroupList;
 
 import org.collectionspace.services.jaxb.AbstractCommonList;
 
@@ -324,7 +326,7 @@ public class CollectionObjectServiceTest extends AbstractServiceTestImpl {
             logger.debug("Attempting to retrieve just-created record ...");
         }
         CollectionobjectsCommon collectionObject = readCollectionObjectCommonPart(newId);
-        String title = collectionObject.getTitle();
+        String title = collectionObject.getTitle(); // will need to be changed for multi-valued title
         if (logger.isDebugEnabled()) {
             logger.debug("Sent title: " + UTF8_TITLE);
             logger.debug("Received title: " + title);
@@ -493,7 +495,13 @@ public class CollectionObjectServiceTest extends AbstractServiceTestImpl {
         // a non-empty value is required, as enforced by the service's
         // validation routine(s).
         CollectionobjectsCommon collectionObject = new CollectionobjectsCommon();
-        collectionObject.setTitle("a title");
+
+        TitleGroupList titleGroupList = new TitleGroupList();
+        List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
+        TitleGroup titleGroup = new TitleGroup();
+        titleGroup.setTitle("a title");
+        titleGroups.add(titleGroup);
+        collectionObject.setTitleGroupList(titleGroupList);
 
         ObjectNameList objNameList = new ObjectNameList();
         List<ObjectNameGroup> objNameGroups = objNameList.getObjectNameGroup();
@@ -520,11 +528,12 @@ public class CollectionObjectServiceTest extends AbstractServiceTestImpl {
         // FIXME: Consider splitting off the following into its own test method.
         
         // Build a payload with invalid content, by setting a value to the
-        // empty String, in a field that requires a non-empty value,
-        // as enforced by the service's validation routine(s).
+        // empty String, in a field (objectNumber) that requires a non-empty
+        // value, as enforced by the service's validation routine(s).
         collectionObject = new CollectionobjectsCommon();
         collectionObject.setObjectNumber("");
-        collectionObject.setTitle("a title");
+        collectionObject.setDistinguishingFeatures("Distinguishing features.");
+
         objNameList = new ObjectNameList();
         objNameGroups = objNameList.getObjectNameGroup();
         objectNameGroup = new ObjectNameGroup();
@@ -1202,7 +1211,6 @@ public class CollectionObjectServiceTest extends AbstractServiceTestImpl {
         collectionObject.setRemNumber(remNumber);
         
         // Scalar fields
-        collectionObject.setTitle("atitle");
         collectionObject.setObjectNumber(objectNumber);
         collectionObject.setAge(""); //test for null string
         
@@ -1212,6 +1220,13 @@ public class CollectionObjectServiceTest extends AbstractServiceTestImpl {
 
         // Repeatable structured groups
 
+        TitleGroupList titleGroupList = new TitleGroupList();
+        List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
+        TitleGroup titleGroup = new TitleGroup();
+        titleGroup.setTitle("a title");
+        titleGroups.add(titleGroup);
+        collectionObject.setTitleGroupList(titleGroupList);
+
         ObjectNameList objNameList = new ObjectNameList();
         List<ObjectNameGroup> objNameGroups = objNameList.getObjectNameGroup();
         ObjectNameGroup objectNameGroup = new ObjectNameGroup();
index c0ab86876ed1f7cf3150c73d97242a9e03ef5ce9..0be1c98f52c991619b4ae7b829551a39a2396ad2 100644 (file)
@@ -12,7 +12,6 @@
     xsi:schemaLocation="http://collectionspace.org/services/collectionobject http://services.collectionspace.org/collectionobject/collectionobjects_common.xsd">
     <objectNumber>2</objectNumber>
     <comments>description</comments>
-    <title></title>
     <briefDescriptions>
         <!-- First value instance of this repeatable field is blank -->
         <briefDescription></briefDescription>
index a75c5847252d7fbb0943e856ff86ae91ed613aa2..809753a6670986ad7f4698e44d5d1dc73108debc 100644 (file)
@@ -11,8 +11,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://collectionspace.org/services/collectionobject http://services.collectionspace.org/collectionobject/collectionobjects_common.xsd">
     <objectNumber>2</objectNumber>
-    <comments>description</comments>
-    <title></title>
+    <distinguishingFeatures>distFeatures</distinguishingFeatures>
     <briefDescriptions>
         <!-- First value instance of this repeatable field is non-blank -->
         <briefDescription>data</briefDescription>
index 0f7ede491d3716728bf16c6d955267b6276e29bf..4cf35bf80e419c9ac1a5517c2d1ace34c82ee8d7 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    Document   : cspace-2242-first-value-instance-blank.xml
+    Document   : cspace-2779-utf-8-create.xml
     Created on : 
     Author     : 
-    Description: Test data for http://issues.collectionspace.org/browse/CSPACE-2242
+    Description: Test data for http://issues.collectionspace.org/browse/CSPACE-2779
 -->
 
 <ns2:collectionobjects_common
@@ -12,5 +12,5 @@
     xsi:schemaLocation="http://collectionspace.org/services/collectionobject http://services.collectionspace.org/collectionobject/collectionobjects_common.xsd">
     <objectNumber>2</objectNumber>
     <comments>Katowice Spodek Live '94 by the band Perfect</comments>
-    <title>Audiorecording album cover signed by Lech Wałęsa</title>
+    <distinguishingFeatures>Audiorecording album cover signed by Lech Wałęsa</distinguishingFeatures>
 </ns2:collectionobjects_common>
index df977b5f2c4d72c082bdde29ff21c452b6a995b7..f94f3f3b3c625c8e432bad7a03c5fba14a31cd97 100644 (file)
@@ -9,5 +9,4 @@
 <numberOfObjects>numberOfObjects</numberOfObjects>
 <!-- test whitespace as first child node -->
 <responsibleDepartments> <responsibleDepartment> responsibleDept1</responsibleDepartment><responsibleDepartment>responsibleDept2</responsibleDepartment></responsibleDepartments>
-<title>title</title>
 </ns2:collectionobjects_common> 
index 1917883d77013871b4b0f15e5c2591b001f9d8a9..1a2186437246901b54fba50555a399fe3d819d63 100644 (file)
@@ -15,6 +15,4 @@
 <responsibleDepartment>responsibleDept1</responsibleDepartment>
 <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index ab44bf31424d8cbf3f6026299da1e3861c86c4f0..5c8a81b8c2383d24f631edefb79d7dc426cd31eb 100644 (file)
@@ -18,6 +18,4 @@
 <responsibleDepartment> responsibleDept1</responsibleDepartment>
 <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index e8746eed1b4ec232949703c9405dbafc93104c69..a83be2855881e2edc5614b16c64af0df4701b062 100644 (file)
@@ -15,6 +15,4 @@
     <responsibleDepartment>responsibleDept1</responsibleDepartment>
     <responsibleDepartment>responsibleDept2</responsibleDepartment>
 </responsibleDepartments>
-
-<title>title</title>
 </ns2:collectionobjects_common> 
index 5929799ec558359bf6585ad99ae6023874845d55..30dd4ef199db629ae3f81c63c3978cb358973687 100644 (file)
@@ -9,98 +9,6 @@
 
 <ns2:collectionobjects_common xmlns:ns2="http://collectionspace.org/services/collectionobject">
   <objectNumber>objectNumber</objectNumber>
-  <otherNumber>XXX</otherNumber>
-  <otherNumberType>otherNumberType</otherNumberType>
-  <!-- briefDescription>briefDescription</briefDescription -->
-  <comments>comments</comments>
   <distinguishingFeatures>distFeatures</distinguishingFeatures>
   <numberOfObjects>numberOfObjects</numberOfObjects>
-  <responsibleDepartments>
-    <!--
-                      <responsibleDepartment xtmplpoint="responsibleDept"/>
-                      -->
-  </responsibleDepartments>
-  <title>title</title>
-  <objectTitleLanguage>objectTitleLanguage</objectTitleLanguage>
-  <titleTranslation>titleTranslation</titleTranslation>
-  <titleType>titleType</titleType>
-  <age>age</age>
-  <ageQualifier>ageQualifier</ageQualifier>
-  <ageUnit>ageUnit</ageUnit>
-  <color>color</color>
-  <contentActivity>contentActivity</contentActivity>
-  <contentConcept>contentConcept</contentConcept>
-  <contentDate>XXX</contentDate>
-  <contentDescription>contentDescription</contentDescription>
-  <contentEventName>contentEventName</contentEventName>
-  <contentEventNameType>contentEventNameType</contentEventNameType>
-  <contentNote>contentNote</contentNote>
-  <contentLanguage>contentLanguage</contentLanguage>
-  <contentObject>contentObject</contentObject>
-  <contentObjectType>contentObjectType</contentObjectType>
-  <contentOrganization>contentOrganization</contentOrganization>
-  <contentOther>contentOther</contentOther>
-  <contentOtherType>contentOtherType</contentOtherType>
-  <contentPeople>contentPeople</contentPeople>
-  <contentPerson>contentPerson</contentPerson>
-  <contentPlace>contentPlace</contentPlace>
-  <contentPosition>contentPosition</contentPosition>
-  <contentScript>XXX</contentScript>
-  <copyNumber>copyNumber</copyNumber>
-  <editionNumber>editionNumber</editionNumber>
-  <form>form</form>
- <inscriptionContent>inscriptionContent</inscriptionContent>
-<inscriptionContentInscriber>inscriptionContentInscriber</inscriptionContentInscriber>
-<inscriptionContentDate>inscriptionContentDate</inscriptionContentDate>
-<inscriptionContentInterpretation>inscriptionContentInterpretation</inscriptionContentInterpretation>
-<inscriptionContentLanguage>inscriptionContentLanguage</inscriptionContentLanguage>
-<inscriptionContentMethod>inscriptionContentMethod</inscriptionContentMethod>
-<inscriptionContentPosition>inscriptionContentPosition</inscriptionContentPosition>
-<inscriptionContentScript>inscriptionContentScript</inscriptionContentScript>
-<inscriptionContentTranslation>inscriptionContentTranslation</inscriptionContentTranslation>
-<inscriptionContentTransliteration>inscriptionContentTransliteration</inscriptionContentTransliteration>
-<inscriptionContentType>inscriptionContentType</inscriptionContentType>  <inscriptionDescription>inscriptionDescription</inscriptionDescription>
-
-<inscriptionDescriptionInscriber>inscriptionDescriptionInscriber</inscriptionDescriptionInscriber>
-
-<inscriptionDescriptionDate>inscriptionDescriptionDate</inscriptionDescriptionDate>
-
-<inscriptionDescriptionInterpretation>inscriptionDescriptionInterpretation</inscriptionDescriptionInterpretation>
-
-<inscriptionDescriptionMethod>inscriptionDescriptionMethod</inscriptionDescriptionMethod>
-
-<inscriptionDescriptionPosition>inscriptionDescriptionPosition</inscriptionDescriptionPosition>
-
-<inscriptionDescriptionType>inscriptionDescriptionType</inscriptionDescriptionType>
-  <material>material</material>
-  <materialComponent>materialComponent</materialComponent>
-  <materialComponentNote>materialComponentNote</materialComponentNote>
-  <materialName>materialName</materialName>
-  <materialSource>materialSource</materialSource>
-  <objectStatus>objectStatus</objectStatus>
-  <phase>phase</phase>
-  <physicalDescription>physicalDescription</physicalDescription>
-  <sex>sex</sex>
-  <style>style</style>
-  <technicalAttribute>technicalAttribute</technicalAttribute>
-
-<technicalAttributeMeasurement>technicalAttributeMeasurement</technicalAttributeMeasurement>
-
-<technicalAttributeMeasurementUnit>technicalAttributeMeasurementUnit</technicalAttributeMeasurementUnit>
-  <objectComponentName>objectComponentName</objectComponentName>
-
-<objectComponentInformation>objectComponentInformation</objectComponentInformation>
-  <dateAssociation>dateAssociation</dateAssociation>
-
-<dateEarliestSingle>{"level":"objectLevel","content-script":"descContentScript","content-method":"descContentMethod","otherNumber":"otherNumber"}</dateEarliestSingle>
-  <!-- XXX -->
-
-<dateEarliestSingleCertainty>dateEarliestSingleCertainty</dateEarliestSingleCertainty>
-
-<dateEarliestSingleQualifier>dateEarlierstSingleQualifier</dateEarliestSingleQualifier>
-  <dateLatest>XXX</dateLatest>
-  <dateLatestCertainty>dateLatestCertainty</dateLatestCertainty>
-  <dateLatestQualifier>dateLatestQualifier</dateLatestQualifier>
-  <datePeriod>datePeriod</datePeriod>
-  <dateText>dateText</dateText>
 </ns2:collectionobjects_common> 
index a098b525ccf0f779cf7633d6aa228c5bc3835e08..165dcc53fd84ea11325b45f25d8f363e7d4b97f6 100644 (file)
@@ -4,6 +4,7 @@ public interface CollectionObjectListItemJAXBSchema {
        final static String OBJECT_NUMBER = "objectNumber";\r
        final static String OBJECT_NAME_LIST = "objectNameList";\r
        final static String OBJECT_NAME = "objectName";\r
+        final static String TITLE_GROUP_LIST = "titleGroupList";\r
        final static String TITLE = "title";\r
        final static String RESPONSIBLE_DEPARTMENTS = "responsibleDepartments";\r
        final static String CSID = "csid";\r
index 72093abc36bdfbc48c8b68eac02881a8a1efd08d..d5cb4ab9ee938b2366ca070335e522c0d41b9630 100644 (file)
                 <xs:element name="objectNameList" type="ns:objectNameList"/>
                 <xs:element name="responsibleDepartments" type="responsibleDepartmentList"/>
                 <xs:element name="collection" type="xs:string"/>
-                <xs:element name="title" type="xs:string"/>
-                <xs:element name="titleLanguage" type="xs:string"/>
-                <xs:element name="titleTranslation" type="xs:string"/>
-                <xs:element name="titleTranslationLanguage" type="xs:string"/>
-                <xs:element name="titleType" type="xs:string"/>
+                <xs:element name="titleGroupList" type="titleGroupList"/>
                 <xs:element name="recordStatus" type="xs:string"/>
 
                 <!-- Object Description Information -->
                 <xs:element name="contentConcepts" type="contentConceptList"/>
                 <xs:element name="contentDate" type="xs:string"/>
                 <xs:element name="contentDescription" type="xs:string"/>
-                <xs:element name="contentEventName" type="xs:string"/>
-                <xs:element name="contentEventNameType" type="xs:string"/>
+                <xs:element name="contentEventNameGroupList" type="contentEventNameGroupList"/>
                 <xs:element name="contentNote" type="xs:string"/>
                 <xs:element name="contentLanguages" type="contentLanguageList"/>
-                <xs:element name="contentObject" type="xs:string"/>
-                <xs:element name="contentObjectType" type="xs:string"/>
+                <xs:element name="contentObjectGroupList" type="contentObjectGroupList"/>
                 <xs:element name="contentOrganizations" type="contentOrganizationList"/>
-                <xs:element name="contentOther" type="xs:string"/>
-                <xs:element name="contentOtherType" type="xs:string"/>
+                <xs:element name="contentOtherGroupList" type="contentOtherGroupList"/>
                 <xs:element name="contentPeoples" type="contentPeopleList"/>
                 <xs:element name="contentPersons" type="contentPersonList"/>
                 <xs:element name="contentPlaces" type="contentPlaceList"/>
                 <xs:element name="forms" type="formList"/>
 
                 <!-- Object description Inscription - Content Information -->
+
+                <!-- FIXME Consider whether changes to field names below are required -->
+                <!-- in response to the renaming of this group to Textual inscription -->
                 <xs:element name="inscriptionContent" type="xs:string"/>
                 <xs:element name="inscriptionContentInscriber" type="xs:string"/>
                 <xs:element name="inscriptionContentDate" type="xs:string"/>
                 <xs:element name="inscriptionContentType" type="xs:string"/>
                 
                 <!-- Object Description Inscription - Description Information -->
+
+                <!-- FIXME Consider whether changes to field names below are required -->
+                <!-- in response to the renaming of this group to Non-textual inscription -->
                 <xs:element name="inscriptionDescription" type="xs:string"/>
                 <xs:element name="inscriptionDescriptionInscriber" type="xs:string"/>
                 <xs:element name="inscriptionDescriptionDate" type="xs:string"/>
                 <xs:element name="inscriptionDescriptionType" type="xs:string"/>
 
                 <!-- Object Description Material Information -->
-                <xs:element name="material" type="xs:string"/>
-                <xs:element name="materialComponent" type="xs:string"/>
-                <xs:element name="materialComponentNote" type="xs:string"/>
-                <xs:element name="materialName" type="xs:string"/>
-                <xs:element name="materialSource" type="xs:string"/>
+                <xs:element name="materialGroupList" type="materialGroupList"/>
 
                 <!-- Misc Object Description Information -->
                 <xs:element name="objectStatus" type="xs:string"/>
                 <xs:element name="physicalDescription" type="xs:string"/>
                 <xs:element name="sex" type="xs:string"/>
                 <xs:element name="styles" type="styleList"/>
-                <xs:element name="technicalAttribute" type="xs:string"/>
-                <xs:element name="technicalAttributeMeasurement" type="xs:string"/>
-                <xs:element name="technicalAttributeMeasurementUnit" type="xs:string"/>
-                <xs:element name="objectComponentName" type="xs:string"/>
-                <xs:element name="objectComponentInformation" type="xs:string"/>
+                <xs:element name="technicalAttributeGroupList" type="technicalAttributeGroupList"/>
+                <xs:element name="objectComponentGroupList" type="objectComponentGroupList"/>
 
                 <!-- Object Production Information -->
                 <xs:element name="objectProductionDates" type="objectProductionDateList"/>
                 <xs:element name="objectProductionNote" type="xs:string"/>
-                <xs:element name="objectProductionOrganization" type="xs:string"/>
-                <xs:element name="objectProductionOrganizationRole" type="xs:string"/>
-                <xs:element name="objectProductionPeople" type="xs:string"/>
-                <xs:element name="objectProductionPeopleRole" type="xs:string"/>
-                <xs:element name="objectProductionPerson" type="xs:string"/>
-                <xs:element name="objectProductionPersonRole" type="xs:string"/>
-                <xs:element name="objectProductionPlace" type="xs:string"/>
-                <xs:element name="objectProductionPlaceRole" type="xs:string"/>
+                <xs:element name="objectProductionOrganizationGroupList" type="objectProductionOrganizationGroupList"/>
+                <xs:element name="objectProductionPeopleGroupList" type="objectProductionPeopleGroupList"/>
+                <xs:element name="objectProductionPersonGroupList" type="objectProductionPersonGroupList"/>
+                <xs:element name="objectProductionPlaceGroupList" type="objectProductionPlaceGroupList"/>
                 <xs:element name="objectProductionReasons" type="objectProductionReasonList"/>
-                <xs:element name="technique" type="xs:string"/>
-                <xs:element name="techniqueType" type="xs:string"/>
+                <xs:element name="techniqueGroupList" type="techniqueGroupList"/>
 
                 <!-- Object History and Association Information - Association -->
 
                 <!-- In the following field names, "assoc" is an abbreviation for "associated". -->
                 <!-- See the comments to CSPACE-2501 for a discussion of the database identifier -->
                 <!-- length limit that made this abbreviation necessary. -->
-                <xs:element name="assocActivity" type="xs:string"/>
-                <xs:element name="assocActivityNote" type="xs:string"/>
-                <xs:element name="assocConceptNote" type="xs:string"/>
-                <xs:element name="assocConcepts" type="assocConceptList"/>
-                <xs:element name="assocCulturalContextNote" type="xs:string"/>
-                <xs:element name="assocCulturalContexts" type="assocCulturalContextList"/>
-                <xs:element name="assocDateNote" type="xs:string"/>
-                <xs:element name="assocDate" type="xs:string"/>
+                <xs:element name="assocActivityGroupList" type="assocActivityGroupList"/>
+                <xs:element name="assocConceptGroupList" type="assocConceptGroupList"/>
+                <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->
+                <!-- to assocCulturalAffinity -->
+                <xs:element name="assocCulturalContextGroupList" type="assocCulturalContextGroupList"/>
+                <xs:element name="assocDateGroupList" type="assocDateGroupList"/>
                 <xs:element name="assocEventName" type="xs:string"/>
                 <xs:element name="assocEventNameType" type="xs:string"/>
                 <xs:element name="assocEventNote" type="xs:string"/>
                 <xs:element name="assocEventPeoples" type="assocEventPeopleList"/>
                 <xs:element name="assocEventPersons" type="assocEventPersonList"/>
                 <xs:element name="assocEventPlaces" type="assocEventPlaceList"/>
-                <xs:element name="assocObject" type="xs:string"/>
-                <xs:element name="assocObjectType" type="xs:string"/>
-                <xs:element name="assocOrganizationNote" type="xs:string"/>
-                <xs:element name="assocOrganizations" type="assocOrganizationList"/>
-                <xs:element name="assocPeopleNote" type="xs:string"/>
-                <xs:element name="assocPeoples" type="assocPeopleList"/>
-                <xs:element name="assocPersonNote" type="xs:string"/>
-                <xs:element name="assocPersons" type="assocPersonList"/>
-                <xs:element name="assocPlaceNote" type="xs:string"/>
-                <xs:element name="assocPlaces" type="assocPlaceList"/>
+                <xs:element name="assocObjectGroupList" type="assocObjectGroupList"/>
+                <xs:element name="assocOrganizationGroupList" type="assocOrganizationGroupList"/>
+                <xs:element name="assocPeopleGroupList" type="assocPeopleGroupList"/>
+                <xs:element name="assocPersonGroupList" type="assocPersonGroupList"/>
+                <xs:element name="assocPlaceGroupList" type="assocPlaceGroupList"/>
 
                 <!-- Object History and Association Information - History -->
                 <xs:element name="objectHistoryNote" type="xs:string"/>
                 <xs:element name="ownershipExchangePriceCurrency" type="xs:string"/>
                 <xs:element name="ownershipExchangePriceValue" type="xs:string"/>
                 <xs:element name="ownershipPlace" type="xs:string"/>
-                <xs:element name="usage" type="xs:string"/>
-                <xs:element name="usageNote" type="xs:string"/>
+                <xs:element name="usageGroupList" type="usageGroupList"/>
 
                 <!-- Object Owner's Contribution Information -->
                 <xs:element name="ownersPersonalExperience" type="xs:string"/>
             <xs:element name="otherNumber" type="otherNumber" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
-
     <xs:complexType name="otherNumber">
         <xs:sequence>
             <xs:element name="numberValue" type="xs:string"/>
                 maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
-
     <xs:complexType name="objectNameGroup">
         <xs:sequence>
                 <xs:element name="objectName" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
+    <xs:complexType name="titleGroupList">
+        <xs:sequence>
+            <xs:element name="titleGroup" type="titleGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="titleGroup">
+        <xs:sequence>
+            <xs:element name="title" type="xs:string"/>
+            <xs:element name="titleLanguage" type="xs:string"/>
+            <xs:element name="titleTranslation" type="xs:string"/>
+            <xs:element name="titleTranslationLanguage" type="xs:string"/>
+            <xs:element name="titleType" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+        <xs:complexType name="contentEventNameGroupList">
+        <xs:sequence>
+            <xs:element name="contentEventNameGroup" type="contentEventNameGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="contentEventNameGroup">
+        <xs:sequence>
+            <xs:element name="contentEventName" type="xs:string"/>
+            <xs:element name="contentEventNameType" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="contentObjectGroupList">
+        <xs:sequence>
+            <xs:element name="contentObjectGroup" type="contentObjectGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="contentObjectGroup">
+        <xs:sequence>
+            <xs:element name="contentObject" type="xs:string"/>
+            <xs:element name="contentObjectType" type="xs:string"/>
+         </xs:sequence>
+    </xs:complexType>
+    
+    <xs:complexType name="contentOtherGroupList">
+        <xs:sequence>
+            <xs:element name="contentOtherGroup" type="contentOtherGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="contentOtherGroup">
+        <xs:sequence>
+            <xs:element name="contentOther" type="xs:string"/>
+            <xs:element name="contentOtherType" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
     <xs:complexType name="responsibleDepartmentList">
         <xs:sequence>
             <xs:element name="responsibleDepartment" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                 maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
-
     <xs:complexType name="dimensionGroup">
         <xs:sequence>
             <xs:element name="dimension" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
+    <xs:complexType name="materialGroupList">
+        <xs:sequence>
+            <xs:element name="materialGroup" type="materialGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="materialGroup">
+        <xs:sequence>
+            <xs:element name="material" type="xs:string"/>
+            <xs:element name="materialComponent" type="xs:string"/>
+            <xs:element name="materialComponentNote" type="xs:string"/>
+            <xs:element name="materialName" type="xs:string"/>
+            <xs:element name="materialSource" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
     <xs:complexType name="styleList">
         <xs:sequence>
             <xs:element name="style" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 
+    <xs:complexType name="technicalAttributeGroupList">
+        <xs:sequence>
+            <xs:element name="technicalAttributeGroup" type="technicalAttributeGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="technicalAttributeGroup">
+        <xs:sequence>
+            <xs:element name="technicalAttribute" type="xs:string"/>
+            <xs:element name="technicalAttributeMeasurement" type="xs:string"/>
+            <xs:element name="technicalAttributeMeasurementUnit" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="objectComponentGroupList">
+        <xs:sequence>
+            <xs:element name="objectComponentGroup" type="objectComponentGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="objectComponentGroup">
+        <xs:sequence>
+            <xs:element name="objectComponentName" type="xs:string"/>
+            <xs:element name="objectComponentInformation" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
     <xs:complexType name="objectProductionDateList">
         <xs:sequence>
             <xs:element name="objectProductionDate" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 
+    <xs:complexType name="objectProductionOrganizationGroupList">
+        <xs:sequence>
+            <xs:element name="objectProductionOrganizationGroup" type="objectProductionOrganizationGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="objectProductionOrganizationGroup">
+        <xs:sequence>
+            <xs:element name="objectProductionOrganization" type="xs:string"/>
+            <xs:element name="objectProductionOrganizationRole" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="objectProductionPeopleGroupList">
+        <xs:sequence>
+            <xs:element name="objectProductionPeopleGroup" type="objectProductionPeopleGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="objectProductionPeopleGroup">
+        <xs:sequence>
+            <xs:element name="objectProductionPeople" type="xs:string"/>
+            <xs:element name="objectProductionPeopleRole" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+    
+    <xs:complexType name="objectProductionPersonGroupList">
+        <xs:sequence>
+            <xs:element name="objectProductionPersonGroup" type="objectProductionPersonGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="objectProductionPersonGroup">
+        <xs:sequence>
+            <xs:element name="objectProductionPerson" type="xs:string"/>
+            <xs:element name="objectProductionPersonRole" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+         <xs:complexType name="objectProductionPlaceGroupList">
+        <xs:sequence>
+            <xs:element name="objectProductionPlaceGroup" type="objectProductionPlaceGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="objectProductionPlaceGroup">
+        <xs:sequence>
+            <xs:element name="objectProductionPlace" type="xs:string"/>
+            <xs:element name="objectProductionPlaceRole" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
     <xs:complexType name="objectProductionReasonList">
         <xs:sequence>
             <xs:element name="objectProductionReason" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
 
-    <xs:complexType name="assocConceptList">
+    <xs:complexType name="techniqueGroupList">
+        <xs:sequence>
+            <xs:element name="techniqueGroup" type="techniqueGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="techniqueGroup">
         <xs:sequence>
-            <xs:element name="assocConcept" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="technique" type="xs:string"/>
+            <xs:element name="techniqueType" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
-    <xs:complexType name="assocCulturalContextList">
+    <xs:complexType name="assocActivityGroupList">
         <xs:sequence>
-            <xs:element name="assocCulturalContext" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="assocActivityGroup" type="assocActivityGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocActivityGroup">
+        <xs:sequence>
+            <xs:element name="assocActivity" type="xs:string"/>
+            <xs:element name="assocActivityType" type="xs:string"/>
+            <xs:element name="assocActivityNote" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="assocConceptGroupList">
+        <xs:sequence>
+            <xs:element name="assocConceptGroup" type="assocConceptGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocConceptGroup">
+        <xs:sequence>
+            <xs:element name="assocConcept" type="xs:string"/>
+            <xs:element name="assocConceptType" type="xs:string"/>
+            <xs:element name="assocConceptNote" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->
+    <!-- to assocCulturalAffinity -->
+    <xs:complexType name="assocCulturalContextGroupList">
+        <xs:sequence>
+            <xs:element name="assocCulturalContextGroup" type="assocCulturalContextGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <!-- FIXME rename fields, if not over CSPACE-2501 length limit, -->
+    <!-- to assocCulturalAffinity -->
+    <xs:complexType name="assocCulturalContextGroup">
+        <xs:sequence>
+            <xs:element name="assocCulturalContext" type="xs:string"/>
+            <xs:element name="assocCulturalContextType" type="xs:string"/>
+            <xs:element name="assocCulturalContextNote" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="assocDateGroupList">
+        <xs:sequence>
+            <xs:element name="assocDateGroup" type="assocDateGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocDateGroup">
+        <xs:sequence>
+            <xs:element name="assocDate" type="xs:string"/>
+            <xs:element name="assocDateType" type="xs:string"/>
+            <xs:element name="assocDateNote" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
     
         </xs:sequence>
     </xs:complexType>
 
-    <xs:complexType name="assocOrganizationList">
+    <xs:complexType name="assocObjectGroupList">
         <xs:sequence>
-            <xs:element name="assocOrganization" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="assocObjectGroup" type="assocObjectGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
+    <xs:complexType name="assocObjectGroup">
+        <xs:sequence>
+            <xs:element name="assocObject" type="xs:string"/>
+            <xs:element name="assocObjectType" type="xs:string"/>
+            <xs:element name="assocObjectNote" type="xs:string"/>
+         </xs:sequence>
+    </xs:complexType>
 
-    <xs:complexType name="assocPeopleList">
+    <xs:complexType name="assocOrganizationGroupList">
+        <xs:sequence>
+            <xs:element name="assocOrganizationGroup" type="assocOrganizationGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocOrganizationGroup">
+        <xs:sequence>
+            <xs:element name="assocOrganization" type="xs:string"/>
+            <xs:element name="assocOrganizationType" type="xs:string"/>
+            <xs:element name="assocOrganizationNote" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="assocPeopleGroupList">
+        <xs:sequence>
+            <xs:element name="assocPeopleGroup" type="assocPeopleGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocPeopleGroup">
         <xs:sequence>
-            <xs:element name="assocPeople" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="assocPeople" type="xs:string"/>
+            <xs:element name="assocPeopleType" type="xs:string"/>
+            <xs:element name="assocPeopleNote" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
-    <xs:complexType name="assocPersonList">
+    <xs:complexType name="assocPersonGroupList">
+        <xs:sequence>
+            <xs:element name="assocPersonGroup" type="assocPersonGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocPersonGroup">
         <xs:sequence>
-            <xs:element name="assocPerson" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="assocPerson" type="xs:string"/>
+            <xs:element name="assocPersonType" type="xs:string"/>
+            <xs:element name="assocPersonNote" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
-    <xs:complexType name="assocPlaceList">
+    <xs:complexType name="assocPlaceGroupList">
         <xs:sequence>
-            <xs:element name="assocPlace" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element name="assocPlaceGroup" type="assocPlaceGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="assocPlaceGroup">
+        <xs:sequence>
+            <xs:element name="assocPlace" type="xs:string"/>
+            <xs:element name="assocPlaceType" type="xs:string"/>
+            <xs:element name="assocPlaceNote" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
 
         </xs:sequence>
     </xs:complexType>
 
+    <xs:complexType name="usageGroupList">
+        <xs:sequence>
+            <xs:element name="usageGroup" type="usageGroup" minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="usageGroup">
+        <xs:sequence>
+            <xs:element name="usage" type="xs:string"/>
+            <xs:element name="usageNote" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
     <xs:complexType name="ownersReferenceList">
         <xs:sequence>
             <xs:element name="ownersReference" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
index 54bb6cee1912a348a6f5893ed457c94db4ca07f0..71ea71ed9d7140573a8a2e6543146b866b9f0290 100644 (file)
@@ -135,19 +135,25 @@ public class CollectionObjectDocumentModelHandler
             CollectionObjectListItem coListItem = new CollectionObjectListItem();
             try {
                    coListItem.setObjectNumber((String) docModel.getProperty(label,
-                               CollectionObjectListItemJAXBSchema.OBJECT_NUMBER));
-                   List names = (List) docModel.getProperty(label,
-                               CollectionObjectListItemJAXBSchema.OBJECT_NAME_LIST);
-                   if(names!=null && !names.isEmpty()) {
-                       HashMap<String,Object> firstNameInfo = (HashMap<String,Object>)names.get(0);
-                           coListItem.setObjectName((String)firstNameInfo.get(
-                                       CollectionObjectListItemJAXBSchema.OBJECT_NAME) );
-                   }
-                   coListItem.setTitle((String) docModel.getProperty(label,
-                               CollectionObjectListItemJAXBSchema.TITLE));
-                   Object respDepts = docModel.getProperty(label,
-                               CollectionObjectListItemJAXBSchema.RESPONSIBLE_DEPARTMENTS);
-                       coListItem.setResponsibleDepartment(DocumentUtils.getFirstString(respDepts));
+                            CollectionObjectListItemJAXBSchema.OBJECT_NUMBER));
+
+                   List<Object> objectNames = (List<Object>) docModel.getProperty(label,
+                            CollectionObjectListItemJAXBSchema.OBJECT_NAME_LIST);
+                    String primaryObjectName = primaryValueFromMultivalue(objectNames,
+                            CollectionObjectListItemJAXBSchema.OBJECT_NAME);
+                   coListItem.setObjectName(primaryObjectName);
+                    
+                    List<Object> titles =
+                        (List<Object>) docModel.getProperty(label,
+                            CollectionObjectListItemJAXBSchema.TITLE_GROUP_LIST);
+                    String primaryTitle = primaryValueFromMultivalue(titles,
+                            CollectionObjectListItemJAXBSchema.TITLE);
+                    coListItem.setTitle(primaryTitle);
+
+                   List<Object> respDepts =
+                        (List<Object>) docModel.getProperty(label,
+                            CollectionObjectListItemJAXBSchema.RESPONSIBLE_DEPARTMENTS);
+                   coListItem.setResponsibleDepartment(DocumentUtils.getFirstString(respDepts));
                    
                    String id = NuxeoUtils.extractId(docModel.getPathAsString());
                    coListItem.setUri(getServiceContextPath() + id);
index 2ab8966fdb89413e61327c28fbe6ae23c1217646..1be456321798529e90f013787511d7aaf9094fbc 100644 (file)
                               versionable="true" auditable="false"
                               label="collectionobjects_common" updated="" order="1">
                     <service:properties>
+                        <!-- Commented out for now, as searching within a field in a complexType breaks searches. -->
+                        <!-- The following fields were placed into complexTypes in group repeatability work in CSPACE-2927: -->
+                        <!--
+                            <types:item><types:key>authRef</types:key><types:value>inscriptionContentInscriber</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>inscriptionDescriptionInscriber</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>objectProductionPerson</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>objectProductionOrganization</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>assocOrganizations|assocOrganization</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>assocPersons|assocPerson</types:value></types:item>
+                        -->
                         <types:item><types:key>authRef</types:key><types:value>contentOrganizations|contentOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>contentPersons|contentPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>inscriptionContentInscriber</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>inscriptionDescriptionInscriber</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>objectProductionPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>objectProductionOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>assocEventOrganizations|assocEventOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>assocEventPersons|assocEventPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>assocOrganizations|assocOrganization</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>assocPersons|assocPerson</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>owners|owner</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>fieldCollectionSources|fieldCollectionSource</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>fieldCollectors|fieldCollector</types:value></types:item>
                               versionable="true" auditable="false"
                               label="collectionobjects_common" updated="" order="1">
                     <service:properties>
+                        <!-- Commented out for now, as searching within a field in a complexType breaks searches. -->
+                        <!-- The following fields were placed into complexTypes in group repeatability work in CSPACE-2927: -->
+                        <!--
+                            <types:item><types:key>authRef</types:key><types:value>inscriptionContentInscriber</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>inscriptionDescriptionInscriber</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>objectProductionPerson</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>objectProductionOrganization</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>assocOrganizations|assocOrganization</types:value></types:item>
+                            <types:item><types:key>authRef</types:key><types:value>assocPersons|assocPerson</types:value></types:item>
+                        -->
                         <types:item><types:key>authRef</types:key><types:value>contentOrganizations|contentOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>contentPersons|contentPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>inscriptionContentInscriber</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>inscriptionDescriptionInscriber</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>objectProductionPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>objectProductionOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>assocEventOrganizations|assocEventOrganization</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>assocEventPersons|assocEventPerson</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>assocOrganizations|assocOrganization</types:value></types:item>
-                        <types:item><types:key>authRef</types:key><types:value>assocPersons|assocPerson</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>owners|owner</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>fieldCollectionSources|fieldCollectionSource</types:value></types:item>
                         <types:item><types:key>authRef</types:key><types:value>fieldCollectors|fieldCollector</types:value></types:item>
index fbe0db723e1f1a29fc75012abdfff84ae0b9511e..29aaffdf6b5c26001e13b9a4b344ec12da24df8f 100644 (file)
@@ -34,16 +34,18 @@ import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import org.collectionspace.services.account.AccountTenant;
-import org.collectionspace.services.client.AccountClient;
 import org.collectionspace.services.account.AccountsCommon;
 import org.collectionspace.services.account.Status;
+import org.collectionspace.services.client.AccountClient;
 import org.collectionspace.services.client.AccountFactory;
-import org.collectionspace.services.collectionobject.CollectionobjectsCommon;
 import org.collectionspace.services.client.CollectionObjectClient;
 import org.collectionspace.services.client.CollectionObjectFactory;
 import org.collectionspace.services.client.CollectionSpaceClient;
 import org.collectionspace.services.client.test.AbstractServiceTestImpl;
 import org.collectionspace.services.client.test.BaseServiceTest;
+import org.collectionspace.services.collectionobject.CollectionobjectsCommon;
+import org.collectionspace.services.collectionobject.TitleGroup;
+import org.collectionspace.services.collectionobject.TitleGroupList;
 import org.collectionspace.services.jaxb.AbstractCommonList;
 
 import org.slf4j.Logger;
@@ -454,7 +456,12 @@ public class AuthenticationServiceTest extends AbstractServiceTestImpl {
         CollectionobjectsCommon collectionObject = new CollectionobjectsCommon();
 
         collectionObject.setObjectNumber(objectNumber);
-        collectionObject.setTitle(title);
+        TitleGroupList titleGroupList = new TitleGroupList();
+        List<TitleGroup> titleGroups = titleGroupList.getTitleGroup();
+        TitleGroup titleGroup = new TitleGroup();
+        titleGroup.setTitle(title);
+        titleGroups.add(titleGroup);
+        collectionObject.setTitleGroupList(titleGroupList);
         MultipartOutput multipart =
                 CollectionObjectFactory.createCollectionObjectInstance(
                 commonPartName, collectionObject, null, null);