}
public static CdmRemoteSource getDevServerRemoteSource() {
- String value=System.getProperty("cdm.server.dev.activate");
+ String value = System.getProperty("cdm.server.dev.port");
boolean available = false;
CdmInstanceInfo devInstance = null;
- if(value != null && value.equals("true")) {
- CdmServerInfo devCii = new CdmServerInfo(NAME_LOCALHOST_DEV, SERVER_LOCALHOST_DEV, PORT_LOCALHOST_DEV);
+ if(value != null && !value.isEmpty()) {
+ int devPort = Integer.valueOf(value);
+ CdmServerInfo devCii = new CdmServerInfo(NAME_LOCALHOST_DEV, SERVER_LOCALHOST_DEV, devPort);
try {
devInstance = devCii.addInstance(NAME_INSTANCE_LOCALHOST_DEV, BASEPATH_LOCALHOST_DEV);
- available = devCii.pingInstance(devInstance, PORT_LOCALHOST_DEV);
+ available = devCii.pingInstance(devInstance, devPort);
if(available) {
- return devCii.getCdmRemoteSource(devInstance, PORT_LOCALHOST_DEV);
+ return devCii.getCdmRemoteSource(devInstance, devPort);
}
} catch (Exception e) {
import java.util.Collection;
import org.apache.http.client.ClientProtocolException;
+import org.eclipse.core.runtime.jobs.Job;
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.editor.view.dataimport.transientServices.TransientCdmRepository;
//FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
InputStream resultStream;
resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint);
- Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
+ Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(null, null);
TransientCdmRepository repo =
new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
configurator.setCdmAppController(repo);
configurator.setAddMediaAsMediaSpecimen(true);
-
- CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
- importer.invoke(configurator);
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
+ CdmStore.getImportManager().run(job);
+ } else {
+ configurator.setSource(resultStream);
+ CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
+ importer.invoke(configurator);
+ }
results = repo.getUnits();
setResults(results);
} catch (ClientProtocolException e) {
package eu.etaxonomy.taxeditor.io;
-import java.io.File;
-
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.progress.IProgressConstants;
* a CONFIGURATOR object.
*/
public void run(final CONFIGURATOR configurator) {
- // create job
- Job job = createIOJob(configurator);
- // configure the job
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
- job.setUser(true);
- // schedule job
- job.schedule();
+ // create job
+ Job job = createIOJob(configurator);
+ run(job);
+ }
+ public void run(Job job) {
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
}
/**
*/
protected abstract Job createIOJob(CONFIGURATOR configurator);
- public abstract Job createIOServiceJob(CONFIGURATOR configurator, File ioFile);
}
return job;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator)
- */
- @Override
public Job createIOServiceJob(final IExportConfigurator configurator, final File exportFile) {
Assert.isNotNull(configurator, "Configuration may not be null");
package eu.etaxonomy.taxeditor.io;
import java.io.File;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.apache.commons.io.IOUtils;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
+import eu.etaxonomy.cdm.io.service.IIOService;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* <p>
}
+ public Job createIOServiceJob(IImportConfigurator configurator, InputStream is, SOURCE_TYPE type) {
+
+ try {
+ return createIOServiceJob(configurator, IOUtils.toByteArray(is), type);
+ } catch (Exception e) {
+ MessagingUtils.errorDialog("Error importing input stream",
+ this,
+ e.getMessage(),
+ TaxeditorStorePlugin.PLUGIN_ID,
+ e,
+ true);
+ }
+ return null;
+ }
+
+ public Job createIOServiceJob(IImportConfigurator configurator, File importFile, SOURCE_TYPE type) {
+ Path path = Paths.get(importFile.toURI());
+ try {
+ return createIOServiceJob(configurator, Files.readAllBytes(path), type);
+ } catch (Exception e) {
+ MessagingUtils.errorDialog("Error importing file",
+ this,
+ e.getMessage(),
+ TaxeditorStorePlugin.PLUGIN_ID,
+ e,
+ true);
+ }
+ return null;
+ }
+
+ public Job createIOServiceJob(final IImportConfigurator configurator, final byte[] data, final SOURCE_TYPE type) {
+ Assert.isNotNull(configurator, "Configuration may not be null");
+ final Display display = Display.getDefault();
+ Job job = new Job("Import: " + configurator.getClass().getSimpleName()) {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+ IIOService ioService = CdmApplicationState.getIOService();
+
+ ioService.importData(configurator, data, type);
+
+ monitor.done();
+
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ CdmStore.getContextManager().notifyContextRefresh();
+ }
+ });
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ return job;
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator)
- */
- @Override
- public Job createIOServiceJob(IImportConfigurator configurator, File importFile) {
- // TODO Auto-generated method stub
- return null;
}
private IImportConfigurator getConfigurator(TYPE type) {
import java.net.URI;
import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
/** {@inheritDoc} */
@Override
public boolean performFinish() {
- URI source = dataSourcePage.getUri();
- try {
- configurator.setSource(new FileInputStream(new File(source)));
- } catch (FileNotFoundException e) {
- MessagingUtils.errorDialog("File not found.", this, "Import file was not found.", TaxeditorStorePlugin.PLUGIN_ID, e, false);
- logger.error("File not found!", e);
- return false;
- }
- configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ URI source = dataSourcePage.getUri();
+ configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
- if(classificationChooserWizardPage.getClassification()!=null){
- configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
- }
- configurator.setReportUri(classificationChooserWizardPage.getReportUri());
+ if(classificationChooserWizardPage.getClassification()!=null){
+ configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
+ }
+ configurator.setReportUri(classificationChooserWizardPage.getReportUri());
- CdmStore.getImportManager().run(configurator);
- return true;
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+ CdmStore.getImportManager().run(job);
+ } else {
+ try {
+ configurator.setSource(new FileInputStream(new File(source)));
+ } catch (FileNotFoundException e) {
+ MessagingUtils.errorDialog("File not found.", this, "Import file was not found.", TaxeditorStorePlugin.PLUGIN_ID, e, false);
+ logger.error("File not found!", e);
+ return false;
+ }
+ CdmStore.getImportManager().run(configurator);
+ }
+ return true;
}
package eu.etaxonomy.taxeditor.io.wizard;
+import java.io.File;
import java.net.URI;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
import eu.etaxonomy.taxeditor.store.CdmStore;
configurator.setSource(source);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
- CdmStore.getImportManager().run(configurator);
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+ } else {
+ CdmStore.getImportManager().run(configurator);
+ }
+
return true;
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.io.wizard;
+import java.io.File;
import java.net.URI;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
import eu.etaxonomy.taxeditor.store.CdmStore;
public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator> {
private SDDImportConfigurator configurator;
-
+
private ImportFromFileDataSourceWizardPage dataSourcePage;
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
*/
public SDDImportConfigurator getConfigurator() {
return configurator;
}
-
+
/*
* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#addPage(org.eclipse.jface.wizard.IWizardPage)
@Override
public void addPages() {
super.addPages();
-
- dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose File",
+
+ dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose File",
"Please choose an XML file in the SDD format.", new String[]{"*.xml", "*.sdd"});
addPage(dataSourcePage);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
URI source = dataSourcePage.getUri();
configurator.setSource(source);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
- CdmStore.getImportManager().run(configurator);
-
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+ } else {
+ CdmStore.getImportManager().run(configurator);
+ }
+
return true;
}
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
super.init(workbench, selection);
configurator = CdmStore.getImportManager().SddConfigurator();
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.io.wizard;
+import java.io.File;
import java.net.URI;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @created 15.06.2009
* @version 1.0
*/
-public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurator>{
-
+public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurator> {
+
private TcsXmlImportConfigurator configurator;
private ImportFromFileDataSourceWizardPage dataSourcePage;
/** {@inheritDoc} */
@Override
public boolean performFinish() {
- URI source = dataSourcePage.getUri();
- configurator.setSource(source);
- configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
- CdmStore.getImportManager().run(configurator);
-
- return true;
+ URI source = dataSourcePage.getUri();
+ configurator.setSource(source);
+ configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+ } else {
+ CdmStore.getImportManager().run(configurator);
+ }
+
+ return true;
}
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
super.init(workbench, selection);
configurator = CdmStore.getImportManager().TcsConfigurator();
}
@Override
public void addPages() {
super.addPages();
-
+
dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
addPage(dataSourcePage);
}
private String serverName, instanceName;
private boolean autoConnect = false;
private boolean loadLoginPrefs = true;
+ private boolean isDevRemoteSource = false;
/**
* Create the dialog.
CdmRemoteSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
if(devRemoteSource != null) {
CdmStore.connect(devRemoteSource, this);
+ isDevRemoteSource = true;
}
Display display = getParent().getDisplay();
}
private void readPrefCredentials() {
+ String username, password;
+ if(isDevRemoteSource) {
+ username = System.getProperty("cdm.server.dev.username");
+ password = System.getProperty("cdm.server.dev.password");
+ if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
+ txtLogin.setText(username);
+ txtPassword.setText(password);
+ return;
+ }
+ }
IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE);
Preferences credentialsPrefs = preferences.node(LOGIN_NODE);
- String username = credentialsPrefs.get(getUsernamePrefKey(), "");
+ username = credentialsPrefs.get(getUsernamePrefKey(), "");
txtLogin.setText(username);
- String password = credentialsPrefs.get(getPasswordPrefKey(), "");
+ password = credentialsPrefs.get(getPasswordPrefKey(), "");
txtPassword.setText(password);
if(username.isEmpty() || password.isEmpty()) {
autoConnect = false;
import org.unitils.dbunit.annotation.DataSet;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.io.common.ExportResult;
import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;
import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
*
*/
@DataSet
-public class IOServiceTest extends BaseRemotingTest {
+public class IOServiceExportTest extends BaseRemotingTest {
private final IIOService ioService = CdmApplicationState.getIOService();
+ private final INameService nameService = CdmApplicationState.getCurrentAppConfig().getNameService();
@Test
public void exportJaxbTest() {
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.service;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.common.ImportResult;
+import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
+import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
+import eu.etaxonomy.cdm.io.service.IIOService;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
+import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+/**
+ *
+ * Note : One issue with this test class is that when the tests are run a second time
+ * against the same server there are errors due to the fact that not all the imported data is deleted.
+ * This needs to be fixed
+ * @author cmathew
+ * @date 5 Aug 2015
+ *
+ */
+@Ignore // seems to cause problems with other tests due to data not deleted
+@DataSet
+public class IOServiceImportTest extends BaseRemotingTest {
+
+ private final IIOService ioService = CdmApplicationState.getIOService();
+ private final INameService nameService = CdmApplicationState.getCurrentAppConfig().getNameService();
+ private final IOccurrenceService occurrenceService = CdmApplicationState.getCurrentAppConfig().getOccurrenceService();
+
+ @Test
+ public void importNormalExplicit() throws IOException {
+ String importFilePath = "src/test/resources/imports/NormalExplicitImport.xls";
+ NormalExplicitImportConfigurator config =
+ NormalExplicitImportConfigurator.NewInstance(null, null, null, null);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
+ Assert.assertTrue(result.isSuccess());
+ List<TaxonNameBase> list = nameService.list(TaxonNameBase.class, null, null, null, null);
+ Assert.assertEquals(9,list.size());
+ }
+
+
+ @Test
+ public void importAbcd() throws IOException {
+ String importFilePath = "src/test/resources/imports/ABCDImport.xml";
+ Abcd206ImportConfigurator config =
+ Abcd206ImportConfigurator.NewInstance(null, null);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.INPUTSTREAM);
+ Assert.assertTrue(result.isSuccess());
+ Assert.assertTrue(!result.getReports().isEmpty());
+ saveToFile("target/importAbcdReport.txt", result.getReports().get(0));
+ List<TaxonNameBase> list = nameService.list(TaxonNameBase.class, null, null, null, null);
+ Assert.assertEquals(2,list.size());
+ }
+
+ @Test
+ public void importSDD() throws IOException {
+ String importFilePath = "src/test/resources/imports/SDD.xml";
+ SDDImportConfigurator config =
+ SDDImportConfigurator.NewInstance(null, null);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
+ Assert.assertTrue(result.isSuccess());
+ List<TaxonNameBase> list = nameService.list(TaxonNameBase.class, null, null, null, null);
+ Assert.assertEquals(9,list.size());
+ }
+
+ @Test
+ public void importSpecimenExcel() throws IOException {
+ String importFilePath = "src/test/resources/imports/SpecimenExcelImport.xls";
+ SpecimenCdmExcelImportConfigurator config = SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
+ Assert.assertTrue(result.isSuccess());
+// List<SpecimenOrObservationBase> occurrences = occurrenceService.list(SpecimenOrObservationBase.class, null, null, null, null);
+// Assert.assertEquals(3,occurrences.size());
+ }
+
+ @Test
+ public void importTCS() throws IOException {
+ String importFilePath = "src/test/resources/imports/TcsImport.xml";
+ TcsXmlImportConfigurator config = TcsXmlImportConfigurator.NewInstance(null, null);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setDbSchemaValidation(DbSchemaValidation.CREATE);
+ ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
+ Assert.assertTrue(result.isSuccess());
+ List<TaxonNameBase> list = nameService.list(TaxonNameBase.class, null, null, null, null);
+ Assert.assertEquals(16,list.size());
+ }
+
+ private byte[] fileToByteArray(String filePath) throws IOException {
+ Path path = Paths.get(filePath);
+ return Files.readAllBytes(path);
+ }
+
+ private static void saveToFile(String filePath, byte[] data) {
+ FileOutputStream stream = null;
+ try {
+ stream = new FileOutputStream(filePath);
+ stream.write(data);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if(stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<dataset>
+ <TaxonNameBase />
+ <TaxonBase />
+ <TaxonNode />
+ <Classification />
+</dataset>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<abcd:DataSets xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:ns1="http://www.dnabank-network.org/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
+ <abcd:DataSet>
+ <abcd:DatasetGUID>www.floraweb.de/florkart/atlas/2007</abcd:DatasetGUID>
+ <abcd:TechnicalContacts>
+ <abcd:TechnicalContact>
+ <abcd:Name>Rudolf May</abcd:Name>
+ <abcd:Email>rudolf.may@bfn.de</abcd:Email>
+ <abcd:Phone>+49-228-84911441</abcd:Phone>
+ <abcd:Address>BfN, Konstantinstr. 110, D-53179 Bonn</abcd:Address>
+ </abcd:TechnicalContact>
+ </abcd:TechnicalContacts>
+ <abcd:ContentContacts>
+ <abcd:ContentContact>
+ <abcd:Name>Rudolf May</abcd:Name>
+ <abcd:Email>rudolf.may@bfn.de</abcd:Email>
+ <abcd:Phone>+49-228-84911441</abcd:Phone>
+ <abcd:Address>BfN, Konstantinstr. 110, D-53179 Bonn</abcd:Address>
+ </abcd:ContentContact>
+ </abcd:ContentContacts>
+ <abcd:Metadata>
+ <abcd:Description>
+ <abcd:Representation abcd:language="GE German Deutsch">
+ <abcd:Title>FlorKart - FlorenKartierung Gefaesspflanzen</abcd:Title>
+ <abcd:Details>Verbreitung der Farn- und Bluetenpflanzen in Deutschland, Vorkommensnachweise aggregiert auf Rasterfelder der Topographischen Karte im Massstab 1 : 25000 (TK25 = MTB), Blattschnitt 6 x 10 Minuten, sowie in Zeitperioden 'vor 1950', '1950 - 1980', '1980 - 2000'</abcd:Details>
+ <abcd:Coverage>Deutschland</abcd:Coverage>
+ <abcd:URI>http://www.floraweb.de</abcd:URI>
+ </abcd:Representation>
+ </abcd:Description>
+ <abcd:IconURI>http://www.floraweb.de/images/floraweb.gif</abcd:IconURI>
+ <abcd:Version>
+ <abcd:Major>2007</abcd:Major>
+ </abcd:Version>
+ <abcd:RevisionData>
+ <abcd:Creators>Netzwerk Phytodiversitaet Deutschlands (NetPhyD) und Bundesamt für Naturschutz (BfN)</abcd:Creators>
+ <abcd:Contributors>Alle ehrenamtlich an der Floristischen Kartierung Deutschlands beteiligten Mitarbeiter</abcd:Contributors>
+ <abcd:DateCreated>2007-01-01</abcd:DateCreated>
+ <abcd:DateModified>2010-01-01</abcd:DateModified>
+ </abcd:RevisionData>
+ <abcd:Owners>
+ <abcd:Owner>
+ <abcd:Organisation>
+ <abcd:Name>
+ <abcd:Representation abcd:language="GE German Deutsch">
+ <abcd:Text>Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversität Deutschlands (NetPhyD)</abcd:Text>
+ <abcd:Abbreviation>BfN/NetPhyD</abcd:Abbreviation>
+ </abcd:Representation>
+ </abcd:Name>
+ </abcd:Organisation>
+ <abcd:Person>
+ <abcd:FullName>Rudolf May</abcd:FullName>
+ </abcd:Person>
+ <abcd:Roles>
+ <abcd:Role>Project Manager</abcd:Role>
+ </abcd:Roles>
+ <abcd:Addresses>
+ <abcd:Address>BfN, Konstantinstr. 110, D-53179 Bonn</abcd:Address>
+ </abcd:Addresses>
+ <abcd:TelephoneNumbers>
+ <abcd:TelephoneNumber>
+ <abcd:Number>+49-228-84911441</abcd:Number>
+ <abcd:Device>voice</abcd:Device>
+ </abcd:TelephoneNumber>
+ </abcd:TelephoneNumbers>
+ <abcd:EmailAddresses>
+ <abcd:EmailAddress>floraweb@bfn.de</abcd:EmailAddress>
+ </abcd:EmailAddresses>
+ <abcd:URIs>
+ <abcd:URL>http://www.bfn.de</abcd:URL>
+ </abcd:URIs>
+ <abcd:LogoURI>http://www.bfn.de/fileadmin/global/templates/images/logo_bfn.gif</abcd:LogoURI>
+ </abcd:Owner>
+ </abcd:Owners>
+ <abcd:IPRStatements>
+ <abcd:IPRDeclarations>
+ <abcd:IPRDeclaration abcd:language="GE German Deutsch">
+ <abcd:Text>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:Text>
+ <abcd:Details>Alle amtlich und ehrenamtlich an der Floristischen Kartierung Deutschlands beteiligten Mitarbeiter</abcd:Details>
+ </abcd:IPRDeclaration>
+ </abcd:IPRDeclarations>
+ <abcd:Copyrights>
+ <abcd:Copyright abcd:language="GE German Deutsch">
+ <abcd:Text>BfN/NetPhyD</abcd:Text>
+ <abcd:Details>Bundesamt fuer Naturschutz und Netzwerk Phytodiversitaet Deutschlands</abcd:Details>
+ </abcd:Copyright>
+ </abcd:Copyrights>
+ <abcd:TermsOfUseStatements>
+ <abcd:TermsOfUse abcd:language="GE German Deutsch">
+ <abcd:Text>Bei Verwendung in Publikationen bitte die Datenquelle vollstaendig zitieren.</abcd:Text>
+ <abcd:Details>Bei Verwendung in Publikationen bitte die Datenquelle vollstaendig zitieren. Die Verwendung der Daten zu kommerziellen Zwecken wird untersagt.</abcd:Details>
+ </abcd:TermsOfUse>
+ </abcd:TermsOfUseStatements>
+ <abcd:Disclaimers>
+ <abcd:Disclaimer abcd:language="GE German Deutsch">
+ <abcd:Text>Fuer die Richtigkeit der Daten wird keine Gewaehrleistung uebernommen</abcd:Text>
+ <abcd:Details>Fuer die Richtigkeit der Daten wird keine Gewaehrleistung uebernommen</abcd:Details>
+ </abcd:Disclaimer>
+ </abcd:Disclaimers>
+ <abcd:Acknowledgements>
+ <abcd:Acknowledgement abcd:language="GE German Deutsch">
+ <abcd:Text>In Anerkennung der Leistungen der ehrenamtlichen Kartierer der Flora Deutschlands</abcd:Text>
+ <abcd:Details>Die Kompilation der Verbreitungsdaten beruht auf unentgeltlich erbrachten Kartierungsleistungen von über 2000 ehrenamtlichen Mitarbeitern der Floristischen Kartierung Deutschlands, die in zahlreichen regionalen Kartierungsprojekten organisiert sind.</abcd:Details>
+ <abcd:URI>http://www.floraweb.de/pflanzenarten/hintergrundtexte_florkart_organisation.html</abcd:URI>
+ </abcd:Acknowledgement>
+ </abcd:Acknowledgements>
+ <abcd:Citations>
+ <abcd:Citation abcd:language="GE German Deutsch">
+ <abcd:Text>Datenbank FLORKART, BfN und NetPhyD</abcd:Text>
+ <abcd:Details>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:Details>
+ </abcd:Citation>
+ </abcd:Citations>
+ </abcd:IPRStatements>
+ </abcd:Metadata>
+ <abcd:Units>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003121</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 3915: Bockhorst</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>3915</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>8.25</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>52.06</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6363</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003122</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 3916: Halle (Westfalen)</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>3916</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>8.42</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>52.06</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6363</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003123</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 5628: Bad Königshofen im Grabfeld</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>5628</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>10.42</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>50.36</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6481</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003124</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 5634: Teuschnitz</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>5634</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.42</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>50.36</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6482</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003125</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 5635: Nordhalben</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>5635</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.58</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>50.36</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6483</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003126</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 5728: Oberlauringen</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>5728</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>10.42</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>50.26</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6487</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003127</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 6132: Buttenheim</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>6132</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.08</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>49.86</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6515</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003128</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 6232: Forchheim</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>6232</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.08</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>49.76</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6522</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003129</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 6235: Pegnitz</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>6235</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.58</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>49.76</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6523</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ <abcd:Unit>
+ <abcd:SourceInstitutionID>BfN</abcd:SourceInstitutionID>
+ <abcd:SourceID>FlorKart_BfN</abcd:SourceID>
+ <abcd:UnitID>1003130</abcd:UnitID>
+ <abcd:UnitReferences>
+ <abcd:UnitReference>
+ <abcd:TitleCitation>Datenbank FLORKART, BfN und NetPhyD</abcd:TitleCitation>
+ <abcd:CitationDetail>Datenbank FLORKART der Floristischen Kartierung Deutschlands, Stand 2007, Bundesamt für Naturschutz (BfN) und Netzwerk Phytodiversitaet Deutschland (NetPhyD)</abcd:CitationDetail>
+ </abcd:UnitReference>
+ </abcd:UnitReferences>
+ <abcd:Identifications>
+ <abcd:Identification>
+ <abcd:Result>
+ <abcd:TaxonIdentified>
+ <abcd:HigherTaxa>
+ <abcd:HigherTaxon>
+ <abcd:HigherTaxonName>Asteraceae</abcd:HigherTaxonName>
+ </abcd:HigherTaxon>
+ </abcd:HigherTaxa>
+ <abcd:ScientificName>
+ <abcd:FullScientificNameString>Cichorium calvum Asch.</abcd:FullScientificNameString>
+ <abcd:NameAtomised>
+ <abcd:Botanical>
+ <abcd:GenusOrMonomial>Cichorium</abcd:GenusOrMonomial>
+ <abcd:FirstEpithet>calvum</abcd:FirstEpithet>
+ <abcd:Rank>SPE</abcd:Rank>
+ <abcd:AuthorTeamParenthesis>Asch.</abcd:AuthorTeamParenthesis>
+ </abcd:Botanical>
+ </abcd:NameAtomised>
+ </abcd:ScientificName>
+ </abcd:TaxonIdentified>
+ </abcd:Result>
+ </abcd:Identification>
+ </abcd:Identifications>
+ <abcd:Gathering>
+ <abcd:DateTime>
+ <abcd:DateText>1950-1980</abcd:DateText>
+ <abcd:PeriodExplicit>false</abcd:PeriodExplicit>
+ </abcd:DateTime>
+ <abcd:Agents>
+ <abcd:GatheringAgentsText>Mitarbeiter der Floristischen Kartierung Deutschlands</abcd:GatheringAgentsText>
+ </abcd:Agents>
+ <abcd:LocalityText>MTB 7032: Bieswang</abcd:LocalityText>
+ <abcd:Country>
+ <abcd:Name language="German">Deutschland</abcd:Name>
+ </abcd:Country>
+ <abcd:SiteCoordinateSets>
+ <abcd:SiteCoordinates>
+ <abcd:CoordinatesGrid>
+ <abcd:GridCellSystem>German TK25</abcd:GridCellSystem>
+ <abcd:GridCellCode>7032</abcd:GridCellCode>
+ </abcd:CoordinatesGrid>
+ <abcd:CoordinatesLatLong>
+ <abcd:LongitudeDecimal>11.08</abcd:LongitudeDecimal>
+ <abcd:LatitudeDecimal>48.96</abcd:LatitudeDecimal>
+ <abcd:AccuracyStatement>Mittelpunkte von TK25-Rasterfeldern</abcd:AccuracyStatement>
+ <abcd:CoordinateErrorDistanceInMeters>6575</abcd:CoordinateErrorDistanceInMeters>
+ </abcd:CoordinatesLatLong>
+ </abcd:SiteCoordinates>
+ </abcd:SiteCoordinateSets>
+ </abcd:Gathering>
+ </abcd:Unit>
+ </abcd:Units>
+ </abcd:DataSet>
+ </abcd:DataSets>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<Datasets xmlns="http://rs.tdwg.org/UBIF/2006/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://rs.tdwg.org/UBIF/2006/ http://rs.tdwg.org/UBIF/2006/Schema/1.1/SDD.xsd">
+ <TechnicalMetadata created="1970-01-01T09:34:00">
+ <Generator name="Xper2"
+ notes="This software is developed and distributed by LIS - Laboratoire Informatique et SystÈmatique (LIS) - UniversitÈ Pierre et Marie Curie - Paris VI - Copyright (c) 2004-2009" version="1.1"/>
+ </TechnicalMetadata>
+ <Dataset xml:lang="fr">
+ <Representation>
+ <Label>ant base</Label>
+ </Representation>
+ <RevisionData>
+ <Creators>
+ <Agent ref="a0" role="aut"/>
+ </Creators>
+ <DateCreated>2012-06-06T09:34:58</DateCreated>
+ <DateModified>2012-06-06T09:34:58</DateModified>
+ </RevisionData>
+ <TaxonNames>
+ <TaxonName id="t1">
+ <Representation>
+ <Label>Dolichoderinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t2">
+ <Representation>
+ <Label>Formicinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t3">
+ <Representation>
+ <Label>Ponerinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t4">
+ <Representation>
+ <Label>Myrmicinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t5">
+ <Representation>
+ <Label>Pseudomyrmecinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t6">
+ <Representation>
+ <Label>Ecitoninae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t7">
+ <Representation>
+ <Label>Ectatomminae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t8">
+ <Representation>
+ <Label>Cerapachyinae</Label>
+ </Representation>
+ </TaxonName>
+ <TaxonName id="t9">
+ <Representation>
+ <Label>Genus Ectatom</Label>
+ </Representation>
+ </TaxonName>
+ </TaxonNames>
+ <TaxonHierarchies>
+ <TaxonHierarchy id="th1">
+ <Representation>
+ <Label>Default Entity Tree</Label>
+ </Representation>
+ <TaxonHierarchyType>UnspecifiedTaxonomy</TaxonHierarchyType>
+ <Nodes>
+ <Node id="tn1">
+ <TaxonName ref="t1"/>
+ </Node>
+ <Node id="tn2">
+ <TaxonName ref="t2"/>
+ </Node>
+ <Node id="tn3">
+ <Parent ref="tn2"/>
+ <TaxonName ref="t3"/>
+ </Node>
+ <Node id="tn4">
+ <TaxonName ref="t4"/>
+ </Node>
+ <Node id="tn5">
+ <Parent ref="tn4"/>
+ <TaxonName ref="t5"/>
+ </Node>
+ <Node id="tn6">
+ <TaxonName ref="t6"/>
+ </Node>
+ <Node id="tn7">
+ <Parent ref="tn6"/>
+ <TaxonName ref="t8"/>
+ </Node>
+ </Nodes>
+ </TaxonHierarchy>
+ </TaxonHierarchies>
+ <Characters>
+ <CategoricalCharacter id="c1">
+ <Representation>
+ <Label>Pétiole</Label>
+ <Detail>Le <b>pétiole</b> se situe entre le mésosoma et l'alitrunk.</Detail>
+ <MediaObject ref="m35"/>
+ <MediaObject ref="m36"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s1">
+ <Representation>
+ <Label>un seul article réduit ou isolé</Label>
+ <MediaObject ref="m37"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s2">
+ <Representation>
+ <Label>deux articles réduits ou isolés</Label>
+ <Detail>Les deux articles correspondent au<b>pétiole</b> et au <b>post-pétiole</b>.<br>Soit les deux segments sont plus ou moins réduits, soit le deuxième article est plus large que le premier, soit le postpétiole est largement plus réduit.</Detail>
+ <MediaObject ref="m38"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c2">
+ <Representation>
+ <Label>Aiguillon venimeux</Label>
+ <Detail>Quand il est vestigial et non fonctionnel, on le considère comme absent.</Detail>
+ <MediaObject ref="m39"/>
+ <MediaObject ref="m40"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s3">
+ <Representation>
+ <Label>absent</Label>
+ <Detail>Apex du gastre <b>sans aiguillon</b>.</Detail>
+ <MediaObject ref="m41"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s4">
+ <Representation>
+ <Label>présent</Label>
+ <Detail>C'est l'<b>apex du gastre</b> qui porte l'aiguillon.<br>Il est considéré comme présent uniquement s'il <b>est fonctionnel</b>. Certains aiguillons sont dévaginables, d'autres sont visibles de façon permanente.</Detail>
+ <MediaObject ref="m42"/>
+ <MediaObject ref="m43"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c3">
+ <Representation>
+ <Label>Acidopore</Label>
+ <Detail>L'<b>acidopore</b> est l'ouverture à la base du gastre par laquelle le venin est éjecté ou vaporisé</Detail>
+ <MediaObject ref="m44"/>
+ <MediaObject ref="m45"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s5">
+ <Representation>
+ <Label>circulaire et entouré de soies</Label>
+ <Detail>Quand cette structure est présente, le venin est projeté sous forme de spray. L'<b>acidopore circulaire</b> est parfois visible à l'oeil nu chez les fourmis de grande taille.</Detail>
+ <MediaObject ref="m46"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s6">
+ <Representation>
+ <Label>sous forme de fente</Label>
+ <Detail>Contrairement à l'acidopore circulaire, la <b>fente</b> est rarement visible à l'oeil nu.</Detail>
+ <MediaObject ref="m47"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s7">
+ <Representation>
+ <Label>absent ou quasi invisible</Label>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c4">
+ <Representation>
+ <Label>Pygidium</Label>
+ <Detail>Le <b>pygidium</b> correspond au tergite à l'apex du gastre.</Detail>
+ <MediaObject ref="m48"/>
+ <MediaObject ref="m49"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s8">
+ <Representation>
+ <Label>non armé</Label>
+ <Detail><b>Pygidium lisse non armé</b> latéralement ou postérieurement.</Detail>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s9">
+ <Representation>
+ <Label>armé</Label>
+ <Detail><b>Pygidium armé </b> latéralement, postérieurement ou les deux par une rangée de courtes épines ou dents.</Detail>
+ <MediaObject ref="m50"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c5">
+ <Representation>
+ <Label>Marge clypéale</Label>
+ <MediaObject ref="m51"/>
+ <MediaObject ref="m52"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s10">
+ <Representation>
+ <Label>sans projection</Label>
+ <Detail>Il s'agit de la <b>marge clypéale antérolatérale</b>.</Detail>
+ <MediaObject ref="m53"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s11">
+ <Representation>
+ <Label>avec projection</Label>
+ <MediaObject ref="m54"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c6">
+ <Representation>
+ <Label>Yeux</Label>
+ <Detail>Les <b>yeux</b> des insectes sont des yeux composés d'<b>ommatidies</b>. Attention à ne pas les confondre avec les <b>ocelles</b>, yeux simples souvent situés sur le dessu-de la tête, servant à détecter les variations de luminosité.</Detail>
+ <MediaObject ref="m55"/>
+ <MediaObject ref="m56"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s12">
+ <Representation>
+ <Label>absents ou très réduits</Label>
+ <Detail>Yeux absents ou très réduits c'est à dire représentés seulement par une seule ou un petit nombre d'ommatidies.</Detail>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s13">
+ <Representation>
+ <Label>présents et bien visibles</Label>
+ <Detail>Yeux présent et bien visibles composés d'un grand nombre d'ommatidies.</Detail>
+ <MediaObject ref="m57"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c7">
+ <Representation>
+ <Label>Antennes</Label>
+ <MediaObject ref="m58"/>
+ <MediaObject ref="m59"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s14">
+ <Representation>
+ <Label>de 8 Ã 10 segments</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s15">
+ <Representation>
+ <Label>de 12 segments</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s16">
+ <Representation>
+ <Label>moins de 8 segments</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s17">
+ <Representation>
+ <Label>10 ou 11 segments</Label>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c8">
+ <Representation>
+ <Label>Répartition mondiale</Label>
+ </Representation>
+ <States>
+ <StateDefinition id="s18">
+ <Representation>
+ <Label>monde entier</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s19">
+ <Representation>
+ <Label>régions tempérées</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s20">
+ <Representation>
+ <Label>tropiques</Label>
+ <Detail>Il s'agit des tropiques (voire subtropiques) du monden entier.</Detail>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s21">
+ <Representation>
+ <Label>néotropiques</Label>
+ <Detail>Il s'agit des zones tropicales américaines.</Detail>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c9">
+ <Representation>
+ <Label>Lobes frontaux</Label>
+ <MediaObject ref="m60"/>
+ <MediaObject ref="m61"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s22">
+ <Representation>
+ <Label>absents ou très réduits et verticaux</Label>
+ <MediaObject ref="m62"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s23">
+ <Representation>
+ <Label>présents et horizontaux</Label>
+ <MediaObject ref="m63"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c10">
+ <Representation>
+ <Label>Bases antennaires</Label>
+ <MediaObject ref="m64"/>
+ <MediaObject ref="m65"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s24">
+ <Representation>
+ <Label>partiellement ou complètement camouflées</Label>
+ <Detail>En vue de face, les <b>bases antennaires</b> sont partiellement ou complètement recouvertes par les <b> lobes frontaux</b> (jamais complètement exposées).</Detail>
+ <MediaObject ref="m66"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s25">
+ <Representation>
+ <Label>totalement exposées</Label>
+ <Detail>En vue de face, les <b>bases antennaires</b> sont complètement exposées et non recouvertes par les lobes frontaux.</Detail>
+ <MediaObject ref="m67"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c11">
+ <Representation>
+ <Label>Suture promésonotale</Label>
+ <Detail>La <b>suture promésonotale</b> est la suture (ligne de ligne de fusion) entre le pronotum et le mesonotum, les deux premiers articles du thorax.</Detail>
+ <MediaObject ref="m68"/>
+ <MediaObject ref="m69"/>
+ <MediaObject ref="m70"/>
+ <MediaObject ref="m71"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s26">
+ <Representation>
+ <Label>absente</Label>
+ <MediaObject ref="m72"/>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s27">
+ <Representation>
+ <Label>vestigiale</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s28">
+ <Representation>
+ <Label>présente</Label>
+ <MediaObject ref="m73"/>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c12">
+ <Representation>
+ <Label>Ocelle(s)</Label>
+ <Detail>Les <b>ocelles</b> sont des yeux simples servant à détecter les variations de luminosité. Les ouvrières peuvent avoir un ou plusieurs ocelles.</Detail>
+ <MediaObject ref="m74"/>
+ <MediaObject ref="m75"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s29">
+ <Representation>
+ <Label>absent(s)</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s30">
+ <Representation>
+ <Label>présent(s)</Label>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ <CategoricalCharacter id="c13">
+ <Representation>
+ <Label>Palpes maxillaires</Label>
+ <MediaObject ref="m76"/>
+ </Representation>
+ <States>
+ <StateDefinition id="s31">
+ <Representation>
+ <Label>présents et bien visibles</Label>
+ </Representation>
+ </StateDefinition>
+ <StateDefinition id="s32">
+ <Representation>
+ <Label>absents ou très difficilement visibles</Label>
+ </Representation>
+ </StateDefinition>
+ </States>
+ </CategoricalCharacter>
+ </Characters>
+ <CharacterTrees>
+ <CharacterTree id="ct1">
+ <Representation>
+ <Label>Ordre et dÈpendance entre caractËres</Label>
+ </Representation>
+ <ShouldContainAllCharacters>true</ShouldContainAllCharacters>
+ <Nodes>
+ <CharNode>
+ <Character ref="c1"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c2"/>
+ </CharNode>
+ <CharNode>
+ <DependencyRules>
+ <InapplicableIf>
+ <State ref="s2"/>
+ </InapplicableIf>
+ </DependencyRules>
+ <Character ref="c3"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c4"/>
+ </CharNode>
+ <CharNode>
+ <DependencyRules>
+ <InapplicableIf>
+ <State ref="s3"/>
+ </InapplicableIf>
+ </DependencyRules>
+ <Character ref="c5"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c6"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c7"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c8"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c9"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c10"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c11"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c12"/>
+ </CharNode>
+ <CharNode>
+ <Character ref="c13"/>
+ </CharNode>
+ </Nodes>
+ </CharacterTree>
+ </CharacterTrees>
+ <CodedDescriptions>
+ <CodedDescription id="D1">
+ <Representation>
+ <Label>Dolichoderinae</Label>
+ <MediaObject ref="m1"/>
+ <MediaObject ref="m2"/>
+ <MediaObject ref="m3"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t1"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s1"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <Note>Leur aiguillon venimeux est vestigial et non fonctionnel.</Note>
+ <State ref="s3"/>
+ </Categorical>
+ <Categorical ref="c3">
+ <State ref="s6"/>
+ </Categorical>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5"/>
+ <Categorical ref="c6">
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <Note>Les ouvrières possèdent généralement 11 articles antennaires, rarement 10 ou 11.</Note>
+ <State ref="s14"/>
+ <State ref="s15"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s18"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <Note>Elles sont partiellement ou totalement cachées par la carèbe frontale, marge du lbe frontal.</Note>
+ <State ref="s24"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>Elle est présente et flexible.</Note>
+ <State ref="s28"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <Note>Les ocelles sont pratiquement tout le temps absents.</Note>
+ <State ref="s29"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s31"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D2">
+ <Representation>
+ <Label>Formicinae</Label>
+ <MediaObject ref="m4"/>
+ <MediaObject ref="m5"/>
+ <MediaObject ref="m6"/>
+ <MediaObject ref="m7"/>
+ <MediaObject ref="m8"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t2"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s1"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <Note>Leur aiguillon est non fonctionnel.</Note>
+ <State ref="s3"/>
+ </Categorical>
+ <Categorical ref="c3">
+ <State ref="s5"/>
+ </Categorical>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5"/>
+ <Categorical ref="c6">
+ <Note>Leurs yeux sont généralement bien développés, rarement réduits ou absents.</Note>
+ <State ref="s12"/>
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <State ref="s14"/>
+ <State ref="s15"/>
+ <State ref="s17"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s18"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s25"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <State ref="s28"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <Note>Les ocelles sont présents dans la grande majorité des genres.</Note>
+ <State ref="s30"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s31"/>
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D3">
+ <Representation>
+ <Label>Ponerinae</Label>
+ <MediaObject ref="m9"/>
+ <MediaObject ref="m10"/>
+ <MediaObject ref="m11"/>
+ <MediaObject ref="m12"/>
+ <MediaObject ref="m13"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t3"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s1"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <State ref="s4"/>
+ </Categorical>
+ <Categorical ref="c3">
+ <State ref="s7"/>
+ </Categorical>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5">
+ <State ref="s10"/>
+ </Categorical>
+ <Categorical ref="c6">
+ <Note>Les Ponerinae possèdent des yeux bien développés dans la grande majorité des cas.</Note>
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s19"/>
+ <State ref="s20"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <State ref="s23"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s24"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>Si les yeux et les lobes frontaux sont absents, la suture promésonotale est toujours absente.</Note>
+ <State ref="s26"/>
+ <State ref="s28"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <Note>En général les ouvrières de poneriane ne portent pas d'ocelles.</Note>
+ <State ref="s29"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s31"/>
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D4">
+ <Representation>
+ <Label>Myrmicinae</Label>
+ <MediaObject ref="m14"/>
+ <MediaObject ref="m15"/>
+ <MediaObject ref="m16"/>
+ <MediaObject ref="m17"/>
+ <MediaObject ref="m18"/>
+ <MediaObject ref="m19"/>
+ <MediaObject ref="m20"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t4"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s2"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <State ref="s4"/>
+ </Categorical>
+ <Categorical ref="c3"/>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5">
+ <State ref="s10"/>
+ </Categorical>
+ <Categorical ref="c6">
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <Note>Le nombre d'articles antennaires peut varier de 4 Ã 12 chez les Myrmicinae.</Note>
+ <State ref="s14"/>
+ <State ref="s15"/>
+ <State ref="s16"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s18"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <State ref="s22"/>
+ <State ref="s23"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s24"/>
+ <State ref="s25"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>Elle est souvent complètement absente et rarement vestigiale. Quand c'est le cas, elle donne l'impression transversalement s'un arche en vue dorsale.</Note>
+ <State ref="s26"/>
+ <State ref="s27"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <Note>Les ocelles sont la plupart du temps absents, très rarement présents.</Note>
+ <State ref="s29"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s31"/>
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D5">
+ <Representation>
+ <Label>Pseudomyrmecinae</Label>
+ <MediaObject ref="m21"/>
+ <MediaObject ref="m22"/>
+ <MediaObject ref="m23"/>
+ <MediaObject ref="m24"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t5"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s2"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <State ref="s4"/>
+ </Categorical>
+ <Categorical ref="c3"/>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5">
+ <Note>La projestion clypéale concernée est postérieure c'est à dir vers les mandibules, et non vers le haut de la tête.</Note>
+ <State ref="s10"/>
+ </Categorical>
+ <Categorical ref="c6">
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <State ref="s15"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s20"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <State ref="s22"/>
+ <State ref="s23"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s24"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>Elle est très visible en vue dorsale.</Note>
+ <State ref="s28"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <State ref="s30"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D6">
+ <Representation>
+ <Label>Ecitoninae</Label>
+ <MediaObject ref="m25"/>
+ <MediaObject ref="m26"/>
+ <MediaObject ref="m27"/>
+ <MediaObject ref="m28"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t6"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s2"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <State ref="s4"/>
+ </Categorical>
+ <Categorical ref="c3"/>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5">
+ <State ref="s10"/>
+ </Categorical>
+ <Categorical ref="c6">
+ <Note>Leurs yeux sont réduits à une seule ommatidies ou absents.</Note>
+ <State ref="s12"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <State ref="s15"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s19"/>
+ <State ref="s21"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <State ref="s22"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s25"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>Cette suture n'est jamais marqué et elle est flexible.</Note>
+ <State ref="s26"/>
+ <State ref="s27"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <State ref="s30"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D7">
+ <Representation>
+ <Label>Ectatomminae</Label>
+ <MediaObject ref="m29"/>
+ <MediaObject ref="m30"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t7"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s1"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <State ref="s3"/>
+ </Categorical>
+ <Categorical ref="c3">
+ <State ref="s7"/>
+ </Categorical>
+ <Categorical ref="c4">
+ <State ref="s8"/>
+ </Categorical>
+ <Categorical ref="c5"/>
+ <Categorical ref="c6">
+ <State ref="s13"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s18"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <State ref="s22"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s24"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <State ref="s29"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <State ref="s32"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D8">
+ <Representation>
+ <Label>Cerapachyinae</Label>
+ <MediaObject ref="m31"/>
+ <MediaObject ref="m32"/>
+ <MediaObject ref="m33"/>
+ <MediaObject ref="m34"/>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t8"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1">
+ <State ref="s1"/>
+ </Categorical>
+ <Categorical ref="c2">
+ <Note>Aiguillon bien dévellopé et fonctionnel.</Note>
+ <State ref="s4"/>
+ </Categorical>
+ <Categorical ref="c3">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c4">
+ <Note>Il existe un rangée apicale ou marginale de courtes dents ou épines.</Note>
+ <State ref="s9"/>
+ </Categorical>
+ <Categorical ref="c5">
+ <State ref="s11"/>
+ </Categorical>
+ <Categorical ref="c6">
+ <Note>Les yeux sont généralement présents, très rarement réduits ou absents.</Note>
+ <State ref="s12"/>
+ </Categorical>
+ <Categorical ref="c7">
+ <State ref="s15"/>
+ <State ref="s17"/>
+ </Categorical>
+ <Categorical ref="c8">
+ <State ref="s20"/>
+ </Categorical>
+ <Categorical ref="c9">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ <Categorical ref="c10">
+ <State ref="s25"/>
+ </Categorical>
+ <Categorical ref="c11">
+ <Note>La plupart du temps, elle est complètement absente. Elle n'est que très rarement visible.</Note>
+ <State ref="s26"/>
+ <State ref="s28"/>
+ </Categorical>
+ <Categorical ref="c12">
+ <State ref="s30"/>
+ </Categorical>
+ <Categorical ref="c13">
+ <Status code="DataUnavailable"/>
+ </Categorical>
+ </SummaryData>
+ </CodedDescription>
+ <CodedDescription id="D9">
+ <Representation>
+ <Label>Genus Ectatom</Label>
+ </Representation>
+ <Scope>
+ <TaxonName ref="t9"/>
+ </Scope>
+ <SummaryData>
+ <Categorical ref="c1"/>
+ <Categorical ref="c2"/>
+ <Categorical ref="c3"/>
+ <Categorical ref="c4"/>
+ <Categorical ref="c5"/>
+ <Categorical ref="c6"/>
+ <Categorical ref="c7"/>
+ <Categorical ref="c8"/>
+ <Categorical ref="c9"/>
+ <Categorical ref="c10"/>
+ <Categorical ref="c11"/>
+ <Categorical ref="c12"/>
+ <Categorical ref="c13"/>
+ </SummaryData>
+ </CodedDescription>
+ </CodedDescriptions>
+ <Agents>
+ <Agent id="a0">
+ <Representation>
+ <Label>Unknown</Label>
+ </Representation>
+ </Agent>
+ </Agents>
+ <MediaObjects>
+ <MediaObject id="m1">
+ <Representation>
+ <Label>Dolichoderinae - m1</Label>
+ <Detail role="Caption">Dolichoderinae</Detail>
+ </Representation>
+ <Type>Image</Type>
+ <Source href="http://cybertaxonomy.eu/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
+ </MediaObject>
+ <MediaObject id="m2">
+ <Representation>
+ <Label>Dolichoderinae - m2</Label>
+ <Detail role="Caption">Dolichoderinae</Detail>
+ </Representation>
+ <Type>Image</Type>
+ <Source href="http://cybertaxonomy.eu/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
+ </MediaObject>
+ </MediaObjects>
+ </Dataset>
+</Datasets>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<DataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tdwg.org/schemas/tcs/1.01 http://tdwg.napier.ac.uk/TCS_1.01/v101.xsd" xmlns="http://www.tdwg.org/schemas/tcs/1.01">
+ <!-- This is an instance document that tests as many different
+ applications of the schema as possible within a single document.
+ It is not meant to a 'realistic' example of a real data set
+ but a illustration of all the different types of data that can
+ be passed. -->
+ <MetaData>
+ <!-- to be completed -->
+ <Simple/>
+ </MetaData>
+ <Specimens>
+ <Specimen id="2">
+ <Simple/>
+ <Institution identifier=""/>
+ <Collection identifier="LE"/>
+ <SpecimenItem identifier=""/>
+ </Specimen>
+ </Specimens>
+ <Publications>
+ <Publication id="1">
+ <Simple>Fl. SSR</Simple>
+ </Publication>
+ <Publication id="2">
+ <Simple>Copeland, H.F. (1943). A study, anatomical and taxonomic, of the
+ genera of Rhododendroideae. Am. Midl.Nat. 30:533-625</Simple>
+ </Publication>
+ <Publication id="3">
+ <Simple>Wilson, E.H. & Rehder, A. (1921). A monograph of the azaleas.
+ Publication of the Arnold Arboretum No. 9 Harvard University, Cambridge
+ MA.</Simple>
+ </Publication>
+ <Publication id="4">
+ <Simple>Judd, W.S. & Kron, K.A. (1995) A Revision of Rhododendron VI
+ Edinb. J. Bot. 52(1): 1-54</Simple>
+ </Publication>
+ <Publication id="5">
+ <Simple>Maximoxicz, C.J. (1870) Rhododendron schlippenbachii. Mem. Acad. Sci.
+ St Petersbourg. ser.3 15.</Simple>
+ </Publication>
+ </Publications>
+ <TaxonNames>
+ <TaxonName id="0" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron</Simple>
+ </TaxonName>
+ <TaxonName nomenclaturalCode="Botanical" id="1">
+ <Simple>Rhododendron subgenus Pentanthera (G. Don) Poyarkova</Simple>
+ <CanonicalName>
+ <Simple>Rhododedron subgenus Pentanthera</Simple>
+ <Genus>Rhododendron</Genus>
+ <InfragenericEpithet>Pentanthera</InfragenericEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>(G.Don) Poyarkova</Simple>
+ <BasionymAuthorship>
+ <Simple>G. Don</Simple>
+ <Authors>
+ <AgentName>G. Don</AgentName>
+ </Authors>
+ </BasionymAuthorship>
+ <CombinationAuthorship>
+ <Simple>Poyarkova</Simple>
+ <Authors>
+ <AgentName>Poyarkova</AgentName>
+ </Authors>
+ </CombinationAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn ref="1">Fl. SSR Vol 18 (1952)</PublishedIn>
+ <MicroReference>Page 57</MicroReference>
+ <Typification>
+ <Simple>Rhododendron flavum G.Don</Simple>
+ <!--
+ N.B. This could be linked to a full name entry if
+ required but no details are in the current monograph so
+ it isn't
+ -->
+ <TypeName/>
+ </Typification>
+ </TaxonName>
+ <TaxonName id="2" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron sect. Sciadorhodion Rehder & Wilson</Simple>
+ <CanonicalName>
+ <Simple>Rhododendron sect. Sciadorhodion</Simple>
+ <Genus>Rhododendron</Genus>
+ <InfragenericEpithet>Sciadorhodion</InfragenericEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>Rehder & Wilson</Simple>
+ <BasionymAuthorship>
+ <Simple>Rehder & Wilson</Simple>
+ </BasionymAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn linkType="local" ref="3">Wislon & Rehder Monogr. Azaleas 79 (1921)</PublishedIn>
+ <MicroReference>Page 79</MicroReference>
+ <Typification>
+ <Simple/>
+ <TypeName>
+ <NameReference linkType="local" ref="3">Rhododendron quinquefolium Bisset
+ & Moore</NameReference>
+ <LectotypePublication ref="2">Copeland, H.F.(1943)</LectotypePublication>
+ </TypeName>
+ </Typification>
+ <Basionym>
+ <RelatedName ref="4">Azalea subgen. Sciadorhodion (Rhehder & Wilson)
+ Copeland</RelatedName>
+ </Basionym>
+ </TaxonName>
+ <TaxonName id="3" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron quinquefolium Bisset & Moore</Simple>
+ </TaxonName>
+ <TaxonName id="4" nomenclaturalCode="Botanical">
+ <!-- for brevity this NameObject isn't fully expanded -->
+ <Simple>Azalea subgen. Sciadorhodion (Rhehder & Wilson) Copeland </Simple>
+ <Basionym>
+ <RelatedName ref="2">Rhododendron sect. Sciadorhodion Rehder &
+ Wilson</RelatedName>
+ </Basionym>
+ </TaxonName>
+ <TaxonName id="5" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron schlippenbachii Maxim.</Simple>
+ <Rank code="sp">Species</Rank>
+ <CanonicalName>
+ <Simple>Rhododendron schlippenbachii</Simple>
+ <Genus>Rhododendron</Genus>
+ <SpecificEpithet>schlippenbachii</SpecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>Maxim.</Simple>
+ <BasionymAuthorship>
+ <Simple>Maxim.</Simple>
+ <Authors>
+ <AgentName>Maximoxicz, C.J.</AgentName>
+ </Authors>
+ </BasionymAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn ref="5">Bull. Acad. Sci. St Petersbourg, ser. 3 15 (1870)</PublishedIn>
+ <MicroReference>Page 226</MicroReference>
+ <Typification>
+ <Simple/>
+ <TypeVouchers>
+ <TypeVoucher typeOfType="lecto">
+ <VoucherReference linkType="local" ref="1"/>
+ <LectotypePublication ref="4"/>
+ <LectotypeMicroReference>Page 15</LectotypeMicroReference>
+ </TypeVoucher>
+ <TypeVoucher typeOfType="isolecto">
+ <VoucherReference linkType="local" ref="2"/>
+ <LectotypePublication ref="4"/>
+ <LectotypeMicroReference>Page 15</LectotypeMicroReference>
+ </TypeVoucher>
+ </TypeVouchers>
+ </Typification>
+ </TaxonName>
+ <TaxonName id="6" nomenclaturalCode="Botanical">
+ <Simple>Azalea schlippenbachii (Maxim.) Kuntze</Simple>
+ <CanonicalName>
+ <Simple>Azalea schlippenbachii</Simple>
+ <Genus>Azalea</Genus>
+ <SpecificEpithet>schlippenbachii</SpecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>(Maxim.) Kuntze</Simple>
+ <BasionymAuthorship>
+ <Simple>Maxim.</Simple>
+ </BasionymAuthorship>
+ <CombinationAuthorship>
+ <Simple>Kuntze</Simple>
+ </CombinationAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn>Revis. Gen.Pl. 2:387 (1891)</PublishedIn>
+ <Typification>
+ <Simple/>
+ <TypeVouchers>
+ <TypeVoucher typeOfType="lecto">
+ <VoucherReference ref="2">[Russia] Manchuria, shores of Possiet Bay, [SW of
+ Vladivostok], 1860, C. Maximowicz LE</VoucherReference>
+ <LectotypePublication ref="4"/>
+ <LectotypeMicroReference>Page 15</LectotypeMicroReference>
+ </TypeVoucher>
+ </TypeVouchers>
+ </Typification>
+ </TaxonName>
+ <TaxonName id="7" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron pentaphyllum Maxim.</Simple>
+ <CanonicalName>
+ <Simple>Rhododendron pentaphyllum</Simple>
+ <Genus>Rhododendron</Genus>
+ <SpecificEpithet>pentaphyllum</SpecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>Maxim.</Simple>
+ </CanonicalAuthorship>
+ <PublishedIn>Bull. Acad. Sci. St Petersbourg, ser. 3, 31:65 (1887)</PublishedIn>
+ <Typification>
+ <Simple/>
+ <TypeVouchers>
+ <TypeVoucher typeOfType="holo">
+ <VoucherReference>Japan, Kyushiu, prov. Osumi, summit, Mt Taka-kuma, Tashiro
+ (LE)</VoucherReference>
+ </TypeVoucher>
+ </TypeVouchers>
+
+ </Typification>
+ </TaxonName>
+ <TaxonName id="8" nomenclaturalCode="Botanical">
+ <Simple>Azalea pentaphylla (Maxim.) Copeland</Simple>
+ <CanonicalName>
+ <Simple>Azalea pentaphylla</Simple>
+ <Genus>Azalea</Genus>
+ <SpecificEpithet>pentaphylla</SpecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>(Maxim.) Copeland</Simple>
+ <BasionymAuthorship>
+ <Simple>Maxim.</Simple>
+ </BasionymAuthorship>
+ <CombinationAuthorship>
+ <Simple>Copeland</Simple>
+ </CombinationAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn>Am.Midl.Nat. 30:595 (1943)</PublishedIn>
+ <Typification>
+ <Simple/>
+ <TypeVouchers>
+ <TypeVoucher typeOfType="holo">
+ <VoucherReference>Japan, Kyushiu, prov. Osumi, summit, Mt Taka-kuma, Tashiro
+ (LE)</VoucherReference>
+ </TypeVoucher>
+ </TypeVouchers>
+ </Typification>
+ </TaxonName>
+ <TaxonName id="9" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron pentaphyllum var. nikoense Komatsu</Simple>
+ <Rank code="var">variety</Rank>
+ <CanonicalName>
+ <Simple>Rhododendron pentaphyllum var. nikoense</Simple>
+ <Genus ref="0">Rhododendron</Genus>
+ <SpecificEpithet>pentaphyllum</SpecificEpithet>
+ <InfraspecificEpithet>nikoense</InfraspecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>Konatsu</Simple>
+ </CanonicalAuthorship>
+ <PublishedIn>Icon. Pl. Koisikav. 3: 45, t 168 (1916)</PublishedIn>
+ </TaxonName>
+ <TaxonName id="10" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron nikoense (Komatsu) Nakai</Simple>
+ <Rank code="sp">Species</Rank>
+ <CanonicalName>
+ <Simple>Rhododendron nikoense</Simple>
+ <Genus ref="0">Rhododendron</Genus>
+ <SpecificEpithet>nikoense</SpecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>(Komatsu) Nakai</Simple>
+ <BasionymAuthorship>
+ <Simple>Komatsu</Simple>
+ </BasionymAuthorship>
+ <CombinationAuthorship>
+ <Simple>Nakai</Simple>
+ </CombinationAuthorship>
+ </CanonicalAuthorship>
+ <PublishedIn>Nakai & Koidz. Trees and Shrubs Japan 1: 68 (1922)</PublishedIn>
+ <Basionym>
+ <RelatedName ref="9">Rhododendron pentaphyllum var. nikoense</RelatedName>
+ </Basionym>
+ </TaxonName>
+ <TaxonName id="11" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron quinquefolium Bisset & S. Moore var. roseum Rehder</Simple>
+ <Rank code="var">variety</Rank>
+ <CanonicalName>
+ <Simple>Rhododendron quinquefolium</Simple>
+ <Genus ref="0">Rhododendron</Genus>
+ <SpecificEpithet>quinquefolium</SpecificEpithet>
+ <InfraspecificEpithet>roseum</InfraspecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>Rehder</Simple>
+ </CanonicalAuthorship>
+ <PublishedIn>Bailey, Stand. Cycl. Hort. 5: 2947 (1916)</PublishedIn>
+ </TaxonName>
+ <TaxonName id="12" nomenclaturalCode="Botanical">
+ <Simple>Rhododendron pentaphyllum Maxim. var. shikokianum T. Yamazaki</Simple>
+ <Rank code="sp">species</Rank>
+ <CanonicalName>
+ <Simple>Rhododendron pentaphyllum var. shikokianum</Simple>
+ <Genus ref="0">Rhododendron</Genus>
+ <SpecificEpithet>pentaphyllum</SpecificEpithet>
+ <InfraspecificEpithet>shikokianum</InfraspecificEpithet>
+ </CanonicalName>
+ <CanonicalAuthorship>
+ <Simple>T. Yamazaki</Simple>
+ </CanonicalAuthorship>
+ <PublishedIn>Jap. Bot. 63: 312 (1988)</PublishedIn>
+ </TaxonName>
+ </TaxonNames>
+ <TaxonConcepts>
+ <TaxonConcept id="1">
+ <Name scientific="true" linkType="local" ref="2">Rhododendron sect. Sciadorhodion Rehder
+ & Wilson</Name>
+ <Rank code="sect">Section</Rank>
+ <AccordingTo>
+ <Simple>Judd & Kron (1995)</Simple>
+ <AccordingToDetailed>
+ <PublishedIn linkType="local" ref="4">Judd & Kron (1995) A Revision of
+ Rhododendron VI </PublishedIn>
+ <MicroReference>Page 13-14</MicroReference>
+ </AccordingToDetailed>
+ </AccordingTo>
+ <TaxonRelationships>
+ <TaxonRelationship type="is parent taxon of">
+ <ToTaxonConcept linkType="local" ref="2"/>
+ </TaxonRelationship>
+ </TaxonRelationships>
+ </TaxonConcept>
+ <TaxonConcept id="2">
+ <Name scientific="true" linkType="local" ref="5">Rhododendron schlippenbachii Maxim.</Name>
+ <AccordingTo>
+ <Simple>Judd & Kron (1995)</Simple>
+ <AccordingToDetailed>
+ <PublishedIn linkType="local" ref="4"/>
+ <MicroReference>Page 15</MicroReference>
+ </AccordingToDetailed>
+ </AccordingTo>
+ <TaxonRelationships>
+ <TaxonRelationship type="is child taxon of">
+ <ToTaxonConcept ref="1">Rhododendron sect. Sciadorhodion Rehder &
+ Wilson</ToTaxonConcept>
+ </TaxonRelationship>
+ </TaxonRelationships>
+ </TaxonConcept>
+ <TaxonConcept id="3">
+ <Name scientific="true" ref="6">Azalea schlippenbachii (Maxim.) Kuntze</Name>
+ <AccordingTo>
+ <Simple>Kuntze (1891)</Simple>
+ </AccordingTo>
+ <TaxonRelationships>
+ <TaxonRelationship type="is congruent to">
+ <ToTaxonConcept ref="2"/>
+ </TaxonRelationship>
+ </TaxonRelationships>
+ </TaxonConcept>
+ <TaxonConcept id="4">
+ <Name scientific="true" ref="7">Rhododendron pentaphyllum Maxim.</Name>
+ <AccordingTo>
+ <Simple>Judd & Kron (1995)</Simple>
+ </AccordingTo>
+ <TaxonRelationships>
+ <!-- relationships linking to taxonconcept without any descriptive string -->
+ <TaxonRelationship type="has synonym">
+ <ToTaxonConcept ref="6"/>
+ </TaxonRelationship>
+ <TaxonRelationship type="has synonym">
+ <ToTaxonConcept ref="7"/>
+ </TaxonRelationship>
+ <!-- relationship with linking reference to another taxon concept and string description of concept -->
+ <TaxonRelationship type="has synonym">
+ <ToTaxonConcept ref="8">Rhododendron pentaphyllum var. nikoense
+ Komatsu</ToTaxonConcept>
+ </TaxonRelationship>
+ <!-- relationships without linking -->
+ <TaxonRelationship type="has synonym">
+ <ToTaxonConcept>Rhododendron pentaphyllum Maxim. var. shikokianum T.
+ Yamazaki</ToTaxonConcept>
+ </TaxonRelationship>
+ <TaxonRelationship type="has synonym">
+ <ToTaxonConcept>Rhododendron quinquefolium Bisset & S. Moore var. roseum
+ Rehder</ToTaxonConcept>
+ </TaxonRelationship>
+ </TaxonRelationships>
+ </TaxonConcept>
+ <TaxonConcept id="6">
+ <Name scientific="true">Rhododendron nikoense (Komatsu) Nakai</Name>
+ </TaxonConcept>
+ <TaxonConcept id="7">
+ <Name scientific="true" ref="10">Rhododendron nikoense (Komatsu) Nakai</Name>
+ </TaxonConcept>
+ <TaxonConcept id="8">
+ <Name scientific="true" ref="9">Rhododendron pentaphyllum var. nikoense Komatsu</Name>
+ </TaxonConcept>
+ </TaxonConcepts>
+</DataSet>