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 } |