<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
XMLElement
</TITLE>

<META NAME="keywords" CONTENT="processing.xml.XMLElement class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="XMLElement";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/xml/XMLEntityResolver.html" title="class in processing.xml"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?processing/xml/XMLElement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XMLElement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
processing.xml</FONT>
<BR>
Class XMLElement</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>processing.xml.XMLElement</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>XMLElement</B><DT>extends java.lang.Object<DT>implements java.io.Serializable</DL>
</PRE>

<P>
XMLElement is an XML element. This is the base class used for the 
 Processing XML library, representing a single node of an XML tree.
 
 This code is based on a modified version of NanoXML by Marc De Scheemaecker.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../serialized-form.html#processing.xml.XMLElement">Serialized Form</A></DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#NO_LINE">NO_LINE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No line number defined.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#XMLElement()">XMLElement</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an empty element to be used for #PCDATA content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#XMLElement(processing.core.PApplet, java.lang.String)">XMLElement</A></B>(<A HREF="../../processing/core/PApplet.html" title="class in processing.core">PApplet</A>&nbsp;parent,
           java.lang.String&nbsp;filename)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin parsing XML data passed in from a PApplet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#XMLElement(java.io.Reader)">XMLElement</A></B>(java.io.Reader&nbsp;r)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#XMLElement(java.lang.String)">XMLElement</A></B>(java.lang.String&nbsp;xml)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#XMLElement(java.lang.String, java.lang.String, java.lang.String, int)">XMLElement</A></B>(java.lang.String&nbsp;fullName,
           java.lang.String&nbsp;namespace,
           java.lang.String&nbsp;systemID,
           int&nbsp;lineNr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an empty element.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#addChild(processing.xml.XMLElement)">addChild</A></B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a child element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#createElement(java.lang.String, java.lang.String)">createElement</A></B>(java.lang.String&nbsp;fullName,
              java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an empty element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#createElement(java.lang.String, java.lang.String, java.lang.String, int)">createElement</A></B>(java.lang.String&nbsp;fullName,
              java.lang.String&nbsp;namespace,
              java.lang.String&nbsp;systemID,
              int&nbsp;lineNr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an empty element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#createPCDataElement()">createPCDataElement</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an element to be used for #PCDATA content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Enumeration&lt;java.lang.String&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#enumerateAttributeNames()">enumerateAttributeNames</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an enumeration of all attribute names.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Enumeration&lt;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#enumerateChildren()">enumerateChildren</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an enumeration of all child elements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;rawElement)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the element equals another element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#equalsXMLElement(processing.xml.XMLElement)">equalsXMLElement</A></B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;rawElement)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the element equals another element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttribute(java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttribute(java.lang.String, java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;name,
             java.lang.String&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttribute(java.lang.String, java.lang.String, java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;name,
             java.lang.String&nbsp;namespace,
             java.lang.String&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributeCount()">getAttributeCount</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of attributes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributeNamespace(java.lang.String)">getAttributeNamespace</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the namespace of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Properties</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributes()">getAttributes</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all attributes as a Properties object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Properties</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributesInNamespace(java.lang.String)">getAttributesInNamespace</A></B>(java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all attributes in a specific namespace as a Properties object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributeType(java.lang.String)">getAttributeType</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getAttributeType(java.lang.String, java.lang.String)">getAttributeType</A></B>(java.lang.String&nbsp;name,
                 java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChild(int)">getChild</A></B>(int&nbsp;which)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quick accessor for an element at a particular index.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChild(java.lang.String)">getChild</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a child by its name or path.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChildAtIndex(int)">getChildAtIndex</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child at a specific index.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChildCount()">getChildCount</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of children.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChildren()">getChildren</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing all the child elements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getChildren(java.lang.String)">getChildren</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get any children that match this name or path.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getContent()">getContent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the #PCDATA content of the element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getDoubleAttribute(java.lang.String)">getDoubleAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getDoubleAttribute(java.lang.String, double)">getDoubleAttribute</A></B>(java.lang.String&nbsp;name,
                   double&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getDoubleAttribute(java.lang.String, java.lang.String, double)">getDoubleAttribute</A></B>(java.lang.String&nbsp;name,
                   java.lang.String&nbsp;namespace,
                   double&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getFloatAttribute(java.lang.String)">getFloatAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getFloatAttribute(java.lang.String, float)">getFloatAttribute</A></B>(java.lang.String&nbsp;name,
                  float&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getFloatAttribute(java.lang.String, java.lang.String, float)">getFloatAttribute</A></B>(java.lang.String&nbsp;name,
                  java.lang.String&nbsp;namespace,
                  float&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getIntAttribute(java.lang.String)">getIntAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getIntAttribute(java.lang.String, int)">getIntAttribute</A></B>(java.lang.String&nbsp;name,
                int&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getIntAttribute(java.lang.String, java.lang.String, int)">getIntAttribute</A></B>(java.lang.String&nbsp;name,
                java.lang.String&nbsp;namespace,
                int&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getLineNr()">getLineNr</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the line number in the data where the element started.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getLocalName()">getLocalName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name of the element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getName()">getName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the full name (i.e.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getNamespace()">getNamespace</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the namespace of the element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getParent()">getParent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parent element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getStringAttribute(java.lang.String)">getStringAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getStringAttribute(java.lang.String, java.lang.String)">getStringAttribute</A></B>(java.lang.String&nbsp;name,
                   java.lang.String&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getStringAttribute(java.lang.String, java.lang.String, java.lang.String)">getStringAttribute</A></B>(java.lang.String&nbsp;name,
                   java.lang.String&nbsp;namespace,
                   java.lang.String&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#getSystemID()">getSystemID</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the system ID of the data where the element started.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#hasAttribute(java.lang.String)">hasAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether an attribute exists.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#hasAttribute(java.lang.String, java.lang.String)">hasAttribute</A></B>(java.lang.String&nbsp;name,
             java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether an attribute exists.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#hasChildren()">hasChildren</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the element has children.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#insertChild(processing.xml.XMLElement, int)">insertChild</A></B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child,
            int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a child element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#isLeaf()">isLeaf</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the element is a leaf element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#listChildren()">listChildren</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Put the names of all children into an array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#removeAttribute(java.lang.String)">removeAttribute</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#removeAttribute(java.lang.String, java.lang.String)">removeAttribute</A></B>(java.lang.String&nbsp;name,
                java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#removeChild(processing.xml.XMLElement)">removeChild</A></B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a child element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#removeChildAtIndex(int)">removeChildAtIndex</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the child located at a certain index.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#setAttribute(java.lang.String, java.lang.String)">setAttribute</A></B>(java.lang.String&nbsp;name,
             java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#setAttribute(java.lang.String, java.lang.String, java.lang.String)">setAttribute</A></B>(java.lang.String&nbsp;fullName,
             java.lang.String&nbsp;namespace,
             java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#setContent(java.lang.String)">setContent</A></B>(java.lang.String&nbsp;content)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the #PCDATA content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#setName(java.lang.String)">setName</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the full name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#setName(java.lang.String, java.lang.String)">setName</A></B>(java.lang.String&nbsp;fullName,
        java.lang.String&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/XMLElement.html#toString(boolean)">toString</A></B>(boolean&nbsp;pretty)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="NO_LINE"><!-- --></A><H3>
NO_LINE</H3>
<PRE>
public static final int <B>NO_LINE</B></PRE>
<DL>
<DD>No line number defined.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#processing.xml.XMLElement.NO_LINE">Constant Field Values</A></DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="XMLElement()"><!-- --></A><H3>
XMLElement</H3>
<PRE>
public <B>XMLElement</B>()</PRE>
<DL>
<DD>Creates an empty element to be used for #PCDATA content.
<P>
</DL>
<HR>

<A NAME="XMLElement(java.lang.String, java.lang.String, java.lang.String, int)"><!-- --></A><H3>
XMLElement</H3>
<PRE>
public <B>XMLElement</B>(java.lang.String&nbsp;fullName,
                  java.lang.String&nbsp;namespace,
                  java.lang.String&nbsp;systemID,
                  int&nbsp;lineNr)</PRE>
<DL>
<DD>Creates an empty element.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>fullName</CODE> - the full name of the element<DD><CODE>namespace</CODE> - the namespace URI.<DD><CODE>systemID</CODE> - the system ID of the XML data where the element starts.<DD><CODE>lineNr</CODE> - the line in the XML data where the element starts.</DL>
</DL>
<HR>

<A NAME="XMLElement(processing.core.PApplet, java.lang.String)"><!-- --></A><H3>
XMLElement</H3>
<PRE>
public <B>XMLElement</B>(<A HREF="../../processing/core/PApplet.html" title="class in processing.core">PApplet</A>&nbsp;parent,
                  java.lang.String&nbsp;filename)</PRE>
<DL>
<DD>Begin parsing XML data passed in from a PApplet. This code
 wraps exception handling, for more advanced exception handling,
 use the constructor that takes a Reader or InputStream.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>filename</CODE> - <DD><CODE>parent</CODE> - </DL>
</DL>
<HR>

<A NAME="XMLElement(java.io.Reader)"><!-- --></A><H3>
XMLElement</H3>
<PRE>
public <B>XMLElement</B>(java.io.Reader&nbsp;r)</PRE>
<DL>
</DL>
<HR>

<A NAME="XMLElement(java.lang.String)"><!-- --></A><H3>
XMLElement</H3>
<PRE>
public <B>XMLElement</B>(java.lang.String&nbsp;xml)</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="createPCDataElement()"><!-- --></A><H3>
createPCDataElement</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>createPCDataElement</B>()</PRE>
<DL>
<DD>Creates an element to be used for #PCDATA content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="createElement(java.lang.String, java.lang.String)"><!-- --></A><H3>
createElement</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>createElement</B>(java.lang.String&nbsp;fullName,
                                java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Creates an empty element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>fullName</CODE> - the full name of the element<DD><CODE>namespace</CODE> - the namespace URI.</DL>
</DD>
</DL>
<HR>

<A NAME="createElement(java.lang.String, java.lang.String, java.lang.String, int)"><!-- --></A><H3>
createElement</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>createElement</B>(java.lang.String&nbsp;fullName,
                                java.lang.String&nbsp;namespace,
                                java.lang.String&nbsp;systemID,
                                int&nbsp;lineNr)</PRE>
<DL>
<DD>Creates an empty element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>fullName</CODE> - the full name of the element<DD><CODE>namespace</CODE> - the namespace URI.<DD><CODE>systemID</CODE> - the system ID of the XML data where the element starts.<DD><CODE>lineNr</CODE> - the line in the XML data where the element starts.</DL>
</DD>
</DL>
<HR>

<A NAME="getParent()"><!-- --></A><H3>
getParent</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>getParent</B>()</PRE>
<DL>
<DD>Returns the parent element. This method returns null for the root
 element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getName()"><!-- --></A><H3>
getName</H3>
<PRE>
public java.lang.String <B>getName</B>()</PRE>
<DL>
<DD>Returns the full name (i.e. the name including an eventual namespace
 prefix) of the element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the name, or null if the element only contains #PCDATA.</DL>
</DD>
</DL>
<HR>

<A NAME="getLocalName()"><!-- --></A><H3>
getLocalName</H3>
<PRE>
public java.lang.String <B>getLocalName</B>()</PRE>
<DL>
<DD>Returns the name of the element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the name, or null if the element only contains #PCDATA.</DL>
</DD>
</DL>
<HR>

<A NAME="getNamespace()"><!-- --></A><H3>
getNamespace</H3>
<PRE>
public java.lang.String <B>getNamespace</B>()</PRE>
<DL>
<DD>Returns the namespace of the element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the namespace, or null if no namespace is associated with the
         element.</DL>
</DD>
</DL>
<HR>

<A NAME="setName(java.lang.String)"><!-- --></A><H3>
setName</H3>
<PRE>
public void <B>setName</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Sets the full name. This method also sets the short name and clears the
 namespace URI.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name.</DL>
</DD>
</DL>
<HR>

<A NAME="setName(java.lang.String, java.lang.String)"><!-- --></A><H3>
setName</H3>
<PRE>
public void <B>setName</B>(java.lang.String&nbsp;fullName,
                    java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Sets the name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>fullName</CODE> - the non-null full name.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.</DL>
</DD>
</DL>
<HR>

<A NAME="addChild(processing.xml.XMLElement)"><!-- --></A><H3>
addChild</H3>
<PRE>
public void <B>addChild</B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child)</PRE>
<DL>
<DD>Adds a child element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>child</CODE> - the non-null child to add.</DL>
</DD>
</DL>
<HR>

<A NAME="insertChild(processing.xml.XMLElement, int)"><!-- --></A><H3>
insertChild</H3>
<PRE>
public void <B>insertChild</B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child,
                        int&nbsp;index)</PRE>
<DL>
<DD>Inserts a child element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>child</CODE> - the non-null child to add.<DD><CODE>index</CODE> - where to put the child.</DL>
</DD>
</DL>
<HR>

<A NAME="removeChild(processing.xml.XMLElement)"><!-- --></A><H3>
removeChild</H3>
<PRE>
public void <B>removeChild</B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;child)</PRE>
<DL>
<DD>Removes a child element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>child</CODE> - the non-null child to remove.</DL>
</DD>
</DL>
<HR>

<A NAME="removeChildAtIndex(int)"><!-- --></A><H3>
removeChildAtIndex</H3>
<PRE>
public void <B>removeChildAtIndex</B>(int&nbsp;index)</PRE>
<DL>
<DD>Removes the child located at a certain index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the child, where the first child has index 0.</DL>
</DD>
</DL>
<HR>

<A NAME="enumerateChildren()"><!-- --></A><H3>
enumerateChildren</H3>
<PRE>
public java.util.Enumeration&lt;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&gt; <B>enumerateChildren</B>()</PRE>
<DL>
<DD>Returns an enumeration of all child elements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the non-null enumeration</DL>
</DD>
</DL>
<HR>

<A NAME="isLeaf()"><!-- --></A><H3>
isLeaf</H3>
<PRE>
public boolean <B>isLeaf</B>()</PRE>
<DL>
<DD>Returns whether the element is a leaf element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the element has no children.</DL>
</DD>
</DL>
<HR>

<A NAME="hasChildren()"><!-- --></A><H3>
hasChildren</H3>
<PRE>
public boolean <B>hasChildren</B>()</PRE>
<DL>
<DD>Returns whether the element has children.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the element has children.</DL>
</DD>
</DL>
<HR>

<A NAME="getChildCount()"><!-- --></A><H3>
getChildCount</H3>
<PRE>
public int <B>getChildCount</B>()</PRE>
<DL>
<DD>Returns the number of children.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the count.</DL>
</DD>
</DL>
<HR>

<A NAME="listChildren()"><!-- --></A><H3>
listChildren</H3>
<PRE>
public java.lang.String[] <B>listChildren</B>()</PRE>
<DL>
<DD>Put the names of all children into an array. Same as looping through 
 each child and calling getName() on each XMLElement.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getChildren()"><!-- --></A><H3>
getChildren</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>[] <B>getChildren</B>()</PRE>
<DL>
<DD>Returns an array containing all the child elements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getChild(int)"><!-- --></A><H3>
getChild</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>getChild</B>(int&nbsp;which)</PRE>
<DL>
<DD>Quick accessor for an element at a particular index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getChild(java.lang.String)"><!-- --></A><H3>
getChild</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>getChild</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Get a child by its name or path.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - element name or path/to/element
<DT><B>Returns:</B><DD>the element</DL>
</DD>
</DL>
<HR>

<A NAME="getChildAtIndex(int)"><!-- --></A><H3>
getChildAtIndex</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A> <B>getChildAtIndex</B>(int&nbsp;index)
                           throws java.lang.ArrayIndexOutOfBoundsException</PRE>
<DL>
<DD>Returns the child at a specific index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the child
<DT><B>Returns:</B><DD>the non-null child
<DT><B>Throws:</B>
<DD><CODE>java.lang.ArrayIndexOutOfBoundsException</CODE> - if the index is out of bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="getChildren(java.lang.String)"><!-- --></A><H3>
getChildren</H3>
<PRE>
public <A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>[] <B>getChildren</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Get any children that match this name or path. Similar to getChild(),
 but will grab multiple matches rather than only the first.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - element name or path/to/element
<DT><B>Returns:</B><DD>array of child elements that match</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeCount()"><!-- --></A><H3>
getAttributeCount</H3>
<PRE>
public int <B>getAttributeCount</B>()</PRE>
<DL>
<DD>Returns the number of attributes.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAttribute(java.lang.String)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public java.lang.String <B>getAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.
<DT><B>Returns:</B><DD>the value, or null if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public java.lang.String <B>getAttribute</B>(java.lang.String&nbsp;name,
                                     java.lang.String&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttribute(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public java.lang.String <B>getAttribute</B>(java.lang.String&nbsp;name,
                                     java.lang.String&nbsp;namespace,
                                     java.lang.String&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getStringAttribute(java.lang.String)"><!-- --></A><H3>
getStringAttribute</H3>
<PRE>
public java.lang.String <B>getStringAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStringAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
getStringAttribute</H3>
<PRE>
public java.lang.String <B>getStringAttribute</B>(java.lang.String&nbsp;name,
                                           java.lang.String&nbsp;defaultValue)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStringAttribute(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
getStringAttribute</H3>
<PRE>
public java.lang.String <B>getStringAttribute</B>(java.lang.String&nbsp;name,
                                           java.lang.String&nbsp;namespace,
                                           java.lang.String&nbsp;defaultValue)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIntAttribute(java.lang.String)"><!-- --></A><H3>
getIntAttribute</H3>
<PRE>
public int <B>getIntAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIntAttribute(java.lang.String, int)"><!-- --></A><H3>
getIntAttribute</H3>
<PRE>
public int <B>getIntAttribute</B>(java.lang.String&nbsp;name,
                           int&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getIntAttribute(java.lang.String, java.lang.String, int)"><!-- --></A><H3>
getIntAttribute</H3>
<PRE>
public int <B>getIntAttribute</B>(java.lang.String&nbsp;name,
                           java.lang.String&nbsp;namespace,
                           int&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getFloatAttribute(java.lang.String)"><!-- --></A><H3>
getFloatAttribute</H3>
<PRE>
public float <B>getFloatAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFloatAttribute(java.lang.String, float)"><!-- --></A><H3>
getFloatAttribute</H3>
<PRE>
public float <B>getFloatAttribute</B>(java.lang.String&nbsp;name,
                               float&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getFloatAttribute(java.lang.String, java.lang.String, float)"><!-- --></A><H3>
getFloatAttribute</H3>
<PRE>
public float <B>getFloatAttribute</B>(java.lang.String&nbsp;name,
                               java.lang.String&nbsp;namespace,
                               float&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getDoubleAttribute(java.lang.String)"><!-- --></A><H3>
getDoubleAttribute</H3>
<PRE>
public double <B>getDoubleAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDoubleAttribute(java.lang.String, double)"><!-- --></A><H3>
getDoubleAttribute</H3>
<PRE>
public double <B>getDoubleAttribute</B>(java.lang.String&nbsp;name,
                                 double&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getDoubleAttribute(java.lang.String, java.lang.String, double)"><!-- --></A><H3>
getDoubleAttribute</H3>
<PRE>
public double <B>getDoubleAttribute</B>(java.lang.String&nbsp;name,
                                 java.lang.String&nbsp;namespace,
                                 double&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.<DD><CODE>defaultValue</CODE> - the default value of the attribute.
<DT><B>Returns:</B><DD>the value, or defaultValue if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeType(java.lang.String)"><!-- --></A><H3>
getAttributeType</H3>
<PRE>
public java.lang.String <B>getAttributeType</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Returns the type of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.
<DT><B>Returns:</B><DD>the type, or null if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeNamespace(java.lang.String)"><!-- --></A><H3>
getAttributeNamespace</H3>
<PRE>
public java.lang.String <B>getAttributeNamespace</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Returns the namespace of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.
<DT><B>Returns:</B><DD>the namespace, or null if there is none associated.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeType(java.lang.String, java.lang.String)"><!-- --></A><H3>
getAttributeType</H3>
<PRE>
public java.lang.String <B>getAttributeType</B>(java.lang.String&nbsp;name,
                                         java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Returns the type of an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI, which may be null.
<DT><B>Returns:</B><DD>the type, or null if the attribute does not exist.</DL>
</DD>
</DL>
<HR>

<A NAME="setAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
public void <B>setAttribute</B>(java.lang.String&nbsp;name,
                         java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null full name of the attribute.<DD><CODE>value</CODE> - the non-null value of the attribute.</DL>
</DD>
</DL>
<HR>

<A NAME="setAttribute(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
public void <B>setAttribute</B>(java.lang.String&nbsp;fullName,
                         java.lang.String&nbsp;namespace,
                         java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>fullName</CODE> - the non-null full name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI of the attribute, which may be null.<DD><CODE>value</CODE> - the non-null value of the attribute.</DL>
</DD>
</DL>
<HR>

<A NAME="removeAttribute(java.lang.String)"><!-- --></A><H3>
removeAttribute</H3>
<PRE>
public void <B>removeAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Removes an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.</DL>
</DD>
</DL>
<HR>

<A NAME="removeAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
removeAttribute</H3>
<PRE>
public void <B>removeAttribute</B>(java.lang.String&nbsp;name,
                            java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Removes an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the non-null name of the attribute.<DD><CODE>namespace</CODE> - the namespace URI of the attribute, which may be null.</DL>
</DD>
</DL>
<HR>

<A NAME="enumerateAttributeNames()"><!-- --></A><H3>
enumerateAttributeNames</H3>
<PRE>
public java.util.Enumeration&lt;java.lang.String&gt; <B>enumerateAttributeNames</B>()</PRE>
<DL>
<DD>Returns an enumeration of all attribute names.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the non-null enumeration.</DL>
</DD>
</DL>
<HR>

<A NAME="hasAttribute(java.lang.String)"><!-- --></A><H3>
hasAttribute</H3>
<PRE>
public boolean <B>hasAttribute</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Returns whether an attribute exists.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the attribute exists.</DL>
</DD>
</DL>
<HR>

<A NAME="hasAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
hasAttribute</H3>
<PRE>
public boolean <B>hasAttribute</B>(java.lang.String&nbsp;name,
                            java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Returns whether an attribute exists.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the attribute exists.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributes()"><!-- --></A><H3>
getAttributes</H3>
<PRE>
public java.util.Properties <B>getAttributes</B>()</PRE>
<DL>
<DD>Returns all attributes as a Properties object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the non-null set.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributesInNamespace(java.lang.String)"><!-- --></A><H3>
getAttributesInNamespace</H3>
<PRE>
public java.util.Properties <B>getAttributesInNamespace</B>(java.lang.String&nbsp;namespace)</PRE>
<DL>
<DD>Returns all attributes in a specific namespace as a Properties object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - the namespace URI of the attributes, which may be null.
<DT><B>Returns:</B><DD>the non-null set.</DL>
</DD>
</DL>
<HR>

<A NAME="getSystemID()"><!-- --></A><H3>
getSystemID</H3>
<PRE>
public java.lang.String <B>getSystemID</B>()</PRE>
<DL>
<DD>Returns the system ID of the data where the element started.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the system ID, or null if unknown.<DT><B>See Also:</B><DD><A HREF="../../processing/xml/XMLElement.html#getLineNr()"><CODE>getLineNr()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getLineNr()"><!-- --></A><H3>
getLineNr</H3>
<PRE>
public int <B>getLineNr</B>()</PRE>
<DL>
<DD>Returns the line number in the data where the element started.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the line number, or NO_LINE if unknown.<DT><B>See Also:</B><DD><A HREF="../../processing/xml/XMLElement.html#NO_LINE"><CODE>NO_LINE</CODE></A>, 
<A HREF="../../processing/xml/XMLElement.html#getSystemID()"><CODE>getSystemID()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getContent()"><!-- --></A><H3>
getContent</H3>
<PRE>
public java.lang.String <B>getContent</B>()</PRE>
<DL>
<DD>Return the #PCDATA content of the element. If the element has a
 combination of #PCDATA content and child elements, the #PCDATA
 sections can be retrieved as unnamed child objects. In this case,
 this method returns null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the content.</DL>
</DD>
</DL>
<HR>

<A NAME="setContent(java.lang.String)"><!-- --></A><H3>
setContent</H3>
<PRE>
public void <B>setContent</B>(java.lang.String&nbsp;content)</PRE>
<DL>
<DD>Sets the #PCDATA content. It is an error to call this method with a
 non-null value if there are child objects.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>content</CODE> - the (possibly null) content.</DL>
</DD>
</DL>
<HR>

<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(java.lang.Object&nbsp;rawElement)</PRE>
<DL>
<DD>Returns true if the element equals another element.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rawElement</CODE> - the element to compare to</DL>
</DD>
</DL>
<HR>

<A NAME="equalsXMLElement(processing.xml.XMLElement)"><!-- --></A><H3>
equalsXMLElement</H3>
<PRE>
public boolean <B>equalsXMLElement</B>(<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml">XMLElement</A>&nbsp;rawElement)</PRE>
<DL>
<DD>Returns true if the element equals another element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rawElement</CODE> - the element to compare to</DL>
</DD>
</DL>
<HR>

<A NAME="toString(boolean)"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>(boolean&nbsp;pretty)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/xml/XMLEntityResolver.html" title="class in processing.xml"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?processing/xml/XMLElement.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XMLElement.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
