Class XMLElement

java.lang.Object
com.l2fprod.contrib.nanoxml.XMLElement
All Implemented Interfaces:
Serializable

public class XMLElement extends Object implements Serializable
XMLElement is a representation of an XML object. The object is able to parse XML code.

Note that NanoXML is not 100% XML 1.0 compliant:

  • The parser is non-validating.
  • The DTD is fully ignored, including <!ENTITY...>.
  • There is no support for mixed content (elements containing both subelements and CDATA elements)

You can opt to use a SAX compatible API, by including both nanoxml.jar and nanoxml-sax.jar in your classpath and setting the property org.xml.sax.parser to nanoxml.sax.SAXParser

$Revision: 1.3 $
$Date: 2005/11/19 09:15:30 $

Version:
1.6
Author:
Marc De Scheemaecker < Marc.DeScheemaecker@advalvas.be >
See Also:
  • Field Details

    • NANOXML_MAJOR_VERSION

      public static final int NANOXML_MAJOR_VERSION
      Major version of NanoXML.
      See Also:
    • NANOXML_MINOR_VERSION

      public static final int NANOXML_MINOR_VERSION
      Minor version of NanoXML.
      See Also:
  • Constructor Details

    • XMLElement

      public XMLElement()
      Creates a new XML element. The following settings are used:
      Conversion table
      Minimal XML conversions: &amp; &lt; &gt; &apos; &quot;
      Skip whitespace in contents
      false
      Ignore Case
      true
      See Also:
    • XMLElement

      public XMLElement(Properties conversionTable)
      Creates a new XML element. The following settings are used:
      Conversion table
      conversionTable combined with the minimal XML conversions: &amp; &lt; &gt; &apos; &quot;
      Skip whitespace in contents
      false
      Ignore Case
      true
      Parameters:
      conversionTable - Description of Parameter
      See Also:
    • XMLElement

      public XMLElement(boolean skipLeadingWhitespace)
      Creates a new XML element. The following settings are used:
      Conversion table
      Minimal XML conversions: &amp; &lt; &gt; &apos; &quot;
      Skip whitespace in contents
      skipLeadingWhitespace
      Ignore Case
      true
      Parameters:
      skipLeadingWhitespace - Description of Parameter
      See Also:
    • XMLElement

      public XMLElement(Properties conversionTable, boolean skipLeadingWhitespace)
      Creates a new XML element. The following settings are used:
      Conversion table
      conversionTable combined with the minimal XML conversions: &amp; &lt; &gt; &apos; &quot;
      Skip whitespace in contents
      skipLeadingWhitespace
      Ignore Case
      true
      Parameters:
      conversionTable - Description of Parameter
      skipLeadingWhitespace - Description of Parameter
      See Also:
    • XMLElement

      public XMLElement(Properties conversionTable, boolean skipLeadingWhitespace, boolean ignoreCase)
      Creates a new XML element. The following settings are used:
      Conversion table
      conversionTable , eventually combined with the minimal XML conversions: &amp; &lt; &gt; &apos; &quot; (depending on fillBasicConversionTable )
      Skip whitespace in contents
      skipLeadingWhitespace
      Ignore Case
      ignoreCase

      This constructor should only be called from XMLElement itself to create child elements.

      Parameters:
      conversionTable - Description of Parameter
      skipLeadingWhitespace - Description of Parameter
      ignoreCase - Description of Parameter
      See Also:
    • XMLElement

      protected XMLElement(Properties conversionTable, boolean skipLeadingWhitespace, boolean fillBasicConversionTable, boolean ignoreCase)
      Creates a new XML element. The following settings are used:
      Conversion table
      conversionTable , eventually combined with the minimal XML conversions: &amp; &lt; &gt; &apos; &quot; (depending on fillBasicConversionTable )
      Skip whitespace in contents
      skipLeadingWhitespace
      Ignore Case
      ignoreCase

      This constructor should only be called from XMLElement itself to create child elements.

      Parameters:
      conversionTable - Description of Parameter
      skipLeadingWhitespace - Description of Parameter
      fillBasicConversionTable - Description of Parameter
      ignoreCase - Description of Parameter
      See Also:
  • Method Details

    • setContent

      public void setContent(String content)
      Changes the content string.
      Parameters:
      content - The new content string.
    • setTagName

      public void setTagName(String tagName)
      Changes the tag name.
      Parameters:
      tagName - The new tag name.
    • getChildren

      public Vector getChildren()
      Returns the subobjects of the object.
      Returns:
      The Children value
    • getContents

      public String getContents()
      Returns the #PCDATA content of the object. If there is no such content, null is returned.
      Returns:
      The Contents value
    • getLineNr

      public int getLineNr()
      Returns the line nr on which the element is found.
      Returns:
      The LineNr value
    • getIntProperty

      public int getIntProperty(String key, Hashtable valueSet, String defaultValue)
      Returns a property by looking up a key in a hashtable. If the property doesn't exist, the value corresponding to defaultValue is returned.
      Parameters:
      key - Description of Parameter
      valueSet - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The IntProperty value
    • getProperty

      public String getProperty(String key)
      Returns a property of the object. If there is no such property, this method returns null.
      Parameters:
      key - Description of Parameter
      Returns:
      The Property value
    • getProperty

      public String getProperty(String key, String defaultValue)
      Returns a property of the object. If the property doesn't exist, defaultValue is returned.
      Parameters:
      key - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The Property value
    • getProperty

      public int getProperty(String key, int defaultValue)
      Returns an integer property of the object. If the property doesn't exist, defaultValue is returned.
      Parameters:
      key - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The Property value
    • getProperty

      public double getProperty(String key, double defaultValue)
      Returns a floating point property of the object. If the property doesn't exist, defaultValue is returned.
      Parameters:
      key - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The Property value
    • getProperty

      public boolean getProperty(String key, String trueValue, String falseValue, boolean defaultValue)
      Returns a boolean property of the object. If the property is missing, defaultValue is returned.
      Parameters:
      key - Description of Parameter
      trueValue - Description of Parameter
      falseValue - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The Property value
    • getProperty

      public Object getProperty(String key, Hashtable valueSet, String defaultValue)
      Returns a property by looking up a key in the hashtable valueSet If the property doesn't exist, the value corresponding to defaultValue is returned.
      Parameters:
      key - Description of Parameter
      valueSet - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The Property value
    • getStringProperty

      public String getStringProperty(String key, Hashtable valueSet, String defaultValue)
      Returns a property by looking up a key in the hashtable valueSet . If the property doesn't exist, the value corresponding to defaultValue is returned.
      Parameters:
      key - Description of Parameter
      valueSet - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The StringProperty value
    • getSpecialIntProperty

      public int getSpecialIntProperty(String key, Hashtable valueSet, String defaultValue)
      Returns a property by looking up a key in the hashtable valueSet . If the value is not defined in the hashtable, the value is considered to be an integer. If the property doesn't exist, the value corresponding to defaultValue is returned.
      Parameters:
      key - Description of Parameter
      valueSet - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The SpecialIntProperty value
    • getSpecialDoubleProperty

      public double getSpecialDoubleProperty(String key, Hashtable valueSet, String defaultValue)
      Returns a property by looking up a key in the hashtable valueSet . If the value is not defined in the hashtable, the value is considered to be a floating point number. If the property doesn't exist, the value corresponding to defaultValue is returned.
      Parameters:
      key - Description of Parameter
      valueSet - Description of Parameter
      defaultValue - Description of Parameter
      Returns:
      The SpecialDoubleProperty value
    • getTagName

      public String getTagName()
      Returns the class (i.e. the name indicated in the tag) of the object.
      Returns:
      The TagName value
    • addChild

      public void addChild(XMLElement child)
      Adds a subobject.
      Parameters:
      child - The feature to be added to the Child attribute
    • addProperty

      public void addProperty(String key, Object value)
      Adds a property. If the element is case insensitive, the property name is capitalized.
      Parameters:
      key - The feature to be added to the Property attribute
      value - The feature to be added to the Property attribute
    • addProperty

      public void addProperty(String key, int value)
      Adds a property. If the element is case insensitive, the property name is capitalized.
      Parameters:
      key - The feature to be added to the Property attribute
      value - The feature to be added to the Property attribute
    • addProperty

      public void addProperty(String key, double value)
      Adds a property. If the element is case insensitive, the property name is capitalized.
      Parameters:
      key - The feature to be added to the Property attribute
      value - The feature to be added to the Property attribute
    • countChildren

      public int countChildren()
      Returns the number of subobjects of the object.
      Returns:
      Description of the Returned Value
    • enumeratePropertyNames

      public Enumeration enumeratePropertyNames()
      Enumerates the attribute names.
      Returns:
      Description of the Returned Value
    • enumerateChildren

      public Enumeration enumerateChildren()
      Enumerates the subobjects of the object.
      Returns:
      Description of the Returned Value
    • parseFromReader

      public void parseFromReader(Reader reader) throws IOException, XMLParseException
      Reads an XML definition from a java.io.Reader and parses it.
      Parameters:
      reader - Description of Parameter
      Throws:
      IOException - Description of Exception
      XMLParseException - Description of Exception
    • parseFromReader

      public void parseFromReader(Reader reader, int startingLineNr) throws IOException, XMLParseException
      Reads an XML definition from a java.io.Reader and parses it.
      Parameters:
      reader - Description of Parameter
      startingLineNr - Description of Parameter
      Throws:
      IOException - Description of Exception
      XMLParseException - Description of Exception
    • parseString

      public void parseString(String string) throws XMLParseException
      Parses an XML definition.
      Parameters:
      string - Description of Parameter
      Throws:
      XMLParseException - Description of Exception
    • parseString

      public int parseString(String string, int offset) throws XMLParseException
      Parses an XML definition starting at offset .
      Parameters:
      string - Description of Parameter
      offset - Description of Parameter
      Returns:
      the offset of the string following the XML data
      Throws:
      XMLParseException - Description of Exception
    • parseString

      public int parseString(String string, int offset, int end) throws XMLParseException
      Parses an XML definition starting at offset .
      Parameters:
      string - Description of Parameter
      offset - Description of Parameter
      end - Description of Parameter
      Returns:
      the offset of the string following the XML data (invalid input: '<'= end)
      Throws:
      XMLParseException - Description of Exception
    • parseString

      public int parseString(String string, int offset, int end, int startingLineNr) throws XMLParseException
      Parses an XML definition starting at offset .
      Parameters:
      string - Description of Parameter
      offset - Description of Parameter
      end - Description of Parameter
      startingLineNr - Description of Parameter
      Returns:
      the offset of the string following the XML data (invalid input: '<'= end)
      Throws:
      XMLParseException - Description of Exception
    • parseCharArray

      public int parseCharArray(char[] input, int offset, int end) throws XMLParseException
      Parses an XML definition starting at offset .
      Parameters:
      input - Description of Parameter
      offset - Description of Parameter
      end - Description of Parameter
      Returns:
      the offset of the array following the XML data (invalid input: '<'= end)
      Throws:
      XMLParseException - Description of Exception
    • parseCharArray

      public int parseCharArray(char[] input, int offset, int end, int startingLineNr) throws XMLParseException
      Parses an XML definition starting at offset .
      Parameters:
      input - Description of Parameter
      offset - Description of Parameter
      end - Description of Parameter
      startingLineNr - Description of Parameter
      Returns:
      the offset of the array following the XML data (invalid input: '<'= end)
      Throws:
      XMLParseException - Description of Exception
    • removeChild

      public void removeChild(XMLElement child)
      Removes a child object. If the object is not a child, nothing happens.
      Parameters:
      child - Description of Parameter
    • removeChild

      public void removeChild(String key)
      Removes an attribute.
      Parameters:
      key - Description of Parameter
    • toString

      public String toString()
      Writes the XML element to a string.
      Overrides:
      toString in class Object
      Returns:
      Description of the Returned Value
    • write

      public void write(Writer writer)
      Writes the XML element to a writer.
      Parameters:
      writer - Description of Parameter
    • write

      public void write(Writer writer, int indent)
      Writes the XML element to a writer.
      Parameters:
      writer - Description of Parameter
      indent - Description of Parameter
    • scanChildren

      protected void scanChildren(char[] input, int contentOffset, int contentSize, int contentLineNr) throws XMLParseException
      !!! Searches the content for child objects. If such objects exist, the content is reduced to null.
      Parameters:
      input - Description of Parameter
      contentOffset - Description of Parameter
      contentSize - Description of Parameter
      contentLineNr - Description of Parameter
      Throws:
      XMLParseException - Description of Exception
      See Also:
      • parseCharArray(char[], int, int, int[])
    • createAnotherElement

      protected XMLElement createAnotherElement()
      Creates a new XML element.
      Returns:
      Description of the Returned Value
    • skipBogusTag

      protected int skipBogusTag(char[] input, int offset, int end, int[] lineNr)
      Skips a tag that don't contain any useful data: <?...?>, <!...> and comments.
      Parameters:
      input - Description of Parameter
      offset - Description of Parameter
      end - Description of Parameter
      lineNr - Description of Parameter
      Returns:
      the position after the tag
    • decodeString

      protected String decodeString(String s, int lineNr)
      Converts &...; sequences to "normal" chars.
      Parameters:
      s - Description of Parameter
      lineNr - Description of Parameter
      Returns:
      Description of the Returned Value
    • writeEncoded

      protected void writeEncoded(PrintWriter out, String str)
      Writes a string encoded to a writer.
      Parameters:
      out - Description of Parameter
      str - Description of Parameter