cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DefinedTermDaoImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/IdentifiableDaoBaseTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoHibernateImplTest.java -text
+cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaDaoImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/function/Datasource.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/function/TestCdmApplicationUtils.java -text
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/common/IdentifiableDaoBaseTest.xml -text
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/dataset.xsd -text
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoHibernateImplTest.xml -text
+cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaDaoImplTest.xml -text
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.xml -text
cdmlib-persistence/src/test/resources/unitils.properties -text
cdmlib-remote/LICENSE.TXT -text
import org.apache.log4j.Logger;\r
import org.hibernate.Criteria;\r
import org.hibernate.Query;\r
-import org.hibernate.criterion.CriteriaSpecification;\r
-import org.hibernate.criterion.DetachedCriteria;\r
import org.hibernate.criterion.Projections;\r
import org.hibernate.criterion.Restrictions;\r
-import org.hibernate.criterion.Subqueries;\r
import org.springframework.stereotype.Repository;\r
\r
import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
import eu.etaxonomy.cdm.model.description.Scope;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao;\r
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;\r
\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.media;\r
\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.hibernate.Criteria;\r
+import org.hibernate.criterion.Projections;\r
+import org.hibernate.criterion.Restrictions;\r
import org.springframework.stereotype.Repository;\r
\r
+import eu.etaxonomy.cdm.model.description.IdentificationKey;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmEntityDaoBase;\r
import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;\r
\r
public MediaDaoHibernateImpl() {\r
super(Media.class);\r
}\r
+\r
+ public int countIdentificationKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes) {\r
+ Criteria criteria = getSession().createCriteria(IdentificationKey.class);\r
+ \r
+ if(taxonomicScope != null && !taxonomicScope.isEmpty()) {\r
+ Set<Integer> taxonomicScopeIds = new HashSet<Integer>();\r
+ for(Taxon n : taxonomicScope) {\r
+ taxonomicScopeIds.add(n.getId());\r
+ }\r
+ criteria.createCriteria("taxonomicScope").add(Restrictions.in("id", taxonomicScopeIds));\r
+ }\r
+ \r
+ if(geoScopes != null && !geoScopes.isEmpty()) {\r
+ Set<Integer> geoScopeIds = new HashSet<Integer>();\r
+ for(NamedArea n : geoScopes) {\r
+ geoScopeIds.add(n.getId());\r
+ }\r
+ criteria.createCriteria("geoScopes").add(Restrictions.in("id", geoScopeIds));\r
+ }\r
+ \r
+ criteria.setProjection(Projections.countDistinct("id"));\r
+ \r
+ return (Integer)criteria.uniqueResult();\r
+ }\r
+\r
+ public List<IdentificationKey> getIdentificationKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes, Integer pageSize, Integer pageNumber) {\r
+ Criteria inner = getSession().createCriteria(IdentificationKey.class);\r
+ \r
+ if(taxonomicScope != null && !taxonomicScope.isEmpty()) {\r
+ Set<Integer> taxonomicScopeIds = new HashSet<Integer>();\r
+ for(Taxon n : taxonomicScope) {\r
+ taxonomicScopeIds.add(n.getId());\r
+ }\r
+ inner.createCriteria("taxonomicScope").add(Restrictions.in("id", taxonomicScopeIds));\r
+ }\r
+ \r
+ if(geoScopes != null && !geoScopes.isEmpty()) {\r
+ Set<Integer> geoScopeIds = new HashSet<Integer>();\r
+ for(NamedArea n : geoScopes) {\r
+ geoScopeIds.add(n.getId());\r
+ }\r
+ inner.createCriteria("geoScopes").add(Restrictions.in("id", geoScopeIds));\r
+ }\r
+ \r
+ inner.setProjection(Projections.distinct(Projections.id()));\r
+ \r
+ Criteria criteria = getSession().createCriteria(IdentificationKey.class);\r
+ criteria.add(Restrictions.in("id", (List<Integer>)inner.list()));\r
+ \r
+ if(pageSize != null) {\r
+ criteria.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ criteria.setFirstResult(pageNumber * pageSize);\r
+ }\r
+ }\r
+ \r
+ return (List<IdentificationKey>)criteria.list();\r
+ }\r
}\r
\r
package eu.etaxonomy.cdm.persistence.dao.media;\r
\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import eu.etaxonomy.cdm.model.description.IdentificationKey;\r
import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao;\r
\r
/**\r
* @created 08.09.2008\r
*/\r
public interface IMediaDao extends ICdmEntityDao<Media> {\r
+ \r
+ public int countIdentificationKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes);\r
+ \r
+ public List<IdentificationKey> getIdentificationKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes, Integer pageSize, Integer pageNumber);\r
\r
}\r
--- /dev/null
+package eu.etaxonomy.cdm.persistence.dao.hibernate.media;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+import org.unitils.spring.annotation.SpringBeanByType;
+
+import eu.etaxonomy.cdm.model.description.IdentificationKey;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
+import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;
+import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
+import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
+
+@DataSet
+public class MediaDaoImplTest extends CdmIntegrationTest {
+
+ @SpringBeanByType
+ IMediaDao mediaDao;
+
+ @SpringBeanByType
+ IDefinedTermDao definedTermDao;
+
+ @SpringBeanByType
+ ITaxonDao taxonDao;
+
+ UUID europeUuid;
+ UUID africaUuid;
+ UUID sphingidaeUuid;
+
+ Set<Taxon> taxonomicScope;
+ Set<NamedArea> geoScopes;
+
+ @Before
+ public void setUp() {
+ europeUuid = UUID.fromString("e860871c-3a14-4ef2-9367-bbd92586c95b");
+ africaUuid = UUID.fromString("9444016a-b334-4772-8795-ed4019552087");
+ sphingidaeUuid = UUID.fromString("54e767ee-894e-4540-a758-f906ecb4e2d9");
+
+ taxonomicScope = new HashSet<Taxon>();
+ geoScopes = new HashSet<NamedArea>();
+ }
+
+ @Test
+ public void testCountIdentificationKeys() {
+ int numberOfIdentificationKeys = mediaDao.countIdentificationKeys(null,null);
+
+ assertEquals("countIdentificationKeys should return 3",3,numberOfIdentificationKeys);
+ }
+
+ @Test
+ public void testGetIdentificationKeys() {
+ List<IdentificationKey> keys = mediaDao.getIdentificationKeys(null, null, null, null);
+
+ assertNotNull("getIdentificationKeys should return a List",keys);
+ assertFalse("The list should not be empty",keys.isEmpty());
+ assertEquals("The list should contain 3 IdentificationKey instances",3, keys.size());
+ }
+
+ @Test
+ public void testCountIdentificationKeysWithScope() {
+ NamedArea europe = (NamedArea)definedTermDao.findByUuid(europeUuid);
+ NamedArea africa = (NamedArea)definedTermDao.findByUuid(africaUuid);
+ Taxon sphingidae = (Taxon)taxonDao.findByUuid(sphingidaeUuid);
+ assert europe != null : "NamedArea must exist";
+ assert africa != null : "NamedArea must exist";
+ assert sphingidae != null : "Taxon must exist";
+
+ geoScopes.add(europe);
+ geoScopes.add(africa);
+ taxonomicScope.add(sphingidae);
+
+ int numberOfIdentificationKeys = mediaDao.countIdentificationKeys(taxonomicScope,geoScopes);
+
+ assertEquals("countIdentificationKeys should return 1",1,numberOfIdentificationKeys);
+ }
+
+ @Test
+ public void testGetIdentificationKeysWithScope() {
+ NamedArea europe = (NamedArea)definedTermDao.findByUuid(europeUuid);
+ NamedArea africa = (NamedArea)definedTermDao.findByUuid(africaUuid);
+ Taxon sphingidae = (Taxon)taxonDao.findByUuid(sphingidaeUuid);
+ assert europe != null : "NamedArea must exist";
+ assert africa != null : "NamedArea must exist";
+ assert sphingidae != null : "Taxon must exist";
+
+ geoScopes.add(europe);
+ geoScopes.add(africa);
+ taxonomicScope.add(sphingidae);
+
+ List<IdentificationKey> keys = mediaDao.getIdentificationKeys(taxonomicScope,geoScopes, null, null);
+
+ assertNotNull("getIdentificationKeys should return a List",keys);
+ assertFalse("The list should not be empty",keys.isEmpty());
+ assertEquals("The list should contain 1 IdentificationKey instance",1, keys.size());
+ }
+
+}
<xsd:element name="TAXONNAMEBASE_NOMENCLATURALSTATUS" type="TAXONNAMEBASE_NOMENCLATURALSTATUS__type" />
<xsd:element name="SEQUENCE_MEDIA" type="SEQUENCE_MEDIA__type" />
<xsd:element name="SEQUENCE_REFERENCEBASE" type="SEQUENCE_REFERENCEBASE__type" />
+ <xsd:element name="IDENTIFICATIONKEY_TAXON" type="IDENTIFICATIONKEY_TAXON__type" />
<xsd:element name="DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" type="DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE_MODIFIER" type="DESCRIPTIONELEMENTBASE_MODIFIER__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE_MEDIA" type="DESCRIPTIONELEMENTBASE_MEDIA__type" />
<xsd:element name="TAXONBASE_RIGHTS" type="TAXONBASE_RIGHTS__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE" type="DESCRIPTIONELEMENTBASE__type" />
<xsd:element name="HOMOTYPICALGROUP" type="HOMOTYPICALGROUP__type" />
- <xsd:element name="DESCRIPTIONBASE_RIGHTS" type="DESCRIPTIONBASE_RIGHTS__type" />
<xsd:element name="REFERENCEBASE_MEDIA" type="REFERENCEBASE_MEDIA__type" />
+ <xsd:element name="DESCRIPTIONBASE_RIGHTS" type="DESCRIPTIONBASE_RIGHTS__type" />
<xsd:element name="COLLECTION" type="COLLECTION__type" />
<xsd:element name="TAXONBASE_ANNOTATION" type="TAXONBASE_ANNOTATION__type" />
<xsd:element name="TAXONRELATIONSHIP" type="TAXONRELATIONSHIP__type" />
<xsd:element name="MEDIAREPRESENTATIONPART" type="MEDIAREPRESENTATIONPART__type" />
<xsd:element name="SYNONYMRELATIONSHIP" type="SYNONYMRELATIONSHIP__type" />
<xsd:element name="CONTACT" type="CONTACT__type" />
+ <xsd:element name="MEDIA_DEFINEDTERMBASE" type="MEDIA_DEFINEDTERMBASE__type" />
<xsd:element name="TYPEDESIGNATIONBASE" type="TYPEDESIGNATIONBASE__type" />
<xsd:element name="LANGUAGESTRING" type="LANGUAGESTRING__type" />
<xsd:element name="HOMOTYPICALGROUP_ANNOTATION" type="HOMOTYPICALGROUP_ANNOTATION__type" />
<xsd:attribute name="CITATIONMICROREFERENCE" use="optional" />
<xsd:attribute name="UUID" use="optional" />
<xsd:attribute name="RELATEDTO_ID" use="optional" />
- <xsd:attribute name="RELATEDFROM_ID" use="optional" />
<xsd:attribute name="RULECONSIDERED" use="optional" />
+ <xsd:attribute name="RELATEDFROM_ID" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
<xsd:attribute name="CITATION_ID" use="optional" />
<xsd:attribute name="CITATIONS_ID" use="optional" />
<xsd:attribute name="SEQUENCE_ID" use="optional" />
</xsd:complexType>
+ <xsd:complexType name="IDENTIFICATIONKEY_TAXON__type">
+ <xsd:attribute name="TAXON_FK" use="optional" />
+ <xsd:attribute name="IDENTIFICATIONKEY_FK" use="optional" />
+ </xsd:complexType>
<xsd:complexType name="DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION__type">
<xsd:attribute name="DEFINEDTERMBASE_ID" use="optional" />
<xsd:attribute name="SUPPORTEDCATEGORICALENUMERATIONS_ID" use="optional" />
<xsd:attribute name="NAME" use="optional" />
<xsd:attribute name="STATUS_ID" use="optional" />
<xsd:attribute name="CITATIONMICROREFERENCE" use="optional" />
- <xsd:attribute name="LANGUAGE_ID" use="optional" />
<xsd:attribute name="DESCRIPTION" use="optional" />
+ <xsd:attribute name="LANGUAGE_ID" use="optional" />
<xsd:attribute name="UUID" use="optional" />
<xsd:attribute name="UNIT_ID" use="optional" />
<xsd:attribute name="MODIFYINGTEXT" use="optional" />
<xsd:attribute name="ASSOCIATEDSPECIMENOROBSERVATION_ID" use="optional" />
<xsd:attribute name="AREA_ID" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
- <xsd:attribute name="INDESCRIPTION_ID" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
+ <xsd:attribute name="INDESCRIPTION_ID" use="optional" />
<xsd:attribute name="CITATION_ID" use="optional" />
<xsd:attribute name="TAXON2_ID" use="optional" />
<xsd:attribute name="UPDATED" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
</xsd:complexType>
- <xsd:complexType name="DESCRIPTIONBASE_RIGHTS__type">
- <xsd:attribute name="DESCRIPTIONBASE_ID" use="optional" />
- <xsd:attribute name="RIGHTS_ID" use="optional" />
- </xsd:complexType>
<xsd:complexType name="REFERENCEBASE_MEDIA__type">
<xsd:attribute name="REFERENCEBASE_ID" use="optional" />
<xsd:attribute name="MEDIA_ID" use="optional" />
</xsd:complexType>
+ <xsd:complexType name="DESCRIPTIONBASE_RIGHTS__type">
+ <xsd:attribute name="DESCRIPTIONBASE_ID" use="optional" />
+ <xsd:attribute name="RIGHTS_ID" use="optional" />
+ </xsd:complexType>
<xsd:complexType name="COLLECTION__type">
<xsd:attribute name="SUPERCOLLECTION_ID" use="optional" />
<xsd:attribute name="NAME" use="optional" />
<xsd:attribute name="SEX_ID" use="optional" />
<xsd:attribute name="DEFINITION" use="optional" />
<xsd:attribute name="TITLECACHE" use="optional" />
- <xsd:attribute name="GATHERINGEVENT_ID" use="optional" />
<xsd:attribute name="LIFESTAGE_ID" use="optional" />
+ <xsd:attribute name="GATHERINGEVENT_ID" use="optional" />
<xsd:attribute name="UPDATED" use="optional" />
<xsd:attribute name="ID" use="optional" />
<xsd:attribute name="CREATEDBY_ID" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
<xsd:attribute name="LSID" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
- <xsd:attribute name="TITLECACHE" use="optional" />
<xsd:attribute name="TAXONNAME_FK" use="optional" />
+ <xsd:attribute name="TITLECACHE" use="optional" />
<xsd:attribute name="SEC_ID" use="optional" />
<xsd:attribute name="DOUBTFUL" use="optional" />
<xsd:attribute name="UPDATED" use="optional" />
<xsd:attribute name="ID" use="optional" />
- <xsd:attribute name="CREATEDBY_ID" use="optional" />
<xsd:attribute name="DTYPE" use="optional" />
+ <xsd:attribute name="CREATEDBY_ID" use="optional" />
<xsd:attribute name="TAXONOMICCHILDRENCOUNT" use="optional" />
<xsd:attribute name="TAXONOMICPARENTCACHE_ID" use="optional" />
<xsd:attribute name="PROTECTEDTITLECACHE" use="optional" />
<xsd:attribute name="DOUBTFUL" use="optional" />
<xsd:attribute name="UPDATED" use="optional" />
<xsd:attribute name="ORIGINALNAMESTRING" use="optional" />
- <xsd:attribute name="ID" use="optional" />
<xsd:attribute name="TYPE_ID" use="optional" />
+ <xsd:attribute name="ID" use="optional" />
<xsd:attribute name="CREATEDBY_ID" use="optional" />
</xsd:complexType>
<xsd:complexType name="TAXONNAMEBASE_ANNOTATION__type">
<xsd:attribute name="URI" use="optional" />
<xsd:attribute name="SUPPORTSINDIVIDUALASSOCIATION" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
- <xsd:attribute name="UPDATEDBY_ID" use="optional" />
<xsd:attribute name="POINTAPPROXIMATION_REFERENCESYSTEM_ID" use="optional" />
+ <xsd:attribute name="UPDATEDBY_ID" use="optional" />
<xsd:attribute name="SYMMETRIC" use="optional" />
<xsd:attribute name="PARTOF_ID" use="optional" />
<xsd:attribute name="SUPPORTSTAXONINTERACTION" use="optional" />
<xsd:attribute name="LOCATION_LONGITUDE" use="optional" />
<xsd:attribute name="POSTCODE" use="optional" />
<xsd:attribute name="POBOX" use="optional" />
- <xsd:attribute name="CONTACT_ID" use="optional" />
<xsd:attribute name="CREATED" use="optional" />
<xsd:attribute name="LOCATION_LATITUDE" use="optional" />
<xsd:attribute name="STREET" use="optional" />
+ <xsd:attribute name="CONTACT_ID" use="optional" />
<xsd:attribute name="LOCALITY" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
<xsd:attribute name="COUNTRY_ID" use="optional" />
<xsd:attribute name="FAX" use="optional" />
<xsd:attribute name="UPDATEDBY_ID" use="optional" />
</xsd:complexType>
+ <xsd:complexType name="MEDIA_DEFINEDTERMBASE__type">
+ <xsd:attribute name="GEOSCOPES_ID" use="optional" />
+ <xsd:attribute name="MEDIA_ID" use="optional" />
+ </xsd:complexType>
<xsd:complexType name="TYPEDESIGNATIONBASE__type">
<xsd:attribute name="TYPENAME_ID" use="optional" />
- <xsd:attribute name="CITATIONMICROREFERENCE" use="optional" />
<xsd:attribute name="HOMOTYPICALGROUP_ID" use="optional" />
+ <xsd:attribute name="CITATIONMICROREFERENCE" use="optional" />
<xsd:attribute name="TYPESPECIMEN_ID" use="optional" />
<xsd:attribute name="CONSERVEDTYPE" use="optional" />
<xsd:attribute name="UUID" use="optional" />
<xsd:element name="TAXONNAMEBASE_NOMENCLATURALSTATUS" type="dflt:TAXONNAMEBASE_NOMENCLATURALSTATUS__type" />
<xsd:element name="SEQUENCE_MEDIA" type="dflt:SEQUENCE_MEDIA__type" />
<xsd:element name="SEQUENCE_REFERENCEBASE" type="dflt:SEQUENCE_REFERENCEBASE__type" />
+ <xsd:element name="IDENTIFICATIONKEY_TAXON" type="dflt:IDENTIFICATIONKEY_TAXON__type" />
<xsd:element name="DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION" type="dflt:DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE_MODIFIER" type="dflt:DESCRIPTIONELEMENTBASE_MODIFIER__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE_MEDIA" type="dflt:DESCRIPTIONELEMENTBASE_MEDIA__type" />
<xsd:element name="TAXONBASE_RIGHTS" type="dflt:TAXONBASE_RIGHTS__type" />
<xsd:element name="DESCRIPTIONELEMENTBASE" type="dflt:DESCRIPTIONELEMENTBASE__type" />
<xsd:element name="HOMOTYPICALGROUP" type="dflt:HOMOTYPICALGROUP__type" />
- <xsd:element name="DESCRIPTIONBASE_RIGHTS" type="dflt:DESCRIPTIONBASE_RIGHTS__type" />
<xsd:element name="REFERENCEBASE_MEDIA" type="dflt:REFERENCEBASE_MEDIA__type" />
+ <xsd:element name="DESCRIPTIONBASE_RIGHTS" type="dflt:DESCRIPTIONBASE_RIGHTS__type" />
<xsd:element name="COLLECTION" type="dflt:COLLECTION__type" />
<xsd:element name="TAXONBASE_ANNOTATION" type="dflt:TAXONBASE_ANNOTATION__type" />
<xsd:element name="TAXONRELATIONSHIP" type="dflt:TAXONRELATIONSHIP__type" />
<xsd:element name="MEDIAREPRESENTATIONPART" type="dflt:MEDIAREPRESENTATIONPART__type" />
<xsd:element name="SYNONYMRELATIONSHIP" type="dflt:SYNONYMRELATIONSHIP__type" />
<xsd:element name="CONTACT" type="dflt:CONTACT__type" />
+ <xsd:element name="MEDIA_DEFINEDTERMBASE" type="dflt:MEDIA_DEFINEDTERMBASE__type" />
<xsd:element name="TYPEDESIGNATIONBASE" type="dflt:TYPEDESIGNATIONBASE__type" />
<xsd:element name="LANGUAGESTRING" type="dflt:LANGUAGESTRING__type" />
<xsd:element name="HOMOTYPICALGROUP_ANNOTATION" type="dflt:HOMOTYPICALGROUP_ANNOTATION__type" />