commit after merging from trunk
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / jaxb / TDWGNamespacePrefixMapper.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.jaxb;
11
12 import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
13
14 public class TDWGNamespacePrefixMapper extends NamespacePrefixMapper {
15
16 private static final String RDF_PREFIX = "rdf";
17 private static final String XML_PREFIX = "xml";
18 private static final String DC_PREFIX = "dc";
19 private static final String DCTERMS_PREFIX = "dcterms";
20 private static final String OWL_PREFIX = "owl";
21 private static final String TAXONNAME_PREFIX = "tn";
22 private static final String TAXONCONCEPT_PREFIX = "tc";
23 private static final String COMMON_PREFIX = "tcom";
24 private static final String PERSON_PREFIX = "tp";
25 private static final String TEAM_PREFIX = "tt";
26 private static final String PUBLICATIONCITATION_PREFIX = "tpc";
27 private static final String SPECIESPROFILEMODEL_PREFIX = "spm";
28 private static final String GEOGRAPHICALREGION_PREFIX = "gr";
29 private static final String OAIPMH_PREFIX = "oai";
30 private static final String OAIDC_PREFIX = "oai_dc";
31
32 public static final String XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
33 public static final String RDF_NAMESPACE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
34 public static final String DC_NAMESPACE = "http://purl.org/dc/elements/1.1/";
35 public static final String DCTERMS_NAMESPACE = "http://purl.org/dc/terms/";
36 public static final String OWL_NAMESPACE = "http://www.w3.org/2002/07/owl#";
37 public static final String TAXONNAME_NAMESPACE = "http://rs.tdwg.org/ontology/voc/TaxonName#";
38 public static final String TAXONCONCEPT_NAMESPACE = "http://rs.tdwg.org/ontology/voc/TaxonConcept#";
39 public static final String COMMON_NAMESPACE = "http://rs.tdwg.org/ontology/voc/Common#";
40 public static final String PERSON_NAMESPACE = "http://rs.tdwg.org/ontology/voc/Person#";
41 public static final String TEAM_NAMESPACE = "http://rs.tdwg.org/ontology/voc/Team#";
42 public static final String PUBLICATIONCITATION_NAMESPACE = "http://rs.tdwg.org/ontology/voc/PublicationCitation#";;
43 public static final String SPECIESPROFILEMODEL_NAMESPACE = "http://rs.tdwg.org/ontology/voc/SpeciesProfileModel#";
44 public static final String GEOGRAPHICALREGION_NAMESPACE = "http://rs.tdwg.org/ontology/voc/GeographicRegion#";
45 public static final String OAIPMH_NAMESPACE = "http://www.openarchives.org/OAI/2.0/";
46 public static final String OAIDC_NAMESPACE = "http://www.openarchives.org/OAI/2.0/oai_dc/";
47
48 public String getPreferredPrefix(String namespaceURI, String suggestion, boolean requirePrefix) {
49 String result = suggestion;
50
51 /**
52 * Returning empty namespace prefix works if a SAXResult is used, but not
53 * a DOMResult - see http://forums.java.net/jive/thread.jspa?messageID=217155
54 * This has not been resolved yet, as far as I can tell
55 */
56
57 if(namespaceURI.equals(TDWGNamespacePrefixMapper.RDF_NAMESPACE)) {
58 return TDWGNamespacePrefixMapper.RDF_PREFIX;
59 }
60
61 if(namespaceURI.equals(TDWGNamespacePrefixMapper.DC_NAMESPACE)) {
62 return TDWGNamespacePrefixMapper.DC_PREFIX;
63 }
64
65 if(namespaceURI.equals(TDWGNamespacePrefixMapper.DCTERMS_NAMESPACE)) {
66 return TDWGNamespacePrefixMapper.DCTERMS_PREFIX;
67 }
68
69 if(namespaceURI.equals(TDWGNamespacePrefixMapper.OWL_NAMESPACE)) {
70 return TDWGNamespacePrefixMapper.OWL_PREFIX;
71 }
72
73 if(namespaceURI.equals(TDWGNamespacePrefixMapper.TAXONNAME_NAMESPACE)) {
74 return TDWGNamespacePrefixMapper.TAXONNAME_PREFIX;
75 }
76
77 if(namespaceURI.equals(TDWGNamespacePrefixMapper.TEAM_NAMESPACE)) {
78 return TDWGNamespacePrefixMapper.TEAM_PREFIX;
79 }
80
81 if(namespaceURI.equals(TDWGNamespacePrefixMapper.TAXONCONCEPT_NAMESPACE)) {
82 return TDWGNamespacePrefixMapper.TAXONCONCEPT_PREFIX;
83 }
84
85 if(namespaceURI.equals(TDWGNamespacePrefixMapper.COMMON_NAMESPACE)){
86 return TDWGNamespacePrefixMapper.COMMON_PREFIX;
87 }
88
89 if(namespaceURI.equals(TDWGNamespacePrefixMapper.PERSON_NAMESPACE)) {
90 return TDWGNamespacePrefixMapper.PERSON_PREFIX;
91 }
92
93 if(namespaceURI.equals(TDWGNamespacePrefixMapper.PUBLICATIONCITATION_NAMESPACE)) {
94 return TDWGNamespacePrefixMapper.PUBLICATIONCITATION_PREFIX;
95 }
96
97 if(namespaceURI.equals(TDWGNamespacePrefixMapper.SPECIESPROFILEMODEL_NAMESPACE)) {
98 return TDWGNamespacePrefixMapper.SPECIESPROFILEMODEL_PREFIX;
99 }
100
101 if(namespaceURI.equals(TDWGNamespacePrefixMapper.XML_NAMESPACE)) {
102 return TDWGNamespacePrefixMapper.XML_PREFIX;
103 }
104
105 if(namespaceURI.equals(TDWGNamespacePrefixMapper.GEOGRAPHICALREGION_NAMESPACE)) {
106 return TDWGNamespacePrefixMapper.GEOGRAPHICALREGION_PREFIX;
107 }
108
109 if(namespaceURI.equals(TDWGNamespacePrefixMapper.OAIPMH_NAMESPACE)) {
110 return TDWGNamespacePrefixMapper.OAIPMH_PREFIX;
111 }
112
113 if(namespaceURI.equals(TDWGNamespacePrefixMapper.OAIDC_NAMESPACE)) {
114 return TDWGNamespacePrefixMapper.OAIDC_PREFIX;
115 }
116
117 return result;
118 }
119
120 }