home *** CD-ROM | disk | FTP | other *** search
- package net.n3.nanoxml;
-
- import java.io.CharArrayReader;
- import java.io.IOException;
- import java.io.Reader;
-
- class XMLUtil {
- static void skipComment(IXMLReader var0, IXMLEntityResolver var1) throws IOException, XMLParseException {
- if (var0.read() != '-') {
- skipTag(var0, '\u0000', var1);
- } else {
- int var2 = 0;
-
- while(true) {
- char var3 = var0.read();
- switch (var3) {
- case '-':
- ++var2;
- break;
- case '>':
- if (var2 == 2) {
- return;
- }
- default:
- var2 = 0;
- }
- }
- }
- }
-
- static void skipTag(IXMLReader var0, char var1, IXMLEntityResolver var2) throws IOException, XMLParseException {
- int var3 = 1;
-
- while(var3 > 0) {
- char var4 = read(var0, (boolean[])null, var1, var2);
- switch (var4) {
- case '<':
- ++var3;
- break;
- case '>':
- --var3;
- }
- }
-
- }
-
- static String scanPublicID(StringBuffer var0, IXMLReader var1, char var2, IXMLEntityResolver var3) throws IOException, XMLParseException {
- if (!checkLiteral(var1, var2, var3, "UBLIC")) {
- return null;
- } else {
- skipWhitespace(var1, var2, (StringBuffer)null, (boolean[])null);
- var0.append(scanString(var1, var2, false, var3));
- skipWhitespace(var1, var2, (StringBuffer)null, (boolean[])null);
- return scanString(var1, var2, false, var3);
- }
- }
-
- static String scanSystemID(IXMLReader var0, char var1, IXMLEntityResolver var2) throws IOException, XMLParseException {
- if (!checkLiteral(var0, var1, var2, "YSTEM")) {
- return null;
- } else {
- skipWhitespace(var0, var1, (StringBuffer)null, (boolean[])null);
- return scanString(var0, var1, false, var2);
- }
- }
-
- static String scanIdentifier(IXMLReader var0, char var1, IXMLEntityResolver var2) throws IOException, XMLParseException {
- StringBuffer var3 = new StringBuffer();
-
- while(true) {
- char var4 = read(var0, (boolean[])null, var1, var2);
- if (var4 != '_' && var4 != ':' && var4 != '-' && var4 != '.' && (var4 < 'a' || var4 > 'z') && (var4 < 'A' || var4 > 'Z') && (var4 < '0' || var4 > '9') && var4 <= '~') {
- var0.unread(var4);
- return var3.toString();
- }
-
- var3.append(var4);
- }
- }
-
- static String scanString(IXMLReader var0, char var1, boolean var2, IXMLEntityResolver var3) throws IOException, XMLParseException {
- StringBuffer var4 = new StringBuffer();
- boolean[] var5 = new boolean[1];
- char var6 = read(var0, (boolean[])null, var1, var3);
- if (var6 != '\'' && var6 != '"') {
- errorExpectedInput(var0.getSystemID(), var0.getLineNr(), "delimited string");
- }
-
- while(true) {
- char var7 = read(var0, var5, var1, var3);
- if (!var5[0] && var7 == var1) {
- var0.startNewStream(scanEntity(var5, var0, var1, var3));
- var7 = var0.read();
- }
-
- if (!var5[0] && var7 == var6) {
- return var4.toString();
- }
-
- if (var2 && var7 < ' ') {
- var4.append(' ');
- } else {
- var4.append(var7);
- }
- }
- }
-
- static Reader scanEntity(boolean[] var0, IXMLReader var1, char var2, IXMLEntityResolver var3) throws IOException, XMLParseException {
- char var4 = var1.read();
-
- StringBuffer var5;
- for(var5 = new StringBuffer(); var4 != ';'; var4 = var1.read()) {
- var5.append(var4);
- }
-
- String var6 = var5.toString();
- if (var6.charAt(0) == '#') {
- if (var0 != null) {
- var0[0] = true;
- }
-
- char[] var8 = new char[1];
- if (var6.charAt(1) == 'x') {
- var8[0] = (char)Integer.parseInt(var6.substring(2), 16);
- } else {
- var8[0] = (char)Integer.parseInt(var6.substring(1), 10);
- }
-
- return new CharArrayReader(var8);
- } else {
- Reader var7 = var3.getEntity(var1, var6);
- if (var7 == null) {
- errorInvalidEntity(var1.getSystemID(), var1.getLineNr(), var6);
- }
-
- return var7;
- }
- }
-
- static void skipWhitespace(IXMLReader var0, char var1, StringBuffer var2, boolean[] var3) throws IOException {
- char var4;
- if (var2 == null) {
- do {
- var4 = var0.read();
- } while(var4 == ' ' || var4 == '\t' || var4 == '\n' || var4 == '\r');
- } else {
- while(true) {
- var4 = var0.read();
- if (var4 != ' ' && var4 != '\t' && var4 != '\n' && var4 != '\r') {
- break;
- }
-
- var2.append(var4);
- }
- }
-
- var0.unread(var4);
- if (var3 != null) {
- var3[0] = var4 == var1;
- }
-
- }
-
- static char read(IXMLReader var0, boolean[] var1, char var2, IXMLEntityResolver var3) throws IOException, XMLParseException {
- char var4 = var0.read();
- if (var1 != null) {
- var1[0] = false;
- }
-
- if (var4 == var2) {
- boolean[] var5 = new boolean[1];
- var0.startNewStream(scanEntity(var5, var0, var2, var3));
- if (var5[0]) {
- var4 = var0.read();
- if (var1 != null) {
- var1[0] = true;
- }
- } else {
- var4 = read(var0, (boolean[])null, var2, var3);
- }
- }
-
- return var4;
- }
-
- static boolean checkLiteral(IXMLReader var0, char var1, IXMLEntityResolver var2, String var3) throws IOException, XMLParseException {
- for(int var4 = 0; var4 < var3.length(); ++var4) {
- char var5 = read(var0, (boolean[])null, var1, var2);
- if (var5 != var3.charAt(var4)) {
- return false;
- }
- }
-
- return true;
- }
-
- static void errorExpectedInput(String var0, int var1, String var2) throws XMLParseException {
- throw new XMLParseException(var0, var1, "Expected: " + var2);
- }
-
- static void errorInvalidEntity(String var0, int var1, String var2) throws XMLParseException {
- throw new XMLParseException(var0, var1, "Invalid entity: `&" + var2 + ";'");
- }
-
- static void errorInvalidInput(String var0, int var1, String var2) throws XMLParseException {
- throw new XMLParseException(var0, var1, "Invalid input: " + var2);
- }
-
- static void errorWrongClosingTag(String var0, int var1, String var2, String var3) throws XMLParseException {
- throw new XMLParseException(var0, var1, "Closing tag does not match opening tag: `" + var3 + "' != `" + var2 + "'");
- }
-
- static void errorClosingTagNotEmpty(String var0, int var1) throws XMLParseException {
- throw new XMLParseException(var0, var1, "Closing tag must be empty");
- }
-
- static void errorMissingElement(String var0, int var1, String var2, String var3) throws XMLValidationException {
- throw new XMLValidationException(1, var0, var1, var3, (String)null, (String)null, "Element " + var2 + " expects to have a " + var3);
- }
-
- static void errorUnexpectedElement(String var0, int var1, String var2, String var3) throws XMLValidationException {
- throw new XMLValidationException(2, var0, var1, var3, (String)null, (String)null, "Unexpected " + var3 + " in a " + var2);
- }
-
- static void errorMissingAttribute(String var0, int var1, String var2, String var3) throws XMLValidationException {
- throw new XMLValidationException(3, var0, var1, var2, var3, (String)null, "Element " + var2 + " expects an attribute named " + var3);
- }
-
- static void errorUnexpectedAttribute(String var0, int var1, String var2, String var3) throws XMLValidationException {
- throw new XMLValidationException(4, var0, var1, var2, var3, (String)null, "Element " + var2 + " did not expect an attribute " + "named " + var3);
- }
-
- static void errorInvalidAttributeValue(String var0, int var1, String var2, String var3, String var4) throws XMLValidationException {
- throw new XMLValidationException(5, var0, var1, var2, var3, var4, "Invalid value for attribute " + var3);
- }
-
- static void errorMissingPCData(String var0, int var1, String var2) throws XMLValidationException {
- throw new XMLValidationException(6, var0, var1, (String)null, (String)null, (String)null, "Missing #PCDATA in element " + var2);
- }
-
- static void errorUnexpectedPCData(String var0, int var1, String var2) throws XMLValidationException {
- throw new XMLValidationException(7, var0, var1, (String)null, (String)null, (String)null, "Unexpected #PCDATA in element " + var2);
- }
-
- static void validationError(String var0, int var1, String var2, String var3, String var4, String var5) throws XMLValidationException {
- throw new XMLValidationException(0, var0, var1, var3, var4, var5, var2);
- }
- }
-