JDOM


JDOM is an open source, pure Java API for reading, writing, and manipulating XML documents. This section provides complete signatures for the documented, public parts of JDOM, with the single exception of the org.jdom.adapters package, which is really intended only for internal use in JDOM.

org.jdom

The org.jdom package contains the core classes that JDOM uses to model the XML tree, one class per node type, as well as some generically useful classes such as Verifier and JDOMException .

Caution

JDOM is not finished at the time of this writing. This appendix is based on an early development release of JDOM beta 9, current as of May 17, 2002. I expect some of the details here to change before JDOM is released. (In fact, I'm actively lobbying for a few changes.)


Attribute

The Attribute class represents an attribute node. Each attribute has a local name , a namespace (which may be null), a string value, a type, and a parent Element . Attribute types are represented by the named int constants in this class.

 package org.jdom;  public class  Attribute  implements Serializable, Cloneable {   public static final int  UNDECLARED_ATTRIBUTE;  public static final int  CDATA_ATTRIBUTE;  public static final int  ID_ATTRIBUTE;  public static final int  IDREF_ATTRIBUTE;  public static final int  IDREFS_ATTRIBUTE;  public static final int  ENTITY_ATTRIBUTE;  public static final int  ENTITIES_ATTRIBUTE;  public static final int  NMTOKEN_ATTRIBUTE;  public static final int  NMTOKENS_ATTRIBUTE;  public static final int  NOTATION_ATTRIBUTE;  public static final int  ENUMERATED_ATTRIBUTE;  protected String  name;  protected Namespace  namespace;  protected String  value;  protected int  type;  protected Object  parent;  protected  Attribute  ();   public  Attribute  (    String  name,  String  value,  Namespace  namespace  )    throws IllegalNameException, IllegalDataException;   public  Attribute  (    String  name,  String  value,  int  type,  Namespace  namespace  )    throws IllegalNameException, IllegalDataException;   public  Attribute  (String  name,  String  value  )    throws IllegalNameException, IllegalDataException;   public  Attribute  (String  name,  String  value,  int  type  )    throws IllegalNameException, IllegalDataException;   public    Element  getParent  ();   protected Attribute  setParent  (Element  parent  );   public    Document  getDocument  ();   public    Attribute  detach  ();   public    String  getName  ();   public    Attribute  setName  (String  name  )    throws IllegalNameException;   public    String  getQualifiedName  ();   public    String  getNamespacePrefix  ();   public    String  getNamespaceURI  ();   public    Namespace  getNamespace  ();   public    Attribute  setNamespace  (Namespace  namespace  )    throws IllegalNameException;   public    String  getValue  ();   public    Attribute  setValue  (String  value  );   public    int  getAttributeType  ();   public    Attribute  setAttributeType  (int  type  )    throws IllegalDataException;   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();   // Convenience methods for converting the value to various   // primitive types   public int  getIntValue  () throws DataConversionException;   public long  getLongValue  () throws DataConversionException;   public float  getFloatValue  () throws DataConversionException;   public double  getDoubleValue  () throws DataConversionException;   public boolean  getBooleanValue  ()    throws DataConversionException;  } 
CDATA

The CDATA class is a subclass of Text (from which it inherits most of its functionality) that represents a CDATA section. The only real difference between this class and Text is that an XMLOutputter will use a CDATA section to write out the contents of a CDATA object rather than escaping characters such as the less-than sign with entity and character references.

 package org.jdom;  public class  CDATA  extends Text {   protected  CDATA  ();   public  CDATA  (String  s  );   public Text  setText  (String  s  ) throws IllegalDataException;   public void  append  (String  s  ) throws IllegalDataException;   public String  toString  ();  } 
Comment

The Comment class represents a comment node. Each Comment object contains the text of the comment, a parent Element (which will be null if this comment is in the prolog or epilog), and an owner Document .

 package org.jdom;  public class  Comment  implements Serializable, Cloneable {   protected String  text;  protected Object  parent;  protected  Comment  ();   public  Comment  (String  text  ) throws IllegalDataException;   public    Element  getParent  ();   protected Comment  setParent  (Element  parent  );   public    Comment  detach  ();   public    Document  getDocument  ();   protected Comment  setDocument  (Document  document  );   public    String  getText  ();   public    Comment  setText  (String  text  )    throws IllegalDataException;   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();  } 
DocType

The DocType class represents a document type declaration. Each DocType object contains the declared root element name, the public ID and the system ID (both of which may be null), the owner document, and a String containing the internal DTD subset.

 package org.jdom;  public class  DocType  implements Serializable, Cloneable {   protected String  elementName;  protected String  publicID;  protected String  systemID;  protected Document  document;  protected String  internalSubset;  protected  DocType  ();   public  DocType  (String  elementName,  String  publicID,  String  systemID  )    throws IllegalNameException, IllegalDataException;   public  DocType  (String  elementName,  String  systemID  )    throws IllegalNameException;   public  DocType  (String  elementName  )    throws IllegalNameException;   public    String  getElementName  ();   public    DocType  setElementName  (String  elementName  )    throws IllegalNameException;   public    String  getPublicID  ();   public    DocType  setPublicID  (String  publicID  )    throws IllegalDataException;;   public    String  getSystemID  ();   public    DocType  setSystemID  (String  url  );   public    Document  getDocument  ();   protected DocType  setDocument  (Document  document  );   public    void  setInternalSubset  (String  declarations  );   public    String  getInternalSubset  ();   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();  } 
Document

The Document class represents a complete document and serves as the root of the JDOM tree. Each Document object contains a list of its content and the document's DocType (if it has one). Each Document should have exactly one Element in its content list. However, documents may be temporarily rootless. Almost anything you do to such a Document other than setting the root element will throw an IllegalStateException .

 package org.jdom;  public class  Document  implements Serializable, Cloneable {   protected ContentList  content;  protected DocType  docType;  public  Document  ();   public  Document  (Element  rootElement,  DocType  docType  )    throws IllegalAddException;   public  Document  (Element  rootElement  );   public  Document  (List  newContent,  DocType  docType  )    throws IllegalAddException;   public  Document  (List  content  ) throws IllegalAddException;   public boolean  hasRootElement  ();   public Element  getRootElement  () throws IllegalStateException;   public Document  setRootElement  (Element  rootElement  );   public Element  detachRootElement  ();   public DocType  getDocType  ();   public Document  setDocType  (DocType  docType  )    throws IllegalAddException;   public Document  addContent  (ProcessingInstruction  pi  );   public Document  addContent  (Comment  comment  );   public List  getContent  ();   public List  getContent  (Filter  filter  );   public Document  setContent  (List  newContent  )    throws IllegalAddException;   public boolean  removeContent  (ProcessingInstruction  pi  );   public boolean  removeContent  (Comment  comment  );   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();  } 
Element

The Element class represents a complete element. Each element has a local name, a namespace (which may be null), a parent Element (which is null if this is the root element or not currently part of a document), a list of its children, a list of its attributes, and a list of any namespace prefixes declared on the element that are not used by the element or one of its attributes.

 package org.jdom;  public class  Element  implements Serializable, Cloneable {   protected String  name;  protected Namespace  namespace;  protected List  additionalNamespaces;  protected Object  parent;  protected AttributeList  attributes;  protected ContentList  content;  protected  Element  ();   public  Element  (String  name,  Namespace  namespace  )    throws IllegalNameException;   public  Element  (String  name  ) throws IllegalNameException;   public  Element  (String  name,  String  uri  )    throws IllegalNameException;   public  Element  (String  name,  String  prefix,  String  uri  )    throws IllegalNameException;   public    String  getName  ();   public    Element  setName  (String  name  )    throws IllegalNameException;   public    Namespace  getNamespace  ();   public    Element  setNamespace  (Namespace  namespace  );   public    String  getNamespacePrefix  ();   public    String  getNamespaceURI  ();   public    Namespace  getNamespace  (String  prefix  );   public    String  getQualifiedName  ();   public    void  addNamespaceDeclaration  (    Namespace  additional  );   public    void  removeNamespaceDeclaration  (    Namespace  additionalNamespace  );   public    List  getAdditionalNamespaces  ();   public    Element  getParent  ();   protected Element  setParent  (Element  parent  );   public    Element  detach  ();   public    boolean  isRootElement  ();   protected Element  setDocument  (Document  document  );   public    Document  getDocument  ();   public    boolean  isAncestor  (Element  element  );   public    String  getText  ();   public    Element  setText  (String  text  );   public    String  getTextTrim  ();   public    String  getTextNormalize  ();   public    String  getChildText  (String  name  );   public    String  getChildTextTrim  (String  name  );   public    String  getChildTextNormalize  (String  name  );   public    String  getChildText  (String  name,  Namespace  ns  );   public    String  getChildTextTrim  (String  name,  Namespace  namespace  );   public    String  getChildTextNormalize  (String  name,  Namespace  namespace  );   public    List  getContent  ();   public    List  getContent  (Filter  filter  );   public    Element  setContent  (List  newContent  )    throws IllegalAddException;   public    List  getChildren  ();   public    List  getChildren  (String  name  );   public    List  getChildren  (String  name,  Namespace  ns  );   public    Element  getChild  (String  name,  Namespace  ns  );   public    Element  getChild  (String  name  );   public    Element  addContent  (String  s  )    throws IllegalAddException;   public    Element  addContent  (Text  text  )    throws IllegalAddException;   public    Element  addContent  (Element  element  )    throws IllegalAddException;   public    Element  addContent  (ProcessingInstruction  pi  )    throws IllegalAddException;   public    Element  addContent  (EntityRef  ref  )    throws IllegalAddException;   public    Element  addContent  (Comment  comment  )    throws IllegalAddException;   public    boolean  removeChild  (String  name  );   public    boolean  removeChild  (String  name,  Namespace  ns  );   public    boolean  removeChildren  (String  name  );   public    boolean  removeChildren  (String  name,  Namespace  ns  );   public    boolean  removeContent  (Element  element  );   public    boolean  removeContent  (ProcessingInstruction  pi  );   public    boolean  removeContent  (Comment  comment  );   public    boolean  removeContent  (Text  text  );   public    boolean  removeContent  (EntityRef  entity  );   // Attribute methods   public    List  getAttributes  ();   public    Attribute  getAttribute  (String  name  );   public    Attribute  getAttribute  (String  name,  Namespace  ns  );   public    String  getAttributeValue  (String  name  );   public    String  getAttributeValue  (String  name,  Namespace  ns,  String  def  );   public    String  getAttributeValue  (String  name,  String  def  );   public    String  getAttributeValue  (String  name,  Namespace  ns  );   public    Element  setAttributes  (List  newAttributes  )    throws IllegalAddException;   public    Element  setAttribute  (String  name,  String  value  )    throws IllegalNameException, IllegalDataException;   public    Element  setAttribute  (String  name,  String  value,  Namespace  ns  )    throws IllegalNameException, IllegalDataException;   public    Element  setAttribute  (Attribute  attribute  );   public    boolean  removeAttribute  (String  name  );   public    boolean  removeAttribute  (String  name,  Namespace  ns  );   public    boolean  removeAttribute  (Attribute  attribute  );   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();  } 
EntityRef

The EntityRef class represents an unexpanded entity reference, such as might be produced by a nonvalidating parser that does not read the external DTD subset. Entity references for which the replacement text is known are not included as EntityRef objects. Instead their replacement text is parsed and included.

 package org.jdom;  public class  EntityRef  implements Serializable, Cloneable {   protected String  name;  protected String  publicID;  protected String  systemID;  protected Object  parent;  protected  EntityRef  ();   public  EntityRef  (String  name  );   public  EntityRef  (String  name,  String  systemID  );   public  EntityRef  (String  name,  String  publicID,  String  systemID  );   public    String  getName  ();   public    EntityRef  setName  (String  name  )    throws IllegalNameException;   public    String  getPublicID  ();   public    String  getSystemID  ();   public    EntityRef  setPublicID  (String  newPublicID  )    throws IllegalDataException;   public    EntityRef  setSystemID  (String  url  )    throws IllegalDataException;   public    Document  getDocument  ();   public    Element  getParent  ();   public    EntityRef  detach  ();   protected EntityRef  setParent  (Element  parent  );   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  (); } 
Namespace

The Namespace class encapsulates a namespace URI and possibly a prefix. It uses the flyweight design pattern, so that twenty different elements in the same namespace share only one Namespace object between them.

 package org.jdom;  public final class  Namespace  {   // empty string   public static final Namespace  NO_NAMESPACE;  // http://www.w3.org/XML/1998/namespace   public static final Namespace  XML_NAMESPACE;  // The constructor is private   // Factory methods   public static Namespace  getNamespace  (String  prefix,  String  uri  )    throws IllegalNameException;   public static Namespace  getNamespace  (String  uri  )    throws IllegalNameException;   public String  getPrefix  ();   public String  getURI  ();   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();  } 
ProcessingInstruction

The ProcessingInstruction class represents a complete processing instruction. Each ProcessingInstruction has a target, data, a parent Element (which will be null if this instruction is in the prolog or epilog), and an owner Document . If the data is stored in pseudo-attributes, then there's also a map containing the pseudo-attributes separated into names and values. Not all processing instructions can be represented in this format, however.

 package org.jdom;  public class  ProcessingInstruction  implements Serializable, Cloneable {   protected String  target;  protected String  rawData;  protected Map  mapData;  protected Object  parent;  protected  ProcessingInstruction  ();   public  ProcessingInstruction  (String  target,  Map  data  )    throws IllegalTargetException;   public  ProcessingInstruction  (String  target,  String  data  )    throws IllegalTargetException;   public    ProcessingInstruction  setTarget  (String  newTarget  )    throws IllegalTargetException;   public    String  getTarget  ();   public    Element  getParent  ();   protected ProcessingInstruction  setParent  (Element  parent  );   public    ProcessingInstruction  detach  ();   public    Document  getDocument  ();   protected ProcessingInstruction  setDocument  (Document  document  );   public    String  getData  ();   public    ProcessingInstruction  setData  (String  data  );   public    ProcessingInstruction  setData  (Map  data  );   public    List  getNames  ();   public    String  getValue  (String  name  );   public    ProcessingInstruction  setValue  (String  name,  String  value  );   public    boolean  removeValue  (String  name  );   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  (); } 
Text

The Text class represents a text node. In general, Text objects are not guaranteed to contain the maximum possible contiguous run of text, although this will be true of documents created by a SAXBuilder and not modified since. In common usage, you can ignore this class and use strings instead.

 package org.jdom;  public class  Text  implements Serializable, Cloneable {   protected String  value;  protected Object  parent;  protected  Text  ();   public  Text  (String  s  ) throws IllegalDataException;   public String  getText  ();   public String  getTextTrim  ();   public String  getTextNormalize  ();   public Text  setText  (String  s  ) throws IllegalDataException;   public void  append  (String  s  ) throws IllegalDataException;   public void  append  (Text  text  ) throws IllegalDataException;   public Element  getParent  ();   public Document  getDocument  ();   protected Text  setParent  (Element  parent  );   public Text  detach  ();   public static String  normalizeString  (String  s  );   // Java utility methods   public       String  toString  ();   public final boolean  equals  (Object  o  );   public final int  hashCode  ();   public       Object  clone  ();  } 
Verifier

Verifier is a utility class the other JDOM classes rely on to decide whether or not particular strings are acceptable for particular purposes. For example, TimeLimit is a legal element name, but Time Limit is not. You will seldom need to use this class directly. If you do, then note that all of the various check methods return null if the argument passes the test and a nonempty string containing an error message if the test fails.

 package org.jdom;  public final class  Verifier  {   public static String  checkElementName  (String  name  );   public static String  checkAttributeName  (String  name  );   public static String  checkCharacterData  (String  text  );   public static String  checkCDATASection  (String  data  );   public static String  checkNamespacePrefix  (String  prefix  );   public static String  checkNamespaceURI  (String  uri  );   public static String  checkNamespaceCollision  (    Namespace  namespace,  Namespace  other  );   public static String  checkNamespaceCollision  (    Attribute  attribute,  Element  element  );   public static String  checkNamespaceCollision  (    Namespace  namespace,  Element  element  );   public static String  checkNamespaceCollision  (    Namespace  namespace,  Attribute  attribute  );   public static String  checkNamespaceCollision  (    Namespace  namespace,  List  list  );   public static String  checkProcessingInstructionTarget  (    String  target  );   public static String  checkCommentData  (String  data  );   public static String  checkPublicID  (String  publicID  );   public static String  checkSystemLiteral  (String  systemID  );   public static String  checkXMLName  (String  name  );   public static boolean  isXMLCharacter  (char  c  );   public static boolean  isXMLNameCharacter  (char  c  );   public static boolean  isXMLNameStartCharacter  (char  c  );   public static boolean  isXMLLetterOrDigit  (char  c  );   public static boolean  isXMLLetter  (char  c  );   public static boolean  isXMLCombiningChar  (char  c  );   public static boolean  isXMLExtender  (char  c  );   public static boolean  isXMLDigit  (char  c  ); } 
Exceptions and Errors

JDOM defines a number of unique exceptions. JDOMException is the basic superclass for most checked exceptions that JDOM methods can throw. A few methods in the input and output packages also throw standard IOException s. Finally, JDOM provides several subclasses of IllegalArgumentException (a runtime exception) that are thrown when a program attempts to set XML constructs such as element names to illegal values.

DataConversionException

DataConversionException is thrown by the five getInt/Long/Float/Double/BooleanValue() methods in Attribute when the attribute value cannot be parsed as the requested type. This is a checked exception.

 package org.jdom;  public class  DataConversionException  extends JDOMException {   public  DataConversionException  (String  message,  String  type  );  } 
IllegalAddException

IllegalAddException is thrown when code attempts to add a node where it doesn't belong. This could be because the new child already has a parent or because the new child can never be placed where you're trying to fit it (for example, adding Text object as a child of a Document ). This is a runtime exception.

 package org.jdom;  public class  IllegalAddException  extends IllegalArgumentException {   public  IllegalAddException  (Element  base,  Attribute  added,  String  reason  );   public  IllegalAddException  (Element  base,  Element  added,  String  reason  );   public  IllegalAddException  (Document  base,  Element  added,  String  reason  );   public  IllegalAddException  (Element  base,  ProcessingInstruction  added,  String  reason  );   public  IllegalAddException  (Document  base,  ProcessingInstruction  added,  String  reason  );   public  IllegalAddException  (Element  base,  Comment  added,  String  reason  );   public  IllegalAddException  (Element  base,  CDATA  added,  String  reason  );   public  IllegalAddException  (Element  base,  Text  added,  String  reason  );   public  IllegalAddException  (Document  base,  Comment  added,  String  reason  );   public  IllegalAddException  (Element  base,  EntityRef  added,  String  reason  );   public  IllegalAddException  (Element  base,  Namespace  added,  String  reason  );   public  IllegalAddException  (Document  base,  DocType  added,  String  reason  );   public  IllegalAddException  (String  reason  );  } 
IllegalDataException

An IllegalDataException is thrown when code attempts to set some text content to a string that does not satisfy XML well- formedness rules. Exactly what these rules are depends on context. For example, a comment cannot contain the two-hyphen string -- . No content can include the ASCII vertical tab or bell characters, and so forth. The data argument contains the illegal text. This is a runtime exception.

 package org.jdom;  public class  IllegalDataException  extends IllegalArgumentException {   public  IllegalDataException  (String  data,  String  construct,  String  reason  );   public  IllegalDataException  (String  data,  String  construct  );  } 
IllegalNameException

An IllegalNameException is thrown when code attempts to set the name of an attribute, element, or entity reference to a string that is not a namespace well- formed XML name. This is a runtime exception.

 package org.jdom;  public class  IllegalNameException  extends IllegalArgumentException {   public  IllegalNameException  (String  name,  String  construct,  String  reason  );   public  IllegalNameException  (String  name,  String  construct  );  } 
IllegalTargetException

An IllegalTargetException is thrown when code attempts to set the target of a processing instruction to a string that is not a legal XML name. This is a runtime exception.

 package org.jdom;  public class  IllegalTargetException  extends IllegalArgumentException {   public  IllegalTargetException  (String  target,  String  reason  );   public  IllegalTargetException  (String  target  );  } 
JDOMException

JDOMException is the common superclass for the different kinds of checked exceptions that may be thrown while working with JDOM.

 package org.jdom;  public class  JDOMException  extends Exception {   protected Throwable  cause;  public  JDOMException  ();   public  JDOMException  (String  message  );   public  JDOMException  (String  message,  Throwable  cause  );   public Throwable  initCause  (Throwable  cause  );   public Throwable  getCause  ();   public String  getMessage  ();   public void  printStackTrace  ();   public void  printStackTrace  (PrintStream  out  );   public void  printStackTrace  (PrintWriter  out  );  } 

org.jdom.filter

JDOM uses the filter package internally to ensure that client code doesn't do silly things such as adding a java.io.InputStream to an Element 's children, or slightly less silly but still illegal things such as adding a Text object to a Document 's children. You can also use filters in your own code to simplify navigation and search in XML documents.

ContentFilter

ContentFilter is the basic filter that allows you to specify what kinds of nodes you want to pass the filter. The actual filter is stored as an int mask. The individual node types are integral powers of two that set exactly one bit in the mask. As usual with bit masks, you can combine the different fields with the bitwise or operator .

 package org.jdom.filter;  public class  ContentFilter  implements Filter {   public static final int  ELEMENT;  public static final int  CDATA;  public static final int  TEXT;  public static final int  COMMENT;  public static final int  PI;  public static final int  ENTITYREF;  public static final int  DOCUMENT;  protected int  filterMask;  public  ContentFilter  ();   public  ContentFilter  (boolean  allVisible  );   public  ContentFilter  (int  mask  );   public int  getFilterMask  ();   public void  setFilterMask  (int  mask  );   public void  setDefaultMask  ();   public void  setDocumentContent  ();   public void  setElementContent  ();   public void  setElementVisible  (boolean  visible  );   public void  setCDATAVisible  (boolean  visible  );   public void  setTextVisible  (boolean  visible  );   public void  setCommentVisible  (boolean  visible  );   public void  setPIVisible  (boolean  visible  );   public void  setEntityRefVisible  (boolean  visible  );   public boolean  canAdd  (Object  o  );   public boolean  canRemove  (Object  o  );   public boolean  matches  (Object  o  );   public boolean  equals  (Object  o  );  } 
ElementFilter

The ElementFilter class enables you to define filters that pass only elements with a certain name, or a certain namespace, or a certain name in a certain namespace.

Note

It is likely that the behavior of the ElementFilter(String name ) constructor will be changed to create a filter that selects elements with that name and no namespace rather than elements with that name in any namespace.


 package org.jdom.filter;  public class  ElementFilter  implements Filter {   protected String  name;  protected Namespace  namespace;  public  ElementFilter  ();   public  ElementFilter  (String  name  );   public  ElementFilter  (Namespace  namespace  );   public  ElementFilter  (String  name,  Namespace  namespace  );   public boolean  canAdd  (Object  o  );   public boolean  canRemove  (Object  o  );   public boolean  matches  (Object  o  );   public boolean  equals  (Object  o  );  } 
Filter

The Filter interface identifies the child nodes that should appear in a JDOM list. Node objects for which matches() returns false are filtered out of the list.

 package org.jdom.filter;  public interface  Filter  {   public boolean  canAdd  (Object  o  );   public boolean  canRemove  (Object  o  );   public boolean  matches  (Object  o  );  } 

Caution

The canAdd() and canRemove() methods are likely to be deprecated and then removed in the near future.


org.jdom.input

The org.jdom.input class contains classes involved with building JDOM objects from other formats such as XML files, DOM Document objects, and such.

BuilderErrorHandler

The BuilderErrorHandler class reports errors that occur during SAX parsing. By default it rethrows the exception to halt parsing for errors and fatal errors and ignores warnings. You seldom need to interact with this class directly.

 package org.jdom.input;  public class  BuilderErrorHandler  implements org.xml.sax.ErrorHandler {   public  BuilderErrorHandler  ();   public void  warning  (SAXParseException  exception  )    throws SAXException;   public void  error  (SAXParseException  exception  )    throws SAXException;   public void  fatalError  (SAXParseException  exception  )    throws SAXException;  } 
DefaultJDOMFactory

The DefaultJDOMFactory class is used by SAXBuilder and DOMBuilder to create standard, undecorated JDOM trees. You rarely need to use this class directly.

 package org.jdom.input;  public class  DefaultJDOMFactory  implements JDOMFactory {   public  DefaultJDOMFactory  ();   public Attribute  attribute  (String  name,  String  value,  Namespace  namespace  )    throws IllegalNameException, IllegalDataException;   public Attribute  attribute  (String  name,  String  value,  int  type,  Namespace  namespace  )    throws IllegalNameException, IllegalDataException;   public Attribute  attribute  (String  name,  String  value  ) throws IllegalNameException, IllegalDataException;   public Attribute  attribute  (String  name,  String  value,  int  type  )    throws IllegalNameException, IllegalDataException;   public CDATA  cdata  (String  text  )    throws IllegalDataException;   public Text  text  (String  text  )    throws IllegalDataException;   public Comment  comment  (String  text  )    throws IllegalDataException;   public DocType  docType  (String  elementName,  String  publicID,  String  systemID  )    throws IllegalNameException, IllegalDataException;   public DocType  docType  (String  elementName,  String  systemID  ) throws IllegalNameException,     IllegalDataException;   public DocType  docType  (String  elementName  )    throws IllegalNameException;   public Document  document  (Element  rootElement,  DocType  docType  ) IllegalAddException;   public Document  document  (Element  rootElement  )    throws IllegalAddException;   public Element  element  (String  name,  Namespace  namespace  ) throws IllegalNameException;   public Element  element  (String  name  )    throws IllegalNameException;   public Element  element  (String  name,  String  uri  )    throws IllegalNameException;   public Element  element  (String  name,  String  prefix,  String  uri  ) throws IllegalNameException;   public ProcessingInstruction  processingInstruction  (    String  target,  Map  data  ) throws IllegalTargetException;   public ProcessingInstruction  processingInstruction  (    String  target,  String  data  ) throws IllegalTargetException;   public EntityRef  entityRef  (String  name  )    throws IllegalNameException;   public EntityRef  entityRef  (String  name,  String  publicID,  String  systemID  )    throws IllegalNameException, IllegalTargetException;  } 
DOMBuilder

The DOMBuilder class converts DOM org.w3c.dom.Document objects into org.jdom.Document objects and DOM org.w3c.dom.Element objects into org.jdom.Element objects. It's useful when interoperating with DOM programs and libraries.

 package org.jdom.input;  public class  DOMBuilder  {   public  DOMBuilder  ();   public  DOMBuilder  (String  adapterClass  );   public void  setFactory  (JDOMFactory  factory  );   public Document  build  (org.w3c.dom.Document  domDocument  )    throws IllegalDataException;   public Element  build  (org.w3c.dom.Element  domElement  )    throws IllegalDataException;  } 
JDOMFactory

DOMBuilder and SAXBuilder rely on a JDOMFactory to build node objects. You can implement this class in order to have the builder objects build subclasses of your own devising rather than the standard JDOM classes. This interface is for advanced use, and then only when subclassing the standard org.jdom classes.

 package org.jdom.input;  public interface  JDOMFactory  {   public Attribute  attribute  (String  name,  String  value,  Namespace  namespace  );   public Attribute  attribute  (String  name,  String  value,  int  type,  Namespace  namespace  );   public Attribute  attribute  (String  name,  String  value  );   public Attribute  attribute  (String  name,  String  value,  int  type  );   public CDATA  cdata  (String  text  );   public Text  text  (String  text  );   public Comment  comment  (String  text  );   public DocType  docType  (String  elementName,  String  publicID,  String  systemID  );   public DocType  docType  (String  elementName,  String  systemID  );   public DocType  docType  (String  elementName  );   public Document  document  (Element  rootElement,  DocType  docType  );   public Document  document  (Element  rootElement  );   public Element  element  (String  name,  Namespace  namespace  );   public Element  element  (String  name  );   public Element  element  (String  name,  String  uri  );   public Element  element  (String  name,  String  prefix,  String  uri  );   public ProcessingInstruction  processingInstruction  (    String  target,  Map  data  );   public ProcessingInstruction  processingInstruction  (    String  target,  String  data  );   public EntityRef  entityRef  (String  name  );   public EntityRef  entityRef  (String  name,  String  publicID,  String  systemID  );  } 
SAXBuilder

SAXBuilder is the preferred means of parsing XML documents into JDOM. It relies on an underlying SAX parser, but it is agnostic about which parser is used.

 package org.jdom.input;  public class  SAXBuilder  {   protected JDOMFactory  factory;  public  SAXBuilder  ();   public  SAXBuilder  (boolean  validate  );   public  SAXBuilder  (String  saxDriverClass  );   public  SAXBuilder  (String  saxDriverClass,  boolean  validate  );   public void  setFactory  (JDOMFactory  factory  );   public void  setValidation  (boolean  validate  );   public void  setErrorHandler  (ErrorHandler  errorHandler  );   public void  setEntityResolver  (EntityResolver  entityResolver  );   public void  setDTDHandler  (DTDHandler  dtdHandler  );   public void  setXMLFilter  (XMLFilter  xmlFilter  );   public void  setIgnoringElementContentWhitespace  (    boolean  ignoringWhite  );   public void  setFeature  (String  name,  boolean  value  );   public void  setProperty  (String  name,  Object  value  );   public void  setExpandEntities  (boolean  expand  );   public Document  build  (InputSource  in  )    throws JDOMException, IOException;   public Document  build  (InputStream  in  )    throws JDOMException, IOException;   public Document  build  (File  file  )    throws JDOMException, IOException;   public Document  build  (URL  url  )    throws JDOMException, IOException;   public Document  build  (InputStream  in,  String  systemID  )    throws JDOMException, IOException;   public Document  build  (Reader  characterStream  )    throws JDOMException, IOException;   public Document  build  (Reader  characterStream,  String  SystemID  )    throws JDOMException, IOException;   public Document  build  (String  systemID  )    throws JDOMException, IOException;   protected SAXHandler  createContentHandler  ();   protected void  configureContentHandler  (    SAXHandler  contentHandler  );   protected XMLReader  createParser  () throws JDOMException;   protected void  configureParser  (XMLReader  parser,  SAXHandler  contentHandler  ) throws JDOMException;   protected URL  fileToURL  (File  f  )    throws MalformedURLException;  } 
SAXHandler

SAXBuilder uses SAXHandler to receive information from the underlying SAX parser. It's extremely rare that you need to use this class yourself.

 package org.jdom.input;  public class  SAXHandler  extends DefaultHandler  implements LexicalHandler, DeclHandler, DTDHandler {   protected Stack  stack;  protected boolean  atRoot;  protected boolean  inDTD;  protected boolean  inInternalSubset;  protected boolean  previousCDATA;  protected boolean  inCDATA;  protected boolean  suppress;  protected LinkedList  declaredNamespaces;  protected LinkedList  availableNamespaces;  public  SAXHandler  ();   public  SAXHandler  (JDOMFactory  factory  );   public Document  getDocument  ();   public JDOMFactory  getFactory  ();   public Locator  getDocumentLocator  ();   public void  setExpandEntities  (boolean  expand  );   public boolean  getExpandEntities  ();   public void  setIgnoringElementContentWhitespace  (    boolean  ignoringWhite  );   public boolean  getIgnoringElementContentWhitespace  ();   // DeclHandler methods   public void  externalEntityDecl  (String  name,  String  publicID,  String  systemID  )    throws SAXException;   public void  attributeDecl  (String  elementName,  String  attributeName,  String  type,  String  valueDefault,  String  value  ) throws SAXException;   public void  elementDecl  (String  name,  String  model  )    throws SAXException;   public void  internalEntityDecl  (String  name,  String  value  )    throws SAXException;   // ContentHandler methods   public void  setDocumentLocator  (Locator  locator  );   public void  startPrefixMapping  (String  prefix,  String  uri  )    throws SAXException;   public void  endPrefixMapping  (String  prefix  ) throws SAXException;   public void  startElement  (String  namespaceURI,  String  localName,  String  qualifiedName,  Attributes  atts  )     throws SAXException;   public void  characters  (char  ch,  int  start,  int  length  )    throws SAXException;   public void  ignorableWhitespace  (char  ch,  int  start,  int  length  )    throws SAXException;   public void  skippedEntity  (String  name  ) throws SAXException;   public void  processingInstruction  (String  target,  String  data  )    throws SAXException;   public void  endElement  (String  namespaceURI,  String  localName,  String  qualifiedName  ) throws SAXException;   // LexicalHandler methods   public void  startDTD  (String  name,  String  publicID,  String  systemID  ) throws SAXException;   public void  endDTD  () throws SAXException;   public void  startEntity  (String  name  ) throws SAXException;   public void  endEntity  (String  name  ) throws SAXException;   public void  startCDATA  () throws SAXException;   public void  endCDATA  () throws SAXException;   public void  comment  (char  ch,  int  start,  int  length  )    throws SAXException;   // DTDHandler methods   public void  notationDecl  (String  name,  String  publicID,  String  systemID  ) throws SAXException;   public void  unparsedEntityDecl  (String  name,  String  publicID,  String  systemID,  String  notationName  ) throws SAXException;   // Internal methods   protected void  flushCharacters  () throws SAXException;   protected void  appendExternalId  (String  publicID,  String  systemID  );   protected Element  getCurrentElement  () throws SAXException;  } 

org.jdom.output

The org.jdom.output package is responsible for converting JDOM Document objects into other forms, such as files, streams of text, DOM Document objects, and SAX event sequences.

DOMOutputter

The DOMOutputter class converts a JDOM Document object to a DOM Document object.

 package org.jdom.output;  public class  DOMOutputter  {   public  DOMOutputter  ();   public  DOMOutputter  (String  adapterClass  );   public org.w3c.dom.Document  output  (Document  document  )    throws JDOMException;   protected org.w3c.dom.Element  output  (Element  element,  org.w3c.dom.Document  factory,  NamespaceStack  namespaces  )    throws JDOMException;   protected org.w3c.dom.Attr  output  (Attribute  attribute,  org.w3c.dom.Document  factory  ) throws JDOMException;  } 
SAXOutputter

The SAXOutputter class walks a JDOM Document tree while firing events at a SAX ContentHandler .

 package org.jdom.output;  public class  SAXOutputter  {   public  SAXOutputter  ();   public  SAXOutputter  (ContentHandler  contentHandler  );   public  SAXOutputter  (ContentHandler  contentHandler,  ErrorHandler  errorHandler,  DTDHandler  dtdHandler,  EntityResolver  entityResolver  );   public  SAXOutputter  (ContentHandler  contentHandler,  ErrorHandler  errorHandler,  DTDHandler  dtdHandler,  EntityResolver  entityResolver,  LexicalHandler  lexicalHandler  );   public void  setContentHandler  (    ContentHandler  contentHandler  );   public ContentHandler  getContentHandler  ();   public void  setErrorHandler  (    ErrorHandler  errorHandler  );   public ErrorHandler  getErrorHandler  ();   public void  setDTDHandler  (DTDHandler  dtdHandler  );   public DTDHandler  getDTDHandler  ();   public void  setEntityResolver  (    EntityResolver  entityResolver  );   public EntityResolver  getEntityResolver  ();   public void  setLexicalHandler  (    LexicalHandler  lexicalHandler  );   public LexicalHandler  getLexicalHandler  ();   public void  setDeclHandler  (DeclHandler  declHandler  );   public DeclHandler  getDeclHandler  ();   public void  setReportNamespaceDeclarations  (    boolean  declareNamespaces  );   public void  setReportDTDEvents  (boolean  reportDtdEvents  );   public void  setFeature  (String  name,  boolean  value  )    throws SAXNotRecognizedException, SAXNotSupportedException;   public boolean  getFeature  (String  name  )    throws SAXNotRecognizedException, SAXNotSupportedException;   public void  setProperty  (String  name,  Object  value  )    throws SAXNotRecognizedException, SAXNotSupportedException;   public Object  getProperty  (String  name  )    throws SAXNotRecognizedException, SAXNotSupportedException;   public void  output  (Document  document  ) throws JDOMException;   protected XMLReader  createParser  () throws Exception; } 
XMLOutputter

The XMLOutputter class writes a JDOM Document onto an OutputStream or Writer or into a String . Using an OutputStream is preferable to using a Writer because it allows JDOM to more accurately determine which characters need to be escaped.

 package org.jdom.output;  public class  XMLOutputter  implements Cloneable {   public  XMLOutputter  ();   public  XMLOutputter  (String  indent  );   public  XMLOutputter  (String  indent,  boolean  newlines  );   public  XMLOutputter  (String  indent,  boolean  newlines,  String  encoding  );   public  XMLOutputter  (XMLOutputter  that  );   public void  setLineSeparator  (String  separator  );   public void  setNewlines  (boolean  newlines  );   public void  setEncoding  (String  encoding  );   public void  setOmitEncoding  (boolean  omitEncoding  );   public void  setOmitDeclaration  (boolean  omitDeclaration  );   public void  setExpandEmptyElements  (boolean  expandEmpties  );   public void  setTrimAllWhite  (boolean  trimAllWhite  );   public void  setTextTrim  (boolean  textTrim  );   public void  setTextNormalize  (boolean  textNormalize  );   public void  setIndent  (String  indent  );   public void  output  (Document  doc,  OutputStream  out  )    throws IOException;   public void  output  (DocType  doctype,  OutputStream  out  )    throws IOException;   public void  output  (Element  element,  OutputStream  out  )    throws IOException;   public void  outputElementContent  (Element  element,  OutputStream  out  ) throws IOException;   public void  output  (List  list,  OutputStream  out  )    throws IOException;   public void  output  (CDATA  cdata,  OutputStream  out  )    throws IOException;   public void  output  (Text  text,  OutputStream  out  )    throws IOException;   public void  output  (Comment  comment,  OutputStream  out  )    throws IOException;   public void  output  (ProcessingInstruction  pi,  OutputStream  out  )    throws IOException;   public void  output  (EntityRef  entity,  OutputStream  out  )    throws IOException;   public void  output  (Document  doc,  Writer  out  )    throws IOException;   public void  output  (DocType  doctype,  Writer  out  )    throws IOException;   public void  output  (Element  element,  Writer  out  )    throws IOException;   public void  outputElementContent  (Element  element,  Writer  out  )    throws IOException;   public void  output  (List  list,  Writer  out  )    throws IOException;   public void  output  (CDATA  cdata,  Writer  out  )    throws IOException;   public void  output  (Text  text,  Writer  out  )    throws IOException;   public void  output  (Comment  comment,  Writer  out  )    throws IOException;   public void  output  (ProcessingInstruction  pi,  Writer  out  )    throws IOException;   public void  output  (EntityRef  entity,  Writer  out  )    throws IOException;   public String  outputString  (Document  doc  );   public String  outputString  (DocType  doctype  );   public String  outputString  (Element  element  );   public String  outputString  (List  list  );   public String  outputString  (CDATA  cdata  );   public String  outputString  (Text  text  );   public String  outputString  (String  s  );   public String  outputString  (Comment  comment  );   public String  outputString  (ProcessingInstruction  pi  );   public String  outputString  (EntityRef  entity  );   public String  escapeAttributeEntities  (String  s  );   public String  escapeElementEntities  (String  s  );   public int  parseArgs  (String  args,  int  i  );   protected Writer  makeWriter  (OutputStream  out  )    throws UnsupportedEncodingException;   protected Writer  makeWriter  (OutputStream  out,  String  enc  )    throws UnsupportedEncodingException;   protected void  printDeclaration  (Document  doc,  Writer  out,  String  encoding  ) throws IOException;   protected void  printDocType  (DocType  docType,  Writer  out  )    throws IOException;   protected void  printComment  (Comment  comment,  Writer  out  )    throws IOException;   protected void  printProcessingInstruction  (    ProcessingInstruction  pi,  Writer  out  ) throws IOException;   protected void  printEntityRef  (EntityRef  entity,  Writer  out  )    throws IOException;   protected void  printCDATA  (CDATA  cdata,  Writer  out  )    throws IOException;   protected void  printText  (Text  text,  Writer  out  )    throws IOException;   protected void  printString  (String  s,  Writer  out  )    throws IOException;   protected void  printElement  (Element  element,  Writer  out,  int  level,  XMLOutputter.NamespaceStack  namespaces  ) throws IOException;   protected void  printContentRange  (List  content,  int  start,  int  end,  Writer  out,  int  level,  XMLOutputter.NamespaceStack  namespaces  ) throws IOException;   protected void  printTextRange  (List  content,  int  start,  int  end,  Writer  out  ) throws IOException;   protected void  printAttributes  (List  attributes,  Element  parent,  Writer  out,  XMLOutputter.NamespaceStack  namespaces  )    throws IOException;   protected void  newline  (Writer  out  ) throws IOException;   protected void  indent  (Writer  out,  int  level  )    throws IOException;   protected XMLOutputter.NamespaceStack  createNamespaceStack  ();   public Object  clone  ();   public String  toString  ();  } 
XMLOutputter.NamespaceStack

The inner class NamespaceStack is used by XMLOutputter to keep track of which namespaces are in scope at any given point, and thus do not need to be redeclared. You only need to use this class if you're subclassing XMLOutputter .

 package org.jdom.output;  protected class  XMLOutputter.NamespaceStack  extends NamespaceStack {   protected  XMLOutputter.NamespaceStack  ();  } 

org.jdom.transform

The org.jdom.transform package enables JDOM programs to interface with TrAX-based XSLT processors by providing JDOM implementations of the TrAX Source and Result interfaces.

JDOMResult

JDOMResult is useful as an output for TrAX transformations that produce JDOM Document s.

 package org.jdom.transform;  public class  JDOMResult  extends SAXResult {   public static final String  JDOM_FEATURE;  public  JDOMResult  ();   public void  setDocument  (Document  document  );   public Document  getDocument  ();   public void  setFactory  (JDOMFactory  factory  );   public JDOMFactory  getFactory  ();   public void  setHandler  (ContentHandler  handler  );   public void  setLexicalHandler  (LexicalHandler  handler  );  } 
JDOMSource

JDOMSource is useful as an input for TrAX transformations that transform JDOM Document s.

 package org.jdom.transform;  public class  JDOMSource  extends SAXSource {   public static final String  JDOM_FEATURE;  public  JDOMSource  (Document  source  );   public void  setDocument  (Document  source  );   public Document  getDocument  ();   public void  setInputSource  (InputSource  inputSource  )    throws UnsupportedOperationException;   public void  setXMLReader  (XMLReader  reader  )    throws UnsupportedOperationException;   public XMLReader  getXMLReader  ();  } 

org.jdom.xpath

The org.jdom.xpath package provides a simple interface for XPath evaluation of JDOM Document s. Jaxen is the underlying implementation.

XPath

The XPath class allows you to evaluate XPath expressions relative to JDOM node objects.

 package org.jdom.xpath;  public abstract class  XPath  implements Serializable {   protected  XPath  (String  expr  ) throws JDOMException;   public static XPath  newInstance  (String  path  )    throws JDOMException;   public List  selectNodes  (Object  context  )    throws JDOMException;   public Object  selectSingleNode  (Object  context  )    throws JDOMException;   public String  valueOf  (Object  context  ) throws JDOMException;   public Number  numberValueOf  (Object  context  )    throws JDOMException;   public void  setVariable  (String  name,  Object  value  )    throws IllegalArgumentException;   public String  getXPath  ();   public static List  selectNodes  (Object  context,  String  path  )    throws JDOMException;   public static Object  selectSingleNode  (Object  context,  String  path  ) throws JDOMException;  } 


Processing XML with Java. A Guide to SAX, DOM, JDOM, JAXP, and TrAX
Processing XML with Javaв„ў: A Guide to SAX, DOM, JDOM, JAXP, and TrAX
ISBN: 0201771861
EAN: 2147483647
Year: 2001
Pages: 191

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net