Package org.jvnet.lafplugin
Class XMLElement
java.lang.Object
org.jvnet.lafplugin.XMLElement
XMLElement is a representation of an XML object. The object is able to parse
XML code.
- Parsing XML Data
-
You can parse XML data using the following code:
XMLElement xml = new XMLElement();
FileReader reader = new FileReader("filename.xml");
xml.parseFromReader(reader);
- Retrieving Attributes
-
You can enumerate the attributes of an element using the method
enumerateAttributeNames. The attribute values can be retrieved using the methodgetStringAttribute. The following example shows how to list the attributes of an element:XMLElement element = ...;
Enumeration enum = element.getAttributeNames();
while (enum.hasMoreElements()) {
String key = (String) enum.nextElement();
String value = element.getStringAttribute(key);
System.out.println(key + " = " + value);
}
- Retrieving Child Elements
-
You can enumerate the children of an element using
enumerateChildren. The number of child elements can be retrieved usingcountChildren.
- Elements Containing Character Data
-
If an elements contains character data, like in the following example:
<title>The Title</title>getContent.
- Subclassing XMLElement
-
When subclassing XMLElement, you need to override the method
createAnotherElementwhich has to return a new copy of the receiver.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intMajor version of NanoXML.static final intMinor version of NanoXML. -
Constructor Summary
ConstructorsConstructorDescriptionCreates and initializes a new XML element.XMLElement(boolean skipLeadingWhitespace) Creates and initializes a new XML element.XMLElement(Hashtable entities) Creates and initializes a new XML element.XMLElement(Hashtable entities, boolean skipLeadingWhitespace) Creates and initializes a new XML element.XMLElement(Hashtable entities, boolean skipLeadingWhitespace, boolean ignoreCase) Creates and initializes a new XML element. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChild(XMLElement child) Adds a child element.voidaddProperty(String name, double value) Deprecated.voidaddProperty(String key, int value) Deprecated.UsesetIntAttributeinstead.voidaddProperty(String name, Object value) Deprecated.UsesetAttributeinstead.intReturns the number of child elements of the element.Enumerates the attribute names.Enumerates the child elements.Deprecated.UseenumerateAttributeNamesinstead.getAttribute(String name) Returns an attribute of the element.getAttribute(String name, Object defaultValue) Returns an attribute of the element.getAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiterals) Returns an attribute by looking up a key in a hashtable.booleangetBooleanAttribute(String name, String trueValue, String falseValue, boolean defaultValue) Returns an attribute of the element.Returns the child elements as a Vector.Returns the PCDATA content of the object.Deprecated.UsegetContentinstead.doublegetDoubleAttribute(String name) Returns an attribute of the element.doublegetDoubleAttribute(String name, double defaultValue) Returns an attribute of the element.doublegetDoubleAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiteralNumbers) Returns an attribute by looking up a key in a hashtable.intgetIntAttribute(String name) Returns an attribute of the element.intgetIntAttribute(String name, int defaultValue) Returns an attribute of the element.intgetIntAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiteralNumbers) Returns an attribute by looking up a key in a hashtable.intgetIntProperty(String name, Hashtable valueSet, String defaultKey) Deprecated.UsegetIntAttributeinstead.intReturns the line nr in the source data on which the element is found.getName()Returns the name of the element.getProperty(String name) Deprecated.UsegetStringAttributeinstead.doublegetProperty(String name, double defaultValue) Deprecated.UsegetDoubleAttributeinstead.intgetProperty(String name, int defaultValue) Deprecated.UsegetIntAttributeinstead.getProperty(String name, String defaultValue) Deprecated.UsegetStringAttributeinstead.booleangetProperty(String key, String trueValue, String falseValue, boolean defaultValue) Deprecated.UsegetBooleanAttributeinstead.getProperty(String name, Hashtable valueSet, String defaultKey) Deprecated.UsegetAttributeinstead.doublegetSpecialDoubleProperty(String name, Hashtable valueSet, String defaultKey) Deprecated.UsegetDoubleAttributeinstead.intgetSpecialIntProperty(String name, Hashtable valueSet, String defaultKey) Deprecated.UsegetIntAttributeinstead.getStringAttribute(String name) Returns an attribute of the element.getStringAttribute(String name, String defaultValue) Returns an attribute of the element.getStringAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiterals) Returns an attribute by looking up a key in a hashtable.getStringProperty(String name, Hashtable valueSet, String defaultKey) Deprecated.UsegetStringAttributeinstead.Deprecated.UsegetNameinstead.voidparseCharArray(char[] input, int offset, int end) Reads one XML element from a char array and parses it.voidparseCharArray(char[] input, int offset, int end, int startingLineNr) Reads one XML element from a char array and parses it.voidparseFromReader(Reader reader) Reads one XML element from a java.io.Reader and parses it.voidparseFromReader(Reader reader, int startingLineNr) Reads one XML element from a java.io.Reader and parses it.voidparseString(String string) Reads one XML element from a String and parses it.voidparseString(String string, int offset) Reads one XML element from a String and parses it.voidparseString(String string, int offset, int end) Reads one XML element from a String and parses it.voidparseString(String string, int offset, int end, int startingLineNr) Reads one XML element from a String and parses it.voidremoveAttribute(String name) Removes an attribute.voidremoveChild(String name) Deprecated.UseremoveAttributeinstead.voidremoveChild(XMLElement child) Removes a child element.voidremoveProperty(String name) Deprecated.UseremoveAttributeinstead.voidsetAttribute(String name, Object value) Adds or modifies an attribute.voidsetContent(String content) Changes the content string.voidsetDoubleAttribute(String name, double value) Adds or modifies an attribute.voidsetIntAttribute(String name, int value) Adds or modifies an attribute.voidChanges the name of the element.voidsetTagName(String name) Deprecated.UsesetNameinstead.toString()Writes the XML element to a string.voidWrites the XML element to a writer.
-
Field Details
-
NANOXML_MAJOR_VERSION
public static final int NANOXML_MAJOR_VERSIONMajor version of NanoXML. Classes with the same major and minor version are binary compatible. Classes with the same major version are source compatible. If the major version is different, you may need to modify the client source code.- See Also:
-
NANOXML_MINOR_VERSION
public static final int NANOXML_MINOR_VERSIONMinor version of NanoXML. Classes with the same major and minor version are binary compatible. Classes with the same major version are source compatible. If the major version is different, you may need to modify the client source code.- See Also:
-
-
Constructor Details
-
XMLElement
public XMLElement()Creates and initializes a new XML element. Calling the construction is equivalent to:new XMLElement(new Hashtable(), false, true)- Postconditions:
-
- countChildren() => 0
- enumerateChildren() => empty enumeration
- enumeratePropertyNames() => empty enumeration
- getChildren() => empty vector
- getContent() => ""
- getLineNr() => 0
- getName() => null
- See Also:
-
XMLElement
Creates and initializes a new XML element. Calling the construction is equivalent to:new XMLElement(entities, false, true)- Parameters:
entities- The entity conversion table.
- Preconditions:
-
entities != null
- Postconditions:
-
- countChildren() => 0
- enumerateChildren() => empty enumeration
- enumeratePropertyNames() => empty enumeration
- getChildren() => empty vector
- getContent() => ""
- getLineNr() => 0
- getName() => null
- See Also:
-
XMLElement
public XMLElement(boolean skipLeadingWhitespace) Creates and initializes a new XML element. Calling the construction is equivalent to:new XMLElement(new Hashtable(), skipLeadingWhitespace, true)- Parameters:
skipLeadingWhitespace-trueif leading and trailing whitespace in PCDATA content has to be removed.
- Postconditions:
-
- countChildren() => 0
- enumerateChildren() => empty enumeration
- enumeratePropertyNames() => empty enumeration
- getChildren() => empty vector
- getContent() => ""
- getLineNr() => 0
- getName() => null
- See Also:
-
XMLElement
Creates and initializes a new XML element. Calling the construction is equivalent to:new XMLElement(entities, skipLeadingWhitespace, true)- Parameters:
entities- The entity conversion table.skipLeadingWhitespace-trueif leading and trailing whitespace in PCDATA content has to be removed.
- Preconditions:
-
entities != null
- Postconditions:
-
- countChildren() => 0
- enumerateChildren() => empty enumeration
- enumeratePropertyNames() => empty enumeration
- getChildren() => empty vector
- getContent() => ""
- getLineNr() => 0
- getName() => null
- See Also:
-
XMLElement
Creates and initializes a new XML element.- Parameters:
entities- The entity conversion table.skipLeadingWhitespace-trueif leading and trailing whitespace in PCDATA content has to be removed.ignoreCase-trueif the case of element and attribute names have to be ignored.
- Preconditions:
-
entities != null
- Postconditions:
-
- countChildren() => 0
- enumerateChildren() => empty enumeration
- enumeratePropertyNames() => empty enumeration
- getChildren() => empty vector
- getContent() => ""
- getLineNr() => 0
- getName() => null
- See Also:
-
-
Method Details
-
addChild
Adds a child element.- Parameters:
child- The child element to add.
- Preconditions:
-
child != nullchild.getName() != nullchilddoes not have a parent element
- Postconditions:
-
- countChildren() => old.countChildren() + 1
- enumerateChildren() => old.enumerateChildren() + child
- getChildren() => old.enumerateChildren() + child
- See Also:
-
setAttribute
Adds or modifies an attribute.- Parameters:
name- The name of the attribute.value- The value of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifiervalue != null
- Postconditions:
-
- enumerateAttributeNames() => old.enumerateAttributeNames() + name
- getAttribute(name) => value
- See Also:
-
addProperty
Deprecated.UsesetAttributeinstead.Adds or modifies an attribute.- Parameters:
name- The name of the attribute.value- The value of the attribute.
-
setIntAttribute
Adds or modifies an attribute.- Parameters:
name- The name of the attribute.value- The value of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- Postconditions:
-
- enumerateAttributeNames() => old.enumerateAttributeNames() + name
- getIntAttribute(name) => value
- See Also:
-
addProperty
Deprecated.UsesetIntAttributeinstead.Adds or modifies an attribute.- Parameters:
value- The value of the attribute.name- The name of the attribute.
-
setDoubleAttribute
Adds or modifies an attribute.- Parameters:
name- The name of the attribute.value- The value of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- Postconditions:
-
- enumerateAttributeNames() => old.enumerateAttributeNames() + name
- getDoubleAttribute(name) => value
- See Also:
-
addProperty
Deprecated.UsesetDoubleAttributeinstead.Adds or modifies an attribute.- Parameters:
name- The name of the attribute.value- The value of the attribute.
-
countChildren
public int countChildren()Returns the number of child elements of the element.- Postconditions:
-
result >= 0
- See Also:
-
enumerateAttributeNames
Enumerates the attribute names.- Postconditions:
-
result != null
- See Also:
-
enumeratePropertyNames
Deprecated.UseenumerateAttributeNamesinstead.Enumerates the attribute names. -
enumerateChildren
Enumerates the child elements.- Postconditions:
-
result != null
- See Also:
-
getChildren
Returns the child elements as a Vector. It is safe to modify this Vector.- Postconditions:
-
result != null
- See Also:
-
getContents
Deprecated.UsegetContentinstead.Returns the PCDATA content of the object. If there is no such content,nullis returned. -
getContent
Returns the PCDATA content of the object. If there is no such content,nullis returned.- See Also:
-
getLineNr
public int getLineNr()Returns the line nr in the source data on which the element is found. This method returns0there is no associated source data.- Postconditions:
-
result >= 0
-
getAttribute
Returns an attribute of the element. If the attribute doesn't exist,nullis returned.- Parameters:
name- The name of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getAttribute
Returns an attribute of the element. If the attribute doesn't exist,defaultValueis returned.- Parameters:
name- The name of the attribute.defaultValue- Key to use if the attribute is missing.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getAttribute
public Object getAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiterals) Returns an attribute by looking up a key in a hashtable. If the attribute doesn't exist, the value corresponding to defaultKey is returned.As an example, if valueSet contains the mapping
"one" => "1"and the element contains the attributeattr="one", thengetAttribute("attr", mapping, defaultKey, false)returns"1".- Parameters:
name- The name of the attribute.valueSet- Hashtable mapping keys to values.defaultKey- Key to use if the attribute is missing.allowLiterals-trueif literals are valid.
- Preconditions:
-
name != nullnameis a valid XML identifiervalueSet!= null- the keys of
valueSetare strings
- See Also:
-
getStringAttribute
Returns an attribute of the element. If the attribute doesn't exist,nullis returned.- Parameters:
name- The name of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getStringAttribute
Returns an attribute of the element. If the attribute doesn't exist,defaultValueis returned.- Parameters:
name- The name of the attribute.defaultValue- Key to use if the attribute is missing.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getStringAttribute
public String getStringAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiterals) Returns an attribute by looking up a key in a hashtable. If the attribute doesn't exist, the value corresponding to defaultKey is returned.As an example, if valueSet contains the mapping
"one" => "1"and the element contains the attributeattr="one", thengetAttribute("attr", mapping, defaultKey, false)returns"1".- Parameters:
name- The name of the attribute.valueSet- Hashtable mapping keys to values.defaultKey- Key to use if the attribute is missing.allowLiterals-trueif literals are valid.
- Preconditions:
-
name != nullnameis a valid XML identifiervalueSet!= null- the keys of
valueSetare strings - the values of
valueSetare strings
- See Also:
-
getIntAttribute
Returns an attribute of the element. If the attribute doesn't exist,0is returned.- Parameters:
name- The name of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getIntAttribute
Returns an attribute of the element. If the attribute doesn't exist,defaultValueis returned.- Parameters:
name- The name of the attribute.defaultValue- Key to use if the attribute is missing.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getIntAttribute
public int getIntAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiteralNumbers) Returns an attribute by looking up a key in a hashtable. If the attribute doesn't exist, the value corresponding to defaultKey is returned.As an example, if valueSet contains the mapping
"one" => 1and the element contains the attributeattr="one", thengetIntAttribute("attr", mapping, defaultKey, false)returns1.- Parameters:
name- The name of the attribute.valueSet- Hashtable mapping keys to values.defaultKey- Key to use if the attribute is missing.allowLiteralNumbers-trueif literal numbers are valid.
- Preconditions:
-
name != nullnameis a valid XML identifiervalueSet!= null- the keys of
valueSetare strings - the values of
valueSetare Integer objects defaultKeyis eithernull, a key invalueSetor an integer.
- See Also:
-
getDoubleAttribute
Returns an attribute of the element. If the attribute doesn't exist,0.0is returned.- Parameters:
name- The name of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getDoubleAttribute
Returns an attribute of the element. If the attribute doesn't exist,defaultValueis returned.- Parameters:
name- The name of the attribute.defaultValue- Key to use if the attribute is missing.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
getDoubleAttribute
public double getDoubleAttribute(String name, Hashtable valueSet, String defaultKey, boolean allowLiteralNumbers) Returns an attribute by looking up a key in a hashtable. If the attribute doesn't exist, the value corresponding to defaultKey is returned.As an example, if valueSet contains the mapping
"one" => 1.0and the element contains the attributeattr="one", thengetDoubleAttribute("attr", mapping, defaultKey, false)returns1.0.- Parameters:
name- The name of the attribute.valueSet- Hashtable mapping keys to values.defaultKey- Key to use if the attribute is missing.allowLiteralNumbers-trueif literal numbers are valid.
- Preconditions:
-
name != nullnameis a valid XML identifiervalueSet != null- the keys of
valueSetare strings - the values of
valueSetare Double objects defaultKeyis eithernull, a key invalueSetor a double.
- See Also:
-
getBooleanAttribute
public boolean getBooleanAttribute(String name, String trueValue, String falseValue, boolean defaultValue) Returns an attribute of the element. If the attribute doesn't exist,defaultValueis returned. If the value of the attribute is equal totrueValue,trueis returned. If the value of the attribute is equal tofalseValue,falseis returned. If the value doesn't matchtrueValueorfalseValue, an exception is thrown.- Parameters:
name- The name of the attribute.trueValue- The value associated withtrue.falseValue- The value associated withtrue.defaultValue- Value to use if the attribute is missing.
- Preconditions:
-
name != nullnameis a valid XML identifiertrueValueandfalseValueare different strings.
- See Also:
-
getIntProperty
Deprecated.UsegetIntAttributeinstead.Returns an attribute by looking up a key in a hashtable. -
getProperty
Deprecated.UsegetStringAttributeinstead.Returns an attribute. -
getProperty
Deprecated.UsegetStringAttributeinstead.Returns an attribute. -
getProperty
Deprecated.UsegetIntAttributeinstead.Returns an attribute. -
getProperty
Deprecated.UsegetDoubleAttributeinstead.Returns an attribute. -
getProperty
Deprecated.UsegetBooleanAttributeinstead.Returns an attribute. -
getProperty
Deprecated.UsegetAttributeinstead.Returns an attribute by looking up a key in a hashtable. -
getStringProperty
Deprecated.UsegetStringAttributeinstead.Returns an attribute by looking up a key in a hashtable. -
getSpecialIntProperty
Deprecated.UsegetIntAttributeinstead.Returns an attribute by looking up a key in a hashtable. -
getSpecialDoubleProperty
Deprecated.UsegetDoubleAttributeinstead.Returns an attribute by looking up a key in a hashtable. -
getName
Returns the name of the element.- See Also:
-
getTagName
Deprecated.UsegetNameinstead.Returns the name of the element. -
parseFromReader
Reads one XML element from a java.io.Reader and parses it.- Parameters:
reader- The reader from which to retrieve the XML data.
- Preconditions:
-
reader != nullreaderis not closed
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
- the reader points to the first character following the last '>' character of the XML element
-
parseFromReader
public void parseFromReader(Reader reader, int startingLineNr) throws IOException, XMLParseException Reads one XML element from a java.io.Reader and parses it.- Parameters:
reader- The reader from which to retrieve the XML data.startingLineNr- The line number of the first line in the data.
- Preconditions:
-
reader != nullreaderis not closed
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
- the reader points to the first character following the last '>' character of the XML element
-
parseString
Reads one XML element from a String and parses it.- Parameters:
reader- The reader from which to retrieve the XML data.
- Preconditions:
-
string != nullstring.length() > 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
-
parseString
Reads one XML element from a String and parses it.- Parameters:
offset- The first character instringto scan.
- Preconditions:
-
string != nulloffset < string.length()offset >= 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
reader- The reader from which to retrieve the XML data.
-
parseString
Reads one XML element from a String and parses it.- Parameters:
offset- The first character instringto scan.end- The character where to stop scanning. This character is not scanned.
- Preconditions:
-
string != nullend <= string.length()offset < endoffset >= 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
reader- The reader from which to retrieve the XML data.
-
parseString
public void parseString(String string, int offset, int end, int startingLineNr) throws XMLParseException Reads one XML element from a String and parses it.- Parameters:
offset- The first character instringto scan.end- The character where to stop scanning. This character is not scanned.startingLineNr- The line number of the first line in the data.
- Preconditions:
-
string != nullend <= string.length()offset < endoffset >= 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
reader- The reader from which to retrieve the XML data.
-
parseCharArray
Reads one XML element from a char array and parses it.- Parameters:
offset- The first character instringto scan.end- The character where to stop scanning. This character is not scanned.
- Preconditions:
-
input != nullend <= input.lengthoffset < endoffset >= 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
reader- The reader from which to retrieve the XML data.
-
parseCharArray
public void parseCharArray(char[] input, int offset, int end, int startingLineNr) throws XMLParseException Reads one XML element from a char array and parses it.- Parameters:
offset- The first character instringto scan.end- The character where to stop scanning. This character is not scanned.startingLineNr- The line number of the first line in the data.
- Preconditions:
-
input != nullend <= input.lengthoffset < endoffset >= 0
- Postconditions:
-
- the state of the receiver is updated to reflect the XML element parsed from the reader
reader- The reader from which to retrieve the XML data.
-
removeChild
Removes a child element.- Parameters:
child- The child element to remove.
- Preconditions:
-
child != nullchildis a child element of the receiver
- Postconditions:
-
- countChildren() => old.countChildren() - 1
- enumerateChildren() => old.enumerateChildren() - child
- getChildren() => old.enumerateChildren() - child
- See Also:
-
removeAttribute
Removes an attribute.- Parameters:
name- The name of the attribute.
- Preconditions:
-
name != nullnameis a valid XML identifier
- Postconditions:
-
- enumerateAttributeNames() => old.enumerateAttributeNames() - name
- getAttribute(name) =>
null
- See Also:
-
removeProperty
Deprecated.UseremoveAttributeinstead.Removes an attribute.- Parameters:
name- The name of the attribute.
-
removeChild
Deprecated.UseremoveAttributeinstead.Removes an attribute.- Parameters:
name- The name of the attribute.
-
setContent
Changes the content string.- Parameters:
content- The new content string.
-
setTagName
Deprecated.UsesetNameinstead.Changes the name of the element.- Parameters:
name- The new name.
-
setName
Changes the name of the element.- Parameters:
name- The new name.
- Preconditions:
-
name != nullnameis a valid XML identifier
- See Also:
-
toString
Writes the XML element to a string. -
write
Writes the XML element to a writer.- Parameters:
writer- The writer to write the XML data to.
- Preconditions:
-
writer != nullwriteris not closed
- Throws:
IOException- If the data could not be written to the writer.- See Also:
-
setDoubleAttributeinstead.