Mercurial > hg > mpdl-group
annotate software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/xml/SchemaHandler.java @ 16:257f67be5c00
diverse Fehlerbehebungen
| author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 27 Sep 2011 16:40:57 +0200 |
| parents | 59ff47d1e237 |
| children |
| rev | line source |
|---|---|
| 0 | 1 package de.mpg.mpiwg.berlin.mpdl.xml; |
| 2 | |
| 3 import java.io.File; | |
| 4 import java.net.MalformedURLException; | |
| 5 import java.net.URL; | |
| 6 import java.util.ArrayList; | |
| 7 import java.util.Date; | |
| 8 import java.util.Iterator; | |
| 9 | |
| 10 import javax.xml.namespace.NamespaceContext; | |
| 11 | |
| 12 import org.w3c.dom.Node; | |
| 13 | |
| 14 import de.mpg.mpiwg.berlin.mpdl.escidoc.MetadataRecord; | |
| 15 import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException; | |
| 16 import de.mpg.mpiwg.berlin.mpdl.general.MpdlConstants; | |
| 17 import de.mpg.mpiwg.berlin.mpdl.schedule.MpdlDocOperation; | |
| 18 import de.mpg.mpiwg.berlin.mpdl.util.StringUtilEscapeChars; | |
| 19 import de.mpg.mpiwg.berlin.mpdl.util.Util; | |
| 20 import de.mpg.mpiwg.berlin.mpdl.util.XmlUtil; | |
| 21 | |
| 22 public class SchemaHandler { | |
| 23 | |
| 24 /** | |
| 25 * | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
26 * @param fileName local file name to validate |
| 0 | 27 * @param docOperation |
| 28 * @return doc root node of xml file | |
| 29 * @throws ApplicationException | |
| 30 */ | |
| 31 public Node validate(String fileName, MpdlDocOperation docOperation) throws ApplicationException { | |
| 32 File destFile = new File(fileName); | |
| 33 String docBase = docOperation.getDocBase(); | |
| 34 // file name validation | |
| 35 String fName = docOperation.getFileName(); | |
| 36 if (fName == null || fName.trim().equals("")) | |
| 37 throw new ApplicationException("Your document file name is empty. Please specify a file name for your document."); | |
|
16
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
38 if (! fName.endsWith(".xml") && docBase != null && ! docBase.equals("diverse")) |
| 0 | 39 throw new ApplicationException("Your document file name does not end with \".xml\". Please specify a file name with the suffix \".xml\" for your document."); |
| 40 // RelaxNG schema validation | |
| 41 validateByRelaxNGSchema(destFile, docBase); | |
| 42 // parse validation | |
| 43 Node docNode = parse(destFile); | |
| 44 // first simple validations | |
| 45 validate(docNode, docBase); | |
| 46 // validate metadata | |
| 47 MetadataRecord mdRecord = getMetadataRecord(docNode, docOperation); | |
| 48 validate(mdRecord); | |
| 49 docOperation.setMdRecord(mdRecord); | |
| 50 return docNode; | |
| 51 } | |
| 52 | |
| 53 public MetadataRecord getMetadataRecord(Node documentNode, MpdlDocOperation docOperation) throws ApplicationException { | |
| 54 MetadataRecord mdRecord = null; | |
| 55 String eXistIdentifier = docOperation.getDestUrl(); | |
| 56 String docBase = docOperation.getDocBase(); | |
| 57 if (docBase != null && docBase.equals("echo")) { | |
| 58 mdRecord = getMetadataRecordEcho(documentNode); | |
| 59 if (mdRecord != null) { | |
| 60 String identifier = mdRecord.getIdentifier(); | |
| 61 if (identifier == null) { | |
| 62 String id = getIdByExistId(eXistIdentifier); | |
| 63 mdRecord.setIdentifier("ECHO:" + id + ".xml"); | |
| 64 } | |
| 65 } | |
| 66 } else if (docBase != null && docBase.equals("archimedes")) { | |
| 67 mdRecord = getMetadataRecordArchimedes(documentNode); | |
| 68 if (mdRecord != null) { | |
| 69 String id = getIdByExistId(eXistIdentifier); | |
| 70 mdRecord.setIdentifier("ARCHIMEDES:" + id + ".xml"); | |
| 71 } | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
72 } else if (docBase != null && docBase.equals("tei")) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
73 mdRecord = getMetadataRecordTEI(documentNode); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
74 if (mdRecord != null) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
75 String id = getIdByExistId(eXistIdentifier); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
76 mdRecord.setIdentifier("TEI:" + id + ".xml"); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
77 } |
|
16
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
78 } else if (docBase != null && docBase.equals("diverse")) { |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
79 mdRecord = getMetadataRecordDiverse(documentNode); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
80 if (mdRecord != null) { |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
81 String id = getIdByExistId(eXistIdentifier); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
82 mdRecord.setIdentifier(id); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
83 String lang = docOperation.getLanguage(); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
84 mdRecord.setLanguage(lang); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
85 } |
| 0 | 86 } |
| 87 if (mdRecord != null) { | |
| 88 mdRecord.setEXistIdentifier(eXistIdentifier); | |
| 89 mdRecord.setMediaType("fulltext"); | |
| 90 } | |
| 91 return mdRecord; | |
| 92 } | |
| 93 | |
| 94 public ArrayList<String> getPBFileNames(Node documentNode, String docBase) throws ApplicationException { | |
| 95 ArrayList<String> pbFileNamesArrayStr = null; | |
| 96 if (docBase != null && docBase.equals("echo")) { | |
| 97 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 98 NamespaceContext nsContext = getEchoNsContext(); | |
| 99 pbFileNamesArrayStr = xmlUtil.evaluateToStringArray(documentNode, "//echo:pb/@file", nsContext); | |
| 100 } else if (docBase != null && docBase.equals("archimedes")) { | |
| 101 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 102 ArrayList<String> pbsStrArray = xmlUtil.evaluateToStringArray(documentNode, "//pb", null); | |
| 103 if (pbsStrArray != null) { | |
| 104 pbFileNamesArrayStr = new ArrayList<String>(); | |
| 105 int countPBs = pbsStrArray.size(); | |
| 106 for (int i=1; i<=countPBs; i++) { | |
| 107 pbFileNamesArrayStr.add("" + i); // empty names for each page break | |
| 108 } | |
| 109 } | |
| 110 } | |
| 111 return pbFileNamesArrayStr; | |
| 112 } | |
| 113 | |
| 114 public String getPageImgDir(MetadataRecord mdRecord) throws ApplicationException { | |
| 115 String dcId = mdRecord.getIdentifier(); // dublin core identifier: is used to find the digilib image directory for this document | |
| 116 String id = getIdByDCIdentifier(dcId); | |
| 117 String imagesDocDirectory = "/permanent/library/" + id; | |
| 118 if (mdRecord.hasArchimedesDocBase()) | |
| 119 imagesDocDirectory = "/permanent/archimedes/" + id; | |
| 120 String echoDir = mdRecord.getEchoDir(); | |
| 121 if (echoDir != null) | |
| 122 imagesDocDirectory = echoDir; | |
| 123 String pageImgSubDir = "pageimg"; // default name: if digilib does not answer then this name is used | |
| 124 String indexMetaPageImgDir = getIndexMetaDataPageImg(imagesDocDirectory); | |
| 125 if (indexMetaPageImgDir != null) | |
| 126 pageImgSubDir = indexMetaPageImgDir; | |
| 127 String pageImgDir = imagesDocDirectory + "/" + pageImgSubDir; | |
| 128 return pageImgDir; | |
| 129 } | |
| 130 | |
| 131 private Node parse(File file) throws ApplicationException { | |
| 132 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 133 Node retNode = null; | |
| 134 try { | |
| 135 retNode = xmlUtil.doc(file); | |
| 136 } catch (ApplicationException e) { | |
| 137 throw new ApplicationException("Your source file is not valid: " + e.getMessage()); | |
| 138 } | |
| 139 return retNode; | |
| 140 } | |
| 141 | |
| 142 private void validate(Node docNode, String docBase) throws ApplicationException { | |
|
16
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
143 if (docBase.equals("diverse")) |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
144 return; |
| 0 | 145 XmlUtil xmlUtil = XmlUtil.getInstance(); |
| 146 NamespaceContext nsContext = getEchoNsContext(); | |
| 147 String echoTest = null; | |
| 148 String archimedesTest = null; | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
149 String teiTest = null; |
| 0 | 150 try { |
| 151 echoTest = xmlUtil.evaluateToString(docNode, "/echo:echo/echo:metadata", nsContext); | |
| 152 archimedesTest = xmlUtil.evaluateToString(docNode, "/archimedes/info", null); | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
153 teiTest = xmlUtil.evaluateToString(docNode, "/TEI/teiHeader", null); |
| 0 | 154 } catch (ApplicationException e) { |
| 155 throw new ApplicationException("Your source file is not an \"echo\" or \"archimedes\" file. Please proof that file."); | |
| 156 } | |
| 157 if (docBase.equals("echo") && archimedesTest != null) | |
| 158 throw new ApplicationException("Your source file is an \"archimedes\" file. " + "Please specify \"archimedes\" in your destination document base."); | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
159 if (docBase.equals("echo") && teiTest != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
160 throw new ApplicationException("Your source file is a \"TEI\" file. " + "Please specify \"TEI\" in your destination document base."); |
| 0 | 161 if (docBase.equals("archimedes") && echoTest != null) |
| 162 throw new ApplicationException("Your source file is an \"echo\" file. " + "Please specify \"echo\" in your destination document base."); | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
163 if (docBase.equals("archimedes") && teiTest != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
164 throw new ApplicationException("Your source file is a \"archimedes\" file. " + "Please specify \"TEI\" in your destination document base."); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
165 if (docBase.equals("tei") && archimedesTest != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
166 throw new ApplicationException("Your source file is an \"archimedes\" file. " + "Please specify \"archimedes\" in your destination document base."); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
167 if (docBase.equals("tei") && echoTest != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
168 throw new ApplicationException("Your source file is an \"echo\" file. " + "Please specify \"echo\" in your destination document base."); |
| 0 | 169 } |
| 170 | |
| 171 private void validateByRelaxNGSchema(File destFile, String docBase) throws ApplicationException { | |
| 172 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 173 if (docBase.equals("echo")) { | |
| 174 URL echoSchemaUrl = getEchoRelaxNGSchemaUrl(); | |
| 175 xmlUtil.validateByRelaxNG(destFile, echoSchemaUrl); | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
176 } else if (docBase.equals("tei")) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
177 URL teiSchemaUrl = getTeiLiteRelaxNGSchemaUrl(); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
178 xmlUtil.validateByRelaxNG(destFile, teiSchemaUrl); |
| 0 | 179 } |
| 180 } | |
| 181 | |
| 182 private URL getEchoRelaxNGSchemaUrl() throws ApplicationException { | |
| 183 String echoSchemaUrlStr = "http://" + MpdlConstants.MPDL_EXIST_HOST_NAME + ":" + MpdlConstants.MPDL_EXIST_PORT + MpdlConstants.MPDL_ECHO_RELAXNG_PATH; | |
| 184 URL echoSchemaUrl = null; | |
| 185 try { | |
| 186 echoSchemaUrl = new URL(echoSchemaUrlStr); | |
| 187 } catch (MalformedURLException e) { | |
| 188 throw new ApplicationException(e); | |
| 189 } | |
| 190 return echoSchemaUrl; | |
| 191 } | |
| 192 | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
193 private URL getTeiLiteRelaxNGSchemaUrl() throws ApplicationException { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
194 String schemaUrlStr = "http://" + MpdlConstants.MPDL_EXIST_HOST_NAME + ":" + MpdlConstants.MPDL_EXIST_PORT + MpdlConstants.MPDL_TEILITE_RELAXNG_PATH; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
195 URL schemaUrl = null; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
196 try { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
197 schemaUrl = new URL(schemaUrlStr); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
198 } catch (MalformedURLException e) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
199 throw new ApplicationException(e); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
200 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
201 return schemaUrl; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
202 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
203 |
| 0 | 204 private void validate(MetadataRecord mdRecord) throws ApplicationException { |
|
16
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
205 String docBase = mdRecord.getDocBase(); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
206 if (docBase.equals("diverse")) |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
207 return; |
| 0 | 208 String identifier = mdRecord.getIdentifier(); |
| 209 String creator = mdRecord.getCreator(); | |
| 210 String title = mdRecord.getTitle(); | |
| 211 if (identifier == null || identifier.trim().equals("")) | |
| 212 throw new ApplicationException("Your document file does not contain the metadata field: " + "identifier"); | |
| 213 if (creator == null || creator.trim().equals("")) | |
| 214 throw new ApplicationException("Your document file does not contain the metadata field: " + "creator"); | |
| 215 if (title == null || title.trim().equals("")) | |
| 216 throw new ApplicationException("Your document file does not contain the metadata field: " + "title"); | |
| 217 } | |
| 218 | |
| 219 private MetadataRecord getMetadataRecordEcho(Node documentNode) throws ApplicationException { | |
| 220 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 221 NamespaceContext nsContext = getEchoNsContext(); | |
| 222 String identifier = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:identifier", nsContext); | |
| 223 if (identifier != null) | |
| 224 identifier = StringUtilEscapeChars.deresolveXmlEntities(identifier); | |
| 225 String creator = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:creator", nsContext); | |
| 226 if (creator != null) | |
| 227 creator = StringUtilEscapeChars.deresolveXmlEntities(creator); | |
| 228 String title = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:title", nsContext); | |
| 229 if (title != null) | |
| 230 title = StringUtilEscapeChars.deresolveXmlEntities(title); | |
| 231 String language = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:language", nsContext); | |
| 232 if (language != null) | |
| 233 language = StringUtilEscapeChars.deresolveXmlEntities(language); | |
| 234 String yearStr = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:date", nsContext); | |
| 235 Date date = null; | |
| 236 if (yearStr != null && ! yearStr.equals("")) { | |
| 237 yearStr = StringUtilEscapeChars.deresolveXmlEntities(yearStr); | |
| 238 yearStr = new Util().toYearStr(yearStr); // test if possible etc | |
| 239 if (yearStr != null) | |
| 240 date = XmlUtil.getInstance().toDate(yearStr + "-01-01T00:00:00.000Z"); | |
| 241 } | |
| 242 String rights = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:rights", nsContext); | |
| 243 if (rights != null) | |
| 244 rights = StringUtilEscapeChars.deresolveXmlEntities(rights); | |
| 245 String license = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:license", nsContext); | |
| 246 if (license != null) | |
| 247 license = StringUtilEscapeChars.deresolveXmlEntities(license); | |
| 248 String accessRights = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/dcterms:accessRights", nsContext); | |
| 249 if (accessRights != null) | |
| 250 accessRights = StringUtilEscapeChars.deresolveXmlEntities(accessRights); | |
| 251 String echoDir = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/echo:echodir", nsContext); | |
| 252 if (echoDir != null) | |
| 253 echoDir = StringUtilEscapeChars.deresolveXmlEntities(echoDir); | |
| 254 String echoLink = xmlUtil.evaluateToString(documentNode, "/echo:echo/echo:metadata/echo:echolink", nsContext); | |
| 255 if (echoLink != null) | |
| 256 echoLink = StringUtilEscapeChars.deresolveXmlEntities(echoLink); | |
| 257 MetadataRecord mdRecord = new MetadataRecord(identifier, language, creator, title, null, null, "text/xml", rights, date); | |
| 258 mdRecord.setDocBase("echo"); | |
| 259 mdRecord.setLicense(license); | |
| 260 mdRecord.setAccessRights(accessRights); | |
| 261 mdRecord.setEchoLink(echoLink); | |
| 262 mdRecord.setEchoDir(echoDir); | |
| 263 return mdRecord; | |
| 264 } | |
| 265 | |
| 266 private MetadataRecord getMetadataRecordArchimedes(Node documentNode) throws ApplicationException { | |
| 267 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 268 String identifier = xmlUtil.evaluateToString(documentNode, "/archimedes/info/cvs_file", null); | |
| 269 if (identifier != null) | |
| 270 identifier = StringUtilEscapeChars.deresolveXmlEntities(identifier); | |
| 271 String creator = xmlUtil.evaluateToString(documentNode, "/archimedes/info/author", null); | |
| 272 if (creator != null) | |
| 273 creator = StringUtilEscapeChars.deresolveXmlEntities(creator); | |
| 274 String title = xmlUtil.evaluateToString(documentNode, "/archimedes/info/title", null); | |
| 275 if (title != null) | |
| 276 title = StringUtilEscapeChars.deresolveXmlEntities(title); | |
| 277 String language = xmlUtil.evaluateToString(documentNode, "/archimedes/info/lang", null); | |
| 278 if (language != null) | |
| 279 language = StringUtilEscapeChars.deresolveXmlEntities(language); | |
| 280 String yearStr = xmlUtil.evaluateToString(documentNode, "/archimedes/info/date", null); | |
| 281 Date date = null; | |
| 282 if (yearStr != null && ! yearStr.equals("")) { | |
| 283 yearStr = StringUtilEscapeChars.deresolveXmlEntities(yearStr); | |
| 284 yearStr = new Util().toYearStr(yearStr); // test if possible etc | |
| 285 if (yearStr != null) | |
| 286 date = XmlUtil.getInstance().toDate(yearStr + "-01-01T00:00:00.000Z"); | |
| 287 } | |
| 288 String rights = "open access"; | |
| 289 String license = "http://echo.mpiwg-berlin.mpg.de/policy/oa_basics/declaration"; | |
| 290 String accessRights = "free"; | |
| 291 MetadataRecord mdRecord = new MetadataRecord(identifier, language, creator, title, null, null, "text/xml", rights, date); | |
| 292 mdRecord.setDocBase("archimedes"); | |
| 293 mdRecord.setLicense(license); | |
| 294 mdRecord.setAccessRights(accessRights); | |
| 295 return mdRecord; | |
| 296 } | |
| 297 | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
298 private MetadataRecord getMetadataRecordTEI(Node documentNode) throws ApplicationException { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
299 XmlUtil xmlUtil = XmlUtil.getInstance(); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
300 NamespaceContext nsContext = getTeiNsContext(); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
301 String creator = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:fileDesc/TEI:titleStmt/TEI:author", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
302 if (creator != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
303 creator = StringUtilEscapeChars.deresolveXmlEntities(creator); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
304 String title = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:fileDesc/TEI:titleStmt/TEI:title", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
305 if (title != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
306 title = StringUtilEscapeChars.deresolveXmlEntities(title); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
307 String language = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:profileDesc/TEI:langUsage/TEI:language/@ident", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
308 if (language != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
309 language = StringUtilEscapeChars.deresolveXmlEntities(language); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
310 String yearStr = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:fileDesc/TEI:publicationStmt/TEI:date", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
311 Date date = null; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
312 if (yearStr != null && ! yearStr.equals("")) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
313 yearStr = StringUtilEscapeChars.deresolveXmlEntities(yearStr); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
314 yearStr = new Util().toYearStr(yearStr); // test if possible etc |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
315 if (yearStr != null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
316 date = XmlUtil.getInstance().toDate(yearStr + "-01-01T00:00:00.000Z"); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
317 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
318 String rights = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:fileDesc/TEI:publicationStmt/TEI:availability", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
319 if (rights == null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
320 rights = "open access"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
321 rights = StringUtilEscapeChars.deresolveXmlEntities(rights); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
322 String license = "http://echo.mpiwg-berlin.mpg.de/policy/oa_basics/declaration"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
323 String accessRights = xmlUtil.evaluateToString(documentNode, "/TEI:TEI/TEI:teiHeader/TEI:fileDesc/TEI:publicationStmt/TEI:availability/@status", nsContext); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
324 if (accessRights == null) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
325 accessRights = "free"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
326 accessRights = StringUtilEscapeChars.deresolveXmlEntities(accessRights); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
327 MetadataRecord mdRecord = new MetadataRecord(null, language, creator, title, null, null, "text/xml", rights, date); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
328 mdRecord.setDocBase("tei"); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
329 mdRecord.setLicense(license); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
330 mdRecord.setAccessRights(accessRights); |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
331 return mdRecord; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
332 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
333 |
|
16
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
334 private MetadataRecord getMetadataRecordDiverse(Node documentNode) throws ApplicationException { |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
335 String rights = "open access"; |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
336 String license = "http://echo.mpiwg-berlin.mpg.de/policy/oa_basics/declaration"; |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
337 String accessRights = "free"; |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
338 accessRights = StringUtilEscapeChars.deresolveXmlEntities(accessRights); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
339 MetadataRecord mdRecord = new MetadataRecord(null, null, null, null, null, null, null, rights, null); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
340 mdRecord.setDocBase("diverse"); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
341 mdRecord.setLicense(license); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
342 mdRecord.setAccessRights(accessRights); |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
343 return mdRecord; |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
344 } |
|
257f67be5c00
diverse Fehlerbehebungen
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
10
diff
changeset
|
345 |
| 0 | 346 private String getIndexMetaDataPageImg(String imagesDocDirectory) throws ApplicationException { |
| 347 String resultStr = null; | |
| 348 String nausikaaURLTexter = "http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Texter"; | |
| 349 XmlUtil xmlUtil = XmlUtil.getInstance(); | |
| 350 String pageImageDirectory = null; | |
| 351 try { | |
| 352 Node imagesDocDirectoryIndexMetaNode = xmlUtil.doc(nausikaaURLTexter + "?fn=" + imagesDocDirectory + "/index.meta"); | |
| 353 pageImageDirectory = xmlUtil.evaluateToString(imagesDocDirectoryIndexMetaNode, "/resource/meta/texttool/image", null); | |
| 354 } catch (Exception e) { | |
| 355 // return null if digilib does not work | |
| 356 } | |
| 357 if (pageImageDirectory != null) { | |
| 358 resultStr = pageImageDirectory; | |
| 359 } | |
| 360 return resultStr; | |
| 361 } | |
| 362 | |
| 363 private String getIdByExistId(String eXistIdentifier) { | |
| 364 String id = null; | |
| 365 if (eXistIdentifier == null) | |
| 366 return null; | |
| 367 int firstDelimPos = eXistIdentifier.indexOf("/", 2); | |
| 368 int secondDelimPos = eXistIdentifier.indexOf("/", firstDelimPos + 1); | |
| 369 int thirdDelimPos = eXistIdentifier.indexOf(".xml", secondDelimPos + 1); | |
| 370 if (firstDelimPos == -1 || secondDelimPos == -1 || thirdDelimPos == -1) | |
| 371 id = eXistIdentifier; | |
| 372 else | |
| 373 id = eXistIdentifier.substring(secondDelimPos + 1, thirdDelimPos); | |
| 374 return id; | |
| 375 } | |
| 376 | |
| 377 private String getIdByDCIdentifier(String dcIdentifier) { | |
| 378 if (dcIdentifier == null || dcIdentifier.trim().equals("")) | |
| 379 return null; | |
| 380 // if dcIdentifier starts with "ECHO:" or "ARCHIMEDES:" then delete it | |
| 381 if (dcIdentifier.startsWith("ECHO:")) | |
| 382 dcIdentifier = dcIdentifier.substring(5); | |
| 383 if (dcIdentifier.startsWith("ARCHIMEDES:")) | |
| 384 dcIdentifier = dcIdentifier.substring(11); | |
| 385 // delete the .xml suffix if there is one | |
| 386 if (dcIdentifier.endsWith(".xml")) { | |
| 387 int size = dcIdentifier.length(); | |
| 388 dcIdentifier = dcIdentifier.substring(0, size - 4); | |
| 389 } | |
| 390 return dcIdentifier; | |
| 391 } | |
| 392 | |
| 393 public NamespaceContext getEchoNsContext() { | |
| 394 NamespaceContext nsContext = new NamespaceContext() { | |
| 395 public String getNamespaceURI(String prefix) { | |
| 396 String uri; | |
| 397 if (prefix.equals("de")) | |
| 398 uri = "http://www.mpiwg-berlin.mpg.de/ns/de/1.0/"; | |
| 399 else if (prefix.equals("echo")) | |
| 400 uri = "http://www.mpiwg-berlin.mpg.de/ns/echo/1.0/"; | |
| 401 else if (prefix.equals("dc")) | |
| 402 uri = "http://purl.org/dc/elements/1.1/"; | |
| 403 else if (prefix.equals("dcterms")) | |
| 404 uri = "http://purl.org/dc/terms"; | |
| 405 else if (prefix.equals("dcq")) | |
| 406 uri = "http://purl.org/dc/qualifiers/1.0/"; | |
| 407 else if (prefix.equals("xhtml")) | |
| 408 uri = "http://www.w3.org/1999/xhtml"; | |
| 409 else if (prefix.equals("dct")) | |
| 410 uri = "http://purl.org/dc/terms/1.0/"; | |
| 411 else if (prefix.equals("xlink")) | |
| 412 uri = "http://www.w3.org/1999/xlink"; | |
| 413 else if (prefix.equals("rdf")) | |
| 414 uri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; | |
| 415 else if (prefix.equals("xsi")) | |
| 416 uri = "http://www.w3.org/2001/XMLSchema-instance"; | |
| 417 else if (prefix.equals("mml")) | |
| 418 uri = "http://www.w3.org/1998/Math/MathML"; | |
| 419 else | |
| 420 uri = null; | |
| 421 return uri; | |
| 422 } | |
| 423 | |
| 424 public String getPrefix(String uri) { | |
| 425 if (uri.equals("http://www.mpiwg-berlin.mpg.de/ns/de/1.0/")) | |
| 426 return "de"; | |
| 427 else if (uri.equals("http://www.mpiwg-berlin.mpg.de/ns/echo/1.0/")) | |
| 428 return "echo"; | |
| 429 else if (uri.equals("http://purl.org/dc/elements/1.1/")) | |
| 430 return "dc"; | |
| 431 else if (uri.equals("http://purl.org/dc/terms")) | |
| 432 return "dcterms"; | |
| 433 else if (uri.equals("http://purl.org/dc/qualifiers/1.0/")) | |
| 434 return "dcq"; | |
| 435 else if (uri.equals("http://www.w3.org/1999/xhtml")) | |
| 436 return "xhtml"; | |
| 437 else if (uri.equals("http://purl.org/dc/terms/1.0/")) | |
| 438 return "dct"; | |
| 439 else if (uri.equals("http://www.w3.org/1999/xlink")) | |
| 440 return "xlink"; | |
| 441 else if (uri.equals("http://www.w3.org/1999/02/22-rdf-syntax-ns#")) | |
| 442 return "rdf"; | |
| 443 else if (uri.equals("http://www.w3.org/2001/XMLSchema-instance")) | |
| 444 return "xsi"; | |
| 445 else if (uri.equals("http://www.w3.org/1998/Math/MathML")) | |
| 446 return "mml"; | |
| 447 else | |
| 448 return null; | |
| 449 } | |
| 450 | |
| 451 public Iterator getPrefixes(String namespace) { | |
| 452 return null; | |
| 453 } | |
| 454 }; | |
| 455 return nsContext; | |
| 456 } | |
| 457 | |
|
10
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
458 public NamespaceContext getTeiNsContext() { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
459 NamespaceContext nsContext = new NamespaceContext() { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
460 public String getNamespaceURI(String prefix) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
461 String uri; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
462 if (prefix.equals("TEI")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
463 uri = "http://www.tei-c.org/ns/1.0"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
464 else if (prefix.equals("xhtml")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
465 uri = "http://www.w3.org/1999/xhtml"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
466 else if (prefix.equals("xlink")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
467 uri = "http://www.w3.org/1999/xlink"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
468 else if (prefix.equals("mml")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
469 uri = "http://www.w3.org/1998/Math/MathML"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
470 else |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
471 uri = null; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
472 return uri; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
473 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
474 |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
475 public String getPrefix(String uri) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
476 if (uri.equals("http://www.tei-c.org/ns/1.0")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
477 return "TEI"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
478 else if (uri.equals("http://www.w3.org/1999/xhtml")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
479 return "xhtml"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
480 else if (uri.equals("http://www.w3.org/1999/xlink")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
481 return "xlink"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
482 else if (uri.equals("http://www.w3.org/1998/Math/MathML")) |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
483 return "mml"; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
484 else |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
485 return null; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
486 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
487 |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
488 public Iterator getPrefixes(String namespace) { |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
489 return null; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
490 } |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
491 }; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
492 return nsContext; |
|
59ff47d1e237
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
493 } |
| 0 | 494 |
| 495 } |
