Mercurial > hg > digilib-old
comparison servlet/src/digilib/io/XMLMetaLoader.java @ 139:11cfe4c89fdc
Servlet version 1.11b1 with improved original-size.
- fixed lots of bugs in metadata handling.
author | robcast |
---|---|
date | Thu, 31 Jul 2003 20:56:51 +0200 |
parents | c36944be0b58 |
children | bc8df0133c04 |
comparison
equal
deleted
inserted
replaced
138:d18b0ff52b07 | 139:11cfe4c89fdc |
---|---|
54 private HashMap meta; | 54 private HashMap meta; |
55 private StringBuffer content; | 55 private StringBuffer content; |
56 private String fileName; | 56 private String fileName; |
57 private String filePath; | 57 private String filePath; |
58 | 58 |
59 // public HashMap getData() { | 59 /** |
60 // return meta; | 60 * extracts the elements name from either localName ln or qName qn. |
61 // } | 61 * |
62 * @param ln localName | |
63 * @param qn qName | |
64 * @return element name | |
65 */ | |
66 private String getName(String ln, String qn) { | |
67 if (ln != null) { | |
68 if (ln.length() > 0) { | |
69 return ln; | |
70 } | |
71 } | |
72 // else it's qName (or nothing) | |
73 return qn; | |
74 } | |
62 | 75 |
63 // Parser calls this once at the beginning of a document | 76 // Parser calls this once at the beginning of a document |
64 public void startDocument() throws SAXException { | 77 public void startDocument() throws SAXException { |
65 tags = new LinkedList(); | 78 tags = new LinkedList(); |
66 files = new HashMap(); | 79 files = new HashMap(); |
72 String localName, | 85 String localName, |
73 String qName, | 86 String qName, |
74 Attributes atts) | 87 Attributes atts) |
75 throws SAXException { | 88 throws SAXException { |
76 | 89 |
77 String name = (localName != null) ? localName : qName; | 90 String name = getName(localName, qName); |
78 // open a new tag | 91 // open a new tag |
79 tags.addLast(name); | 92 tags.addLast(name); |
80 // start new content (no nesting of tags and content) | 93 // start new content (no nesting of tags and content) |
81 content = new StringBuffer(); | 94 content = new StringBuffer(); |
82 | 95 |
85 meta = new HashMap(); | 98 meta = new HashMap(); |
86 } else if (name.equals(fileTag)) { | 99 } else if (name.equals(fileTag)) { |
87 // new file tag | 100 // new file tag |
88 fileName = null; | 101 fileName = null; |
89 filePath = null; | 102 filePath = null; |
103 meta = new HashMap(); | |
90 } | 104 } |
91 } | 105 } |
92 | 106 |
93 // parser calls this for all tag content (possibly more than once) | 107 // parser calls this for all tag content (possibly more than once) |
94 public void characters(char[] ch, int start, int length) | 108 public void characters(char[] ch, int start, int length) |
102 String namespaceURI, | 116 String namespaceURI, |
103 String localName, | 117 String localName, |
104 String qName) | 118 String qName) |
105 throws SAXException { | 119 throws SAXException { |
106 | 120 |
107 String name = (localName != null) ? localName : qName; | 121 String name = getName(localName, qName); |
108 // exit the tag | 122 // exit the tag |
109 tags.removeLast(); | 123 tags.removeLast(); |
110 | 124 |
111 // was it a file.name tag? | 125 // was it a file.name tag? |
112 if (name.equals(fileNameTag) && tags.contains(fileTag)) { | 126 if (name.equals(fileNameTag) && tags.contains(fileTag)) { |