-package mir.util.xml;\r
-\r
-import java.util.*;\r
-\r
-import org.xml.sax.InputSource;\r
-import org.xml.sax.SAXException;\r
-import org.xml.sax.Locator;\r
-import org.xml.sax.SAXParseException;\r
-import mir.util.ExceptionFunctions;\r
-\r
-/**\r
- *\r
- * <p>Title: </p>\r
- * <p>Description: </p>\r
- * <p>Copyright: Copyright (c) 2003</p>\r
- * <p>Company: </p>\r
- * @author not attributable\r
- * @version 1.0\r
- */\r
-class XMLSAXParserProvider implements XMLParserEngine.XMLParserProvider {\r
- private boolean nameSpaceAware;\r
-\r
- public XMLSAXParserProvider(boolean aNameSpaceAware) {\r
- nameSpaceAware = aNameSpaceAware;\r
- }\r
-\r
- public void parse(java.io.Reader aReader, XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {\r
- try {\r
- javax.xml.parsers.SAXParserFactory parserFactory = javax.xml.parsers.SAXParserFactory.newInstance();\r
-\r
- parserFactory.setNamespaceAware(true);\r
- parserFactory.setValidating(true);\r
- javax.xml.parsers.SAXParser parser = parserFactory.newSAXParser();\r
-\r
- parser.parse(new InputSource(aReader), new SAXHandler(aReceiver));\r
- }\r
- catch (org.xml.sax.SAXException e) {\r
- Throwable t = ExceptionFunctions.traceCauseException(e);\r
-\r
- if (t instanceof XMLParserExc) {\r
- throw (XMLParserExc) t;\r
- }\r
-\r
- if (t instanceof XMLParserFailure) {\r
- throw (XMLParserFailure) t;\r
- }\r
-\r
- if (t instanceof SAXParseException) {\r
- throw new XMLParserExc(t.getMessage());\r
- }\r
-\r
- throw new XMLParserFailure(t);\r
- }\r
- catch (Throwable t) {\r
- throw new XMLParserFailure(t);\r
- }\r
- }\r
-\r
- private class SAXHandler extends org.xml.sax.helpers.DefaultHandler {\r
- private XMLParserEngine.XMLParserReceiver receiver;\r
-\r
- public SAXHandler(XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {\r
- super();\r
-\r
- receiver = aReceiver;\r
- receiver.startDocument();\r
- }\r
-\r
- public void setDocumentLocator(final Locator aLocator) {\r
- receiver.setLocator(\r
- new XMLParserEngine.XMLLocator() {\r
- public int getLineNr() {\r
- return aLocator.getLineNumber();\r
- }\r
-\r
- public int getColumnNr() {\r
- return aLocator.getColumnNumber();\r
- }\r
- }\r
- );\r
- }\r
-\r
- public void startElement(String aUri, String aLocalName, String aQualifiedName, org.xml.sax.Attributes anAttributes) throws org.xml.sax.SAXException {\r
- try {\r
- Map attributes = new java.util.HashMap();\r
-\r
- XMLName tag;\r
- if (nameSpaceAware) {\r
- tag = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName), aLocalName);\r
- for (int i=0; i<anAttributes.getLength(); i++)\r
- attributes.put(\r
- new XMLName(anAttributes.getURI(i),\r
- XMLReaderTool.getPrefixFromQualifiedName(anAttributes.getQName(i)),\r
- anAttributes.getLocalName(i)),\r
- anAttributes.getValue(i));\r
- }\r
- else {\r
- tag = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName),\r
- XMLReaderTool.getLocalNameFromQualifiedName(aQualifiedName));\r
- for (int i=0; i<anAttributes.getLength(); i++)\r
- attributes.put(\r
- new XMLName(anAttributes.getURI(i),\r
- XMLReaderTool.getPrefixFromQualifiedName(anAttributes.getQName(i)),\r
- XMLReaderTool.getLocalNameFromQualifiedName(anAttributes.getQName(i))),\r
- anAttributes.getValue(i));\r
- }\r
-\r
- receiver.startElement(tag, attributes);\r
- }\r
- catch (XMLParserExc e) {\r
- throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);\r
- }\r
- catch (Exception e) {\r
- throw new SAXException(e);\r
- }\r
- }\r
-\r
- public void endElement(String aUri, String aLocalName, String aQualifiedName) throws org.xml.sax.SAXException {\r
- try\r
- {\r
- XMLName element = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName), aLocalName);\r
-\r
- receiver.endElement(element);\r
- }\r
- catch (XMLParserExc e) {\r
- throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);\r
- }\r
- catch (Exception e) {\r
- throw new org.xml.sax.SAXException(e);\r
- }\r
- }\r
-\r
- public void endDocument() throws org.xml.sax.SAXException {\r
- try\r
- {\r
- receiver.endDocument();\r
- }\r
- catch (XMLParserExc e) {\r
- throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);\r
- }\r
- catch (Exception e) {\r
- throw new org.xml.sax.SAXException(e);\r
- }\r
- }\r
-\r
- public void characters(char[] aBuffer, int aStart, int anEnd) throws org.xml.sax.SAXException {\r
- try {\r
- String text = new String(aBuffer, aStart, anEnd);\r
-\r
- receiver.text(text);\r
- }\r
- catch (XMLParserExc e) {\r
- throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);\r
- }\r
- catch (Exception e) {\r
- throw new org.xml.sax.SAXException(e);\r
- }\r
- }\r
- }\r
-}\r
+package mir.util.xml;
+
+import java.util.Map;
+
+import mir.util.ExceptionRoutines;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ *
+ * <p>Title: </p>
+ * <p>Description: </p>
+ * <p>Copyright: Copyright (c) 2003</p>
+ * <p>Company: </p>
+ * @author not attributable
+ * @version 1.0
+ */
+class XMLSAXParserProvider implements XMLParserEngine.XMLParserProvider {
+ private boolean nameSpaceAware;
+
+ public XMLSAXParserProvider(boolean aNameSpaceAware) {
+ nameSpaceAware = aNameSpaceAware;
+ }
+
+ public void parse(java.io.Reader aReader, XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {
+ try {
+ javax.xml.parsers.SAXParserFactory parserFactory = javax.xml.parsers.SAXParserFactory.newInstance();
+
+ parserFactory.setNamespaceAware(true);
+ parserFactory.setValidating(true);
+ javax.xml.parsers.SAXParser parser = parserFactory.newSAXParser();
+
+ parser.parse(new InputSource(aReader), new SAXHandler(aReceiver));
+ }
+ catch (org.xml.sax.SAXException e) {
+ Throwable t = ExceptionRoutines.traceCauseException(e);
+
+ if (t instanceof XMLParserExc) {
+ throw (XMLParserExc) t;
+ }
+
+ if (t instanceof XMLParserFailure) {
+ throw (XMLParserFailure) t;
+ }
+
+ if (t instanceof SAXParseException) {
+ throw new XMLParserExc(t.getMessage());
+ }
+
+ throw new XMLParserFailure(t);
+ }
+ catch (Throwable t) {
+ throw new XMLParserFailure(t);
+ }
+ }
+
+ private class SAXHandler extends org.xml.sax.helpers.DefaultHandler {
+ private XMLParserEngine.XMLParserReceiver receiver;
+
+ public SAXHandler(XMLParserEngine.XMLParserReceiver aReceiver) throws XMLParserExc, XMLParserFailure {
+ super();
+
+ receiver = aReceiver;
+ receiver.startDocument();
+ }
+
+ public void setDocumentLocator(final Locator aLocator) {
+ receiver.setLocator(
+ new XMLParserEngine.XMLLocator() {
+ public int getLineNr() {
+ return aLocator.getLineNumber();
+ }
+
+ public int getColumnNr() {
+ return aLocator.getColumnNumber();
+ }
+ }
+ );
+ }
+
+ public void startElement(String aUri, String aLocalName, String aQualifiedName, org.xml.sax.Attributes anAttributes) throws org.xml.sax.SAXException {
+ try {
+ Map attributes = new java.util.HashMap();
+
+ XMLName tag;
+ if (nameSpaceAware) {
+ tag = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName), aLocalName);
+ for (int i=0; i<anAttributes.getLength(); i++)
+ attributes.put(
+ new XMLName(anAttributes.getURI(i),
+ XMLReaderTool.getPrefixFromQualifiedName(anAttributes.getQName(i)),
+ anAttributes.getLocalName(i)),
+ anAttributes.getValue(i));
+ }
+ else {
+ tag = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName),
+ XMLReaderTool.getLocalNameFromQualifiedName(aQualifiedName));
+ for (int i=0; i<anAttributes.getLength(); i++)
+ attributes.put(
+ new XMLName(anAttributes.getURI(i),
+ XMLReaderTool.getPrefixFromQualifiedName(anAttributes.getQName(i)),
+ XMLReaderTool.getLocalNameFromQualifiedName(anAttributes.getQName(i))),
+ anAttributes.getValue(i));
+ }
+
+ receiver.startElement(tag, attributes);
+ }
+ catch (XMLParserExc e) {
+ throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);
+ }
+ catch (Exception e) {
+ throw new SAXException(e);
+ }
+ }
+
+ public void endElement(String aUri, String aLocalName, String aQualifiedName) throws org.xml.sax.SAXException {
+ try
+ {
+ XMLName element = new XMLName(aUri, XMLReaderTool.getPrefixFromQualifiedName(aQualifiedName), aLocalName);
+
+ receiver.endElement(element);
+ }
+ catch (XMLParserExc e) {
+ throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);
+ }
+ catch (Exception e) {
+ throw new org.xml.sax.SAXException(e);
+ }
+ }
+
+ public void endDocument() throws org.xml.sax.SAXException {
+ try
+ {
+ receiver.endDocument();
+ }
+ catch (XMLParserExc e) {
+ throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);
+ }
+ catch (Exception e) {
+ throw new org.xml.sax.SAXException(e);
+ }
+ }
+
+ public void characters(char[] aBuffer, int aStart, int anEnd) throws org.xml.sax.SAXException {
+ try {
+ String text = new String(aBuffer, aStart, anEnd);
+
+ receiver.text(text);
+ }
+ catch (XMLParserExc e) {
+ throw new org.xml.sax.SAXParseException(e.getMessage(), null, e);
+ }
+ catch (Exception e) {
+ throw new org.xml.sax.SAXException(e);
+ }
+ }
+ }
+}