From c8875fb97fc03779a5bba09872227b1d08e5d52a Mon Sep 17 00:00:00 2001
From: tromey This is the original SAX1 interface for reporting an element's
+ * attributes. Unlike the new {@link org.xml.sax.Attributes Attributes}
+ * interface, it does not support Namespace-related information. When an attribute list is supplied as part of a
+ * {@link org.xml.sax.DocumentHandler#startElement startElement}
+ * event, the list will return valid results only during the
+ * scope of the event; once the event handler returns control
+ * to the parser, the attribute list is invalid. To save a
+ * persistent copy of the attribute list, use the SAX1
+ * {@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
+ * helper class. An attribute list includes only attributes that have been
+ * specified or defaulted: #IMPLIED attributes will not be included. There are two ways for the SAX application to obtain information
+ * from the AttributeList. First, it can iterate through the entire
+ * list: (Note that the result of getLength() will be zero if there
+ * are no attributes.)
+ *
+ * As an alternative, the application can request the value or
+ * type of specific attributes: The SAX parser may provide attributes in any
+ * arbitrary order, regardless of the order in which they were
+ * declared or specified. The number of attributes may be
+ * zero. The names must be unique: the SAX parser shall not include the
+ * same attribute twice. Attributes without values (those declared
+ * #IMPLIED without a value specified in the start tag) will be
+ * omitted from the list. If the attribute name has a namespace prefix, the prefix
+ * will still be attached. The attribute type is one of the strings "CDATA", "ID",
+ * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+ * or "NOTATION" (always in upper case). If the parser has not read a declaration for the attribute,
+ * or if the parser does not report attribute types, then it must
+ * return the value "CDATA" as stated in the XML 1.0 Recommentation
+ * (clause 3.3.3, "Attribute-Value Normalization"). For an enumerated attribute that is not a notation, the
+ * parser will report the type as "NMTOKEN". If the attribute value is a list of tokens (IDREFS,
+ * ENTITIES, or NMTOKENS), the tokens will be concatenated
+ * into a single string separated by whitespace. The return value is the same as the return value for
+ * getType(int). If the attribute name has a namespace prefix in the document,
+ * the application must include the prefix here. The return value is the same as the return value for
+ * getValue(int). If the attribute name has a namespace prefix in the document,
+ * the application must include the prefix here. This interface allows access to a list of attributes in
+ * three different ways: The list will not contain attributes that were declared
+ * #IMPLIED but not specified in the start tag. It will also not
+ * contain attributes used as Namespace declarations (xmlns*) unless
+ * the Some SAX2 parsers may support using an optional feature flag
+ * ( If the namespace-prefixes feature (see above) is
+ * false, access by qualified name may not be available; if
+ * the This interface replaces the now-deprecated SAX1 {@link
+ * org.xml.sax.AttributeList AttributeList} interface, which does not
+ * contain Namespace support. In addition to Namespace support, it
+ * adds the getIndex methods (below). The order of attributes in the list is unspecified, and will
+ * vary from implementation to implementation. Once you know the number of attributes, you can iterate
+ * through the list. The attribute type is one of the strings "CDATA", "ID",
+ * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+ * or "NOTATION" (always in upper case). If the parser has not read a declaration for the attribute,
+ * or if the parser does not report attribute types, then it must
+ * return the value "CDATA" as stated in the XML 1.0 Recommendation
+ * (clause 3.3.3, "Attribute-Value Normalization"). For an enumerated attribute that is not a notation, the
+ * parser will report the type as "NMTOKEN". If the attribute value is a list of tokens (IDREFS,
+ * ENTITIES, or NMTOKENS), the tokens will be concatenated
+ * into a single string with each token separated by a
+ * single space. See {@link #getType(int) getType(int)} for a description
+ * of the possible types. See {@link #getType(int) getType(int)} for a description
+ * of the possible types. See {@link #getValue(int) getValue(int)} for a description
+ * of the possible values. See {@link #getValue(int) getValue(int)} for a description
+ * of the possible values. This is the main interface that most SAX applications
+ * implement: if the application needs to be informed of basic parsing
+ * events, it implements this interface and registers an instance with
+ * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler
+ * setContentHandler} method. The parser uses the instance to report
+ * basic document-related events like the start and end of elements
+ * and character data. The order of events in this interface is very important, and
+ * mirrors the order of information in the document itself. For
+ * example, all of an element's content (character data, processing
+ * instructions, and/or subelements) will appear, in order, between
+ * the startElement event and the corresponding endElement event. This interface is similar to the now-deprecated SAX 1.0
+ * DocumentHandler interface, but it adds support for Namespaces
+ * and for reporting skipped entities (in non-validating XML
+ * processors). Implementors should note that there is also a
+ * In fact, "import ...*" is usually a sign of sloppy programming
+ * anyway, so the user should consider this a feature rather than a
+ * bug. SAX parsers are strongly encouraged (though not absolutely
+ * required) to supply a locator: if it does so, it must supply
+ * the locator to the application by invoking this method before
+ * invoking any of the other methods in the ContentHandler
+ * interface. The locator allows the application to determine the end
+ * position of any document-related event, even if the parser is
+ * not reporting an error. Typically, the application will
+ * use this information for reporting its own errors (such as
+ * character content that does not match an application's
+ * business rules). The information returned by the locator
+ * is probably not sufficient for use with a search engine. Note that the locator will return correct information only
+ * during the invocation SAX event callbacks after
+ * {@link #startDocument startDocument} returns and before
+ * {@link #endDocument endDocument} is called. The
+ * application should not attempt to use it at any other time. The SAX parser will invoke this method only once, before any
+ * other event callbacks (except for {@link #setDocumentLocator
+ * setDocumentLocator}). There is an apparent contradiction between the
+ * documentation for this method and the documentation for {@link
+ * org.xml.sax.ErrorHandler#fatalError}. Until this ambiguity is
+ * resolved in a future major release, clients should make no
+ * assumptions about whether endDocument() will or will not be
+ * invoked when the parser has reported a fatalError() or thrown
+ * an exception. The SAX parser will invoke this method only once, and it will
+ * be the last method invoked during the parse. The parser shall
+ * not invoke this method until it has either abandoned parsing
+ * (because of an unrecoverable error) or reached the end of
+ * input. The information from this event is not necessary for
+ * normal Namespace processing: the SAX XML reader will
+ * automatically replace prefixes for element and attribute
+ * names when the There are cases, however, when applications need to
+ * use prefixes in character data or in attribute values,
+ * where they cannot safely be expanded automatically; the
+ * start/endPrefixMapping event supplies the information
+ * to the application to expand prefixes in those contexts
+ * itself, if necessary. Note that start/endPrefixMapping events are not
+ * guaranteed to be properly nested relative to each other:
+ * all startPrefixMapping events will occur immediately before the
+ * corresponding {@link #startElement startElement} event,
+ * and all {@link #endPrefixMapping endPrefixMapping}
+ * events will occur immediately after the corresponding
+ * {@link #endElement endElement} event,
+ * but their order is not otherwise
+ * guaranteed. There should never be start/endPrefixMapping events for the
+ * "xml" prefix, since it is predeclared and immutable. See {@link #startPrefixMapping startPrefixMapping} for
+ * details. These events will always occur immediately after the
+ * corresponding {@link #endElement endElement} event, but the order of
+ * {@link #endPrefixMapping endPrefixMapping} events is not otherwise
+ * guaranteed. The Parser will invoke this method at the beginning of every
+ * element in the XML document; there will be a corresponding
+ * {@link #endElement endElement} event for every startElement event
+ * (even when the element is empty). All of the element's content will be
+ * reported, in order, before the corresponding endElement
+ * event. This event allows up to three name components for each
+ * element: Any or all of these may be provided, depending on the
+ * values of the http://xml.org/sax/features/namespaces
+ * and the http://xml.org/sax/features/namespace-prefixes
+ * properties: Note that the attribute list provided will contain only
+ * attributes with explicit values (specified or defaulted):
+ * #IMPLIED attributes will be omitted. The attribute list
+ * will contain attributes used for Namespace declarations
+ * (xmlns* attributes) only if the
+ * Like {@link #characters characters()}, attribute values may have
+ * characters that need more than one The SAX parser will invoke this method at the end of every
+ * element in the XML document; there will be a corresponding
+ * {@link #startElement startElement} event for every endElement
+ * event (even when the element is empty). For information on the names, see startElement. The Parser will call this method to report each chunk of
+ * character data. SAX parsers may return all contiguous character
+ * data in a single chunk, or they may split it into several
+ * chunks; however, all of the characters in any single event
+ * must come from the same external entity so that the Locator
+ * provides useful information. The application must not attempt to read from the array
+ * outside of the specified range. Individual characters may consist of more than one Java
+ * Your code should not assume that algorithms using
+ * Note that some parsers will report whitespace in element
+ * content using the {@link #ignorableWhitespace ignorableWhitespace}
+ * method rather than this one (validating parsers must
+ * do so). Validating Parsers must use this method to report each chunk
+ * of whitespace in element content (see the W3C XML 1.0
+ * recommendation, section 2.10): non-validating parsers may also
+ * use this method if they are capable of parsing and using
+ * content models. SAX parsers may return all contiguous whitespace in a single
+ * chunk, or they may split it into several chunks; however, all of
+ * the characters in any single event must come from the same
+ * external entity, so that the Locator provides useful
+ * information. The application must not attempt to read from the array
+ * outside of the specified range. The Parser will invoke this method once for each processing
+ * instruction found: note that processing instructions may occur
+ * before or after the main document element. A SAX parser must never report an XML declaration (XML 1.0,
+ * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+ * using this method. Like {@link #characters characters()}, processing instruction
+ * data may have characters that need more than one The Parser will invoke this method each time the entity is
+ * skipped. Non-validating processors may skip entities if they
+ * have not seen the declarations (because, for example, the
+ * entity was declared in an external DTD subset). All processors
+ * may skip external entities, depending on the values of the
+ * If a SAX application needs information about notations and
+ * unparsed entities, then the application implements this
+ * interface and registers an instance with the SAX parser using
+ * the parser's setDTDHandler method. The parser uses the
+ * instance to report notation and unparsed entity declarations to
+ * the application. Note that this interface includes only those DTD events that
+ * the XML recommendation requires processors to report:
+ * notation and unparsed entity declarations. The SAX parser may report these events in any order, regardless
+ * of the order in which the notations and unparsed entities were
+ * declared; however, all DTD events must be reported after the
+ * document handler's startDocument event, and before the first
+ * startElement event.
+ * (If the {@link org.xml.sax.ext.LexicalHandler LexicalHandler} is
+ * used, these events must also be reported before the endDTD event.)
+ * It is up to the application to store the information for
+ * future use (perhaps in a hash table or object tree).
+ * If the application encounters attributes of type "NOTATION",
+ * "ENTITY", or "ENTITIES", it can use the information that it
+ * obtained through this interface to find the entity and/or
+ * notation corresponding with the attribute value. It is up to the application to record the notation for later
+ * reference, if necessary;
+ * notations may appear as attribute values and in unparsed entity
+ * declarations, and are sometime used with processing instruction
+ * target names. At least one of publicId and systemId must be non-null.
+ * If a system identifier is present, and it is a URL, the SAX
+ * parser must resolve it fully before passing it to the
+ * application through this event. There is no guarantee that the notation declaration will be
+ * reported before any unparsed entities that use it. Note that the notation name corresponds to a notation
+ * reported by the {@link #notationDecl notationDecl} event.
+ * It is up to the application to record the entity for later
+ * reference, if necessary;
+ * unparsed entities may appear as attribute values.
+ * If the system identifier is a URL, the parser must resolve it
+ * fully before passing it to the application. This was the main event-handling interface for SAX1; in
+ * SAX2, it has been replaced by {@link org.xml.sax.ContentHandler
+ * ContentHandler}, which provides Namespace support and reporting
+ * of skipped entities. This interface is included in SAX2 only
+ * to support legacy SAX1 applications. The order of events in this interface is very important, and
+ * mirrors the order of information in the document itself. For
+ * example, all of an element's content (character data, processing
+ * instructions, and/or subelements) will appear, in order, between
+ * the startElement event and the corresponding endElement event. Application writers who do not want to implement the entire
+ * interface can derive a class from HandlerBase, which implements
+ * the default functionality; parser writers can instantiate
+ * HandlerBase to obtain a default handler. The application can find
+ * the location of any document event using the Locator interface
+ * supplied by the Parser through the setDocumentLocator method. SAX parsers are strongly encouraged (though not absolutely
+ * required) to supply a locator: if it does so, it must supply
+ * the locator to the application by invoking this method before
+ * invoking any of the other methods in the DocumentHandler
+ * interface. The locator allows the application to determine the end
+ * position of any document-related event, even if the parser is
+ * not reporting an error. Typically, the application will
+ * use this information for reporting its own errors (such as
+ * character content that does not match an application's
+ * business rules). The information returned by the locator
+ * is probably not sufficient for use with a search engine. Note that the locator will return correct information only
+ * during the invocation of the events in this interface. The
+ * application should not attempt to use it at any other time. The SAX parser will invoke this method only once, before any
+ * other methods in this interface or in DTDHandler (except for
+ * setDocumentLocator). The SAX parser will invoke this method only once, and it will
+ * be the last method invoked during the parse. The parser shall
+ * not invoke this method until it has either abandoned parsing
+ * (because of an unrecoverable error) or reached the end of
+ * input. The Parser will invoke this method at the beginning of every
+ * element in the XML document; there will be a corresponding
+ * endElement() event for every startElement() event (even when the
+ * element is empty). All of the element's content will be
+ * reported, in order, before the corresponding endElement()
+ * event. If the element name has a namespace prefix, the prefix will
+ * still be attached. Note that the attribute list provided will
+ * contain only attributes with explicit values (specified or
+ * defaulted): #IMPLIED attributes will be omitted. The SAX parser will invoke this method at the end of every
+ * element in the XML document; there will be a corresponding
+ * startElement() event for every endElement() event (even when the
+ * element is empty). If the element name has a namespace prefix, the prefix will
+ * still be attached to the name. The Parser will call this method to report each chunk of
+ * character data. SAX parsers may return all contiguous character
+ * data in a single chunk, or they may split it into several
+ * chunks; however, all of the characters in any single event
+ * must come from the same external entity, so that the Locator
+ * provides useful information. The application must not attempt to read from the array
+ * outside of the specified range. Note that some parsers will report whitespace using the
+ * ignorableWhitespace() method rather than this one (validating
+ * parsers must do so). Validating Parsers must use this method to report each chunk
+ * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+ * section 2.10): non-validating parsers may also use this method
+ * if they are capable of parsing and using content models. SAX parsers may return all contiguous whitespace in a single
+ * chunk, or they may split it into several chunks; however, all of
+ * the characters in any single event must come from the same
+ * external entity, so that the Locator provides useful
+ * information. The application must not attempt to read from the array
+ * outside of the specified range. The Parser will invoke this method once for each processing
+ * instruction found: note that processing instructions may occur
+ * before or after the main document element. A SAX parser should never report an XML declaration (XML 1.0,
+ * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+ * using this method. If a SAX application needs to implement customized handling
+ * for external entities, it must implement this interface and
+ * register an instance with the SAX driver using the
+ * {@link org.xml.sax.XMLReader#setEntityResolver setEntityResolver}
+ * method. The XML reader will then allow the application to intercept any
+ * external entities (including the external DTD subset and external
+ * parameter entities, if any) before including them. Many SAX applications will not need to implement this interface,
+ * but it will be especially useful for applications that build
+ * XML documents from databases or other specialised input sources,
+ * or for applications that use URI types other than URLs. The following resolver would provide the application
+ * with a special character stream for the entity with the system
+ * identifier "http://www.myhost.com/today": The application can also use this interface to redirect system
+ * identifiers to local URIs or to look up replacements in a catalog
+ * (possibly by using the public identifier). The parser will call this method before opening any external
+ * entity except the top-level document entity. Such entities include
+ * the external DTD subset and external parameter entities referenced
+ * within the DTD (in either case, only if the parser reads external
+ * parameter entities), and external general entities referenced
+ * within the document element (if the parser reads external general
+ * entities). The application may request that the parser locate
+ * the entity itself, that it use an alternative URI, or that it
+ * use data provided by the application (as a character or byte
+ * input stream). Application writers can use this method to redirect external
+ * system identifiers to secure and/or local URIs, to look up
+ * public identifiers in a catalogue, or to read an entity from a
+ * database or other input source (including, for example, a dialog
+ * box). Neither XML nor SAX specifies a preferred policy for using
+ * public or system IDs to resolve resources. However, SAX specifies
+ * how to interpret any InputSource returned by this method, and that
+ * if none is returned, then the system ID will be dereferenced as
+ * a URL. If the system identifier is a URL, the SAX parser must
+ * resolve it fully before reporting it to the application. If a SAX application needs to implement customized error
+ * handling, it must implement this interface and then register an
+ * instance with the XML reader using the
+ * {@link org.xml.sax.XMLReader#setErrorHandler setErrorHandler}
+ * method. The parser will then report all errors and warnings
+ * through this interface. WARNING: If an application does not
+ * register an ErrorHandler, XML parsing errors will go unreported,
+ * except that SAXParseExceptions will be thrown for fatal errors.
+ * In order to detect validity errors, an ErrorHandler that does something
+ * with {@link #error error()} calls must be registered. For XML processing errors, a SAX driver must use this interface
+ * in preference to throwing an exception: it is up to the application
+ * to decide whether to throw an exception for different types of
+ * errors and warnings. Note, however, that there is no requirement that
+ * the parser continue to report additional errors after a call to
+ * {@link #fatalError fatalError}. In other words, a SAX driver class
+ * may throw an exception after reporting any fatalError.
+ * Also parsers may throw appropriate exceptions for non-XML errors.
+ * For example, {@link XMLReader#parse XMLReader.parse()} would throw
+ * an IOException for errors accessing entities or the document. SAX parsers will use this method to report conditions that
+ * are not errors or fatal errors as defined by the XML
+ * recommendation. The default behaviour is to take no
+ * action. The SAX parser must continue to provide normal parsing events
+ * after invoking this method: it should still be possible for the
+ * application to process the document through to the end. Filters may use this method to report other, non-XML warnings
+ * as well. This corresponds to the definition of "error" in section 1.2
+ * of the W3C XML 1.0 Recommendation. For example, a validating
+ * parser would use this callback to report the violation of a
+ * validity constraint. The default behaviour is to take no
+ * action. The SAX parser must continue to provide normal parsing
+ * events after invoking this method: it should still be possible
+ * for the application to process the document through to the end.
+ * If the application cannot do so, then the parser should report
+ * a fatal error even if the XML recommendation does not require
+ * it to do so. Filters may use this method to report other, non-XML errors
+ * as well. There is an apparent contradiction between the
+ * documentation for this method and the documentation for {@link
+ * org.xml.sax.ContentHandler#endDocument}. Until this ambiguity
+ * is resolved in a future major release, clients should make no
+ * assumptions about whether endDocument() will or will not be
+ * invoked when the parser has reported a fatalError() or thrown
+ * an exception. This corresponds to the definition of "fatal error" in
+ * section 1.2 of the W3C XML 1.0 Recommendation. For example, a
+ * parser would use this callback to report the violation of a
+ * well-formedness constraint. The application must assume that the document is unusable
+ * after the parser has invoked this method, and should continue
+ * (if at all) only for the sake of collecting additional error
+ * messages: in fact, SAX parsers are free to stop reporting any
+ * other events once this method has been invoked. This class implements the default behaviour for four SAX1
+ * interfaces: EntityResolver, DTDHandler, DocumentHandler,
+ * and ErrorHandler. It is now obsolete, but is included in SAX2 to
+ * support legacy SAX1 applications. SAX2 applications should use
+ * the {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}
+ * class instead. Application writers can extend this class when they need to
+ * implement only part of an interface; parser writers can
+ * instantiate this class to provide default handlers when the
+ * application has not supplied its own. Note that the use of this class is optional. Always return null, so that the parser will use the system
+ * identifier provided in the XML document. This method implements
+ * the SAX default behaviour: application writers can override it
+ * in a subclass to do special translations such as catalog lookups
+ * or URI redirection. By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to keep track of the notations
+ * declared in a document. By default, do nothing. Application writers may override this
+ * method in a subclass to keep track of the unparsed entities
+ * declared in a document. By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to store the locator for use
+ * with other document events. By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the beginning
+ * of a document (such as allocating the root node of a tree or
+ * creating an output file). By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the beginning
+ * of a document (such as finalising a tree or closing an output
+ * file). By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the start of
+ * each element (such as allocating a new tree node or writing
+ * output to a file). By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the end of
+ * each element (such as finalising a tree node or writing
+ * output to a file). By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of character data
+ * (such as adding the data to a node or buffer, or printing it to
+ * a file). By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of ignorable
+ * whitespace (such as adding data to a node or buffer, or printing
+ * it to a file). By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions for each
+ * processing instruction, such as setting status variables or
+ * invoking other methods. The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each warning, such as inserting the message in a log file or
+ * printing it to the console. The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each error, such as inserting the message in a log file or
+ * printing it to the console. The default implementation throws a SAXParseException.
+ * Application writers may override this method in a subclass if
+ * they need to take specific actions for each fatal error (such as
+ * collecting all of the errors into a single report): in any case,
+ * the application must stop all regular processing when this
+ * method is invoked, since the document is no longer reliable, and
+ * the parser may no longer report parsing events. This class allows a SAX application to encapsulate information
+ * about an input source in a single object, which may include
+ * a public identifier, a system identifier, a byte stream (possibly
+ * with a specified encoding), and/or a character stream. There are two places that the application can deliver an
+ * input source to the parser: as the argument to the Parser.parse
+ * method, or as the return value of the EntityResolver.resolveEntity
+ * method. The SAX parser will use the InputSource object to determine how
+ * to read XML input. If there is a character stream available, the
+ * parser will read that stream directly, disregarding any text
+ * encoding declaration found in that stream.
+ * If there is no character stream, but there is
+ * a byte stream, the parser will use that byte stream, using the
+ * encoding specified in the InputSource or else (if no encoding is
+ * specified) autodetecting the character encoding using an algorithm
+ * such as the one in the XML specification. If neither a character
+ * stream nor a
+ * byte stream is available, the parser will attempt to open a URI
+ * connection to the resource identified by the system
+ * identifier. An InputSource object belongs to the application: the SAX parser
+ * shall never modify it in any way (it may modify a copy if
+ * necessary). However, standard processing of both byte and
+ * character streams is to close them on as part of end-of-parse cleanup,
+ * so applications should not attempt to re-use such streams after they
+ * have been handed to a parser. Applications may use setPublicId to include a
+ * public identifier as well, or setEncoding to specify
+ * the character encoding, if known. If the system identifier is a URL, it must be fully
+ * resolved (it may not be a relative URL). Application writers should use setSystemId() to provide a base
+ * for resolving relative URIs, may use setPublicId to include a
+ * public identifier, and may use setEncoding to specify the object's
+ * character encoding. Application writers should use setSystemId() to provide a base
+ * for resolving relative URIs, and may use setPublicId to include a
+ * public identifier. The character stream shall not include a byte order mark. The public identifier is always optional: if the application
+ * writer includes one, it will be provided as part of the
+ * location information. The system identifier is optional if there is a byte stream
+ * or a character stream, but it is still useful to provide one,
+ * since the application can use it to resolve relative URIs
+ * and can include it in error messages and warnings (the parser
+ * will attempt to open a connection to the URI only if
+ * there is no byte stream or character stream specified). If the application knows the character encoding of the
+ * object pointed to by the system identifier, it can register
+ * the encoding using the setEncoding method. If the system identifier is a URL, it must be fully
+ * resolved (it may not be a relative URL). The getEncoding method will return the character encoding
+ * of the object pointed to, or null if unknown. If the system ID is a URL, it will be fully resolved. The SAX parser will ignore this if there is also a character
+ * stream specified, but it will use a byte stream in preference
+ * to opening a URI connection itself. If the application knows the character encoding of the
+ * byte stream, it should set it with the setEncoding method. The getEncoding method will return the character
+ * encoding for this byte stream, or null if unknown. The encoding must be a string acceptable for an
+ * XML encoding declaration (see section 4.3.3 of the XML 1.0
+ * recommendation). This method has no effect when the application provides a
+ * character stream. If there is a character stream specified, the SAX parser
+ * will ignore any byte stream and will not attempt to open
+ * a URI connection to the system identifier. If a SAX parser provides location information to the SAX
+ * application, it does so by implementing this interface and then
+ * passing an instance to the application using the content
+ * handler's {@link org.xml.sax.ContentHandler#setDocumentLocator
+ * setDocumentLocator} method. The application can use the
+ * object to obtain the location of any other SAX event
+ * in the XML source document. Note that the results returned by the object will be valid only
+ * during the scope of each callback method: the application
+ * will receive unpredictable results if it attempts to use the
+ * locator at any other time, or after parsing completes. SAX parsers are not required to supply a locator, but they are
+ * very strongly encouraged to do so. If the parser supplies a
+ * locator, it must do so before reporting any other document events.
+ * If no locator has been set by the time the application receives
+ * the {@link org.xml.sax.ContentHandler#startDocument startDocument}
+ * event, the application should assume that a locator is not
+ * available. The return value is the public identifier of the document
+ * entity or of the external parsed entity in which the markup
+ * triggering the event appears. The return value is the system identifier of the document
+ * entity or of the external parsed entity in which the markup
+ * triggering the event appears. If the system identifier is a URL, the parser must resolve it
+ * fully before passing it to the application. For example, a file
+ * name must always be provided as a file:... URL, and other
+ * kinds of relative URI are also resolved against their bases. Warning: The return value from the method
+ * is intended only as an approximation for the sake of diagnostics;
+ * it is not intended to provide sufficient information
+ * to edit the character content of the original XML document.
+ * In some cases, these "line" numbers match what would be displayed
+ * as columns, and in others they may not match the source text
+ * due to internal entity expansion. The return value is an approximation of the line number
+ * in the document entity or external parsed entity where the
+ * markup triggering the event appears. If possible, the SAX driver should provide the line position
+ * of the first character after the text associated with the document
+ * event. The first line is line 1. Warning: The return value from the method
+ * is intended only as an approximation for the sake of diagnostics;
+ * it is not intended to provide sufficient information
+ * to edit the character content of the original XML document.
+ * For example, when lines contain combining character sequences, wide
+ * characters, surrogate pairs, or bi-directional text, the value may
+ * not correspond to the column in a text editor's display. The return value is an approximation of the column number
+ * in the document entity or external parsed entity where the
+ * markup triggering the event appears. If possible, the SAX driver should provide the line position
+ * of the first character after the text associated with the document
+ * event. The first column in each line is column 1. This was the main event supplier interface for SAX1; it has
+ * been replaced in SAX2 by {@link org.xml.sax.XMLReader XMLReader},
+ * which includes Namespace support and sophisticated configurability
+ * and extensibility. All SAX1 parsers must implement this basic interface: it allows
+ * applications to register handlers for different types of events
+ * and to initiate a parse from a URI, or a character stream. All SAX1 parsers must also implement a zero-argument constructor
+ * (though other constructors are also allowed). SAX1 parsers are reusable but not re-entrant: the application
+ * may reuse a parser object (possibly with a different input source)
+ * once the first parse has completed successfully, but it may not
+ * invoke the parse() methods recursively within a parse. SAX parsers are not required to provide localisation for errors
+ * and warnings; if they cannot support the requested locale,
+ * however, they must throw a SAX exception. Applications may
+ * not request a locale change in the middle of a parse. If the application does not register an entity resolver, the
+ * SAX parser will resolve system identifiers and open connections
+ * to entities itself (this is the default behaviour implemented in
+ * HandlerBase). Applications may register a new or different entity resolver
+ * in the middle of a parse, and the SAX parser must begin using
+ * the new resolver immediately. If the application does not register a DTD handler, all DTD
+ * events reported by the SAX parser will be silently
+ * ignored (this is the default behaviour implemented by
+ * HandlerBase). Applications may register a new or different
+ * handler in the middle of a parse, and the SAX parser must
+ * begin using the new handler immediately. If the application does not register a document handler, all
+ * document events reported by the SAX parser will be silently
+ * ignored (this is the default behaviour implemented by
+ * HandlerBase). Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately. If the application does not register an error event handler,
+ * all error events reported by the SAX parser will be silently
+ * ignored, except for fatalError, which will throw a SAXException
+ * (this is the default behaviour implemented by HandlerBase). Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately. The application can use this method to instruct the SAX parser
+ * to begin parsing an XML document from any valid input
+ * source (a character stream, a byte stream, or a URI). Applications may not invoke this method while a parse is in
+ * progress (they should create a new Parser instead for each
+ * additional XML document). Once a parse is complete, an
+ * application may reuse the same Parser object, possibly with a
+ * different input source. This method is a shortcut for the common case of reading a
+ * document from a system identifier. It is the exact
+ * equivalent of the following: If the system identifier is a URL, it must be fully resolved
+ * by the application before it is passed to the parser. This class can contain basic error or warning information from
+ * either the XML parser or the application: a parser writer or
+ * application writer can subclass it to provide additional
+ * functionality. SAX handlers may throw this exception or
+ * any exception subclassed from it. If the application needs to pass through other types of
+ * exceptions, it must wrap those exceptions in a SAXException
+ * or an exception derived from a SAXException. If the parser or application needs to include information about a
+ * specific location in an XML document, it should use the
+ * {@link org.xml.sax.SAXParseException SAXParseException} subclass. The existing exception will be embedded in the new
+ * one, and its message will become the default message for
+ * the SAXException. The existing exception will be embedded in the new
+ * one, but the new exception will have its own message. If there is an embedded exception, and if the SAXException
+ * has no detail message of its own, this method will return
+ * the detail message from the embedded exception. An XMLReader will throw this exception when it finds an
+ * unrecognized feature or property identifier; SAX applications and
+ * extensions may use this class for other, similar purposes. An XMLReader will throw this exception when it recognizes a
+ * feature or property identifier, but cannot perform the requested
+ * operation (setting a state or value). Other SAX2 applications and
+ * extensions may use this class for similar purposes. This exception may include information for locating the error
+ * in the original XML document, as if it came from a {@link Locator}
+ * object. Note that although the application
+ * will receive a SAXParseException as the argument to the handlers
+ * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface,
+ * the application is not actually required to throw the exception;
+ * instead, it can simply read the information in it and take a
+ * different action. Since this exception is a subclass of {@link org.xml.sax.SAXException
+ * SAXException}, it inherits the ability to wrap another exception. This constructor is especially useful when an application is
+ * creating its own exception from within a {@link org.xml.sax.ContentHandler
+ * ContentHandler} callback. This constructor is especially useful when an application is
+ * creating its own exception from within a {@link org.xml.sax.ContentHandler
+ * ContentHandler} callback, and needs to wrap an existing exception that is not a
+ * subclass of {@link org.xml.sax.SAXException SAXException}. This constructor is most useful for parser writers. All parameters except the message are as if
+ * they were provided by a {@link Locator}. For example, if the
+ * system identifier is a URL (including relative filename), the
+ * caller must resolve it fully before creating the exception. This constructor is most useful for parser writers who
+ * need to wrap an exception that is not a subclass of
+ * {@link org.xml.sax.SAXException SAXException}. All parameters except the message and exception are as if
+ * they were provided by a {@link Locator}. For example, if the
+ * system identifier is a URL (including relative filename), the
+ * caller must resolve it fully before creating the exception. If the system identifier is a URL, it will have been resolved
+ * fully. The first line is line 1. The first column in a line is position 1. An XML filter is like an XML reader, except that it obtains its
+ * events from another XML reader rather than a primary source like
+ * an XML document or database. Filters can modify a stream of
+ * events as they pass on to the final application. The XMLFilterImpl helper class provides a convenient base
+ * for creating SAX2 filters, by passing on all {@link org.xml.sax.EntityResolver
+ * EntityResolver}, {@link org.xml.sax.DTDHandler DTDHandler},
+ * {@link org.xml.sax.ContentHandler ContentHandler} and {@link org.xml.sax.ErrorHandler
+ * ErrorHandler} events automatically. This method allows the application to link the filter to
+ * a parent reader (which may be another filter). The argument
+ * may not be null. This method allows the application to query the parent
+ * reader (which may be another filter). It is generally a
+ * bad idea to perform any operations on the parent reader
+ * directly: they should all pass through this filter. Note: despite its name, this interface does
+ * not extend the standard Java {@link java.io.Reader Reader}
+ * interface, because reading XML is a fundamentally different activity
+ * than reading character data. XMLReader is the interface that an XML parser's SAX2 driver must
+ * implement. This interface allows an application to set and
+ * query features and properties in the parser, to register
+ * event handlers for document processing, and to initiate
+ * a document parse. All SAX interfaces are assumed to be synchronous: the
+ * {@link #parse parse} methods must not return until parsing
+ * is complete, and readers must wait for an event-handler callback
+ * to return before reporting the next event. This interface replaces the (now deprecated) SAX 1.0 {@link
+ * org.xml.sax.Parser Parser} interface. The XMLReader interface
+ * contains two important enhancements over the old Parser
+ * interface (as well as some minor ones): There are adapters available to convert a SAX1 Parser to
+ * a SAX2 XMLReader and vice-versa. The feature name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a feature name but
+ * temporarily be unable to return its value.
+ * Some feature values may be available only in specific
+ * contexts, such as before, during, or after a parse.
+ * Also, some feature values may not be programmatically accessible.
+ * (In the case of an adapter for SAX1 {@link Parser}, there is no
+ * implementation-independent way to expose whether the underlying
+ * parser is performing validation, expanding external entities,
+ * and so forth.) All XMLReaders are required to recognize the
+ * http://xml.org/sax/features/namespaces and the
+ * http://xml.org/sax/features/namespace-prefixes feature names. Typical usage is something like this: Implementors are free (and encouraged) to invent their own features,
+ * using names built on their own URIs. The feature name is any fully-qualified URI. It is
+ * possible for an XMLReader to expose a feature value but
+ * to be unable to change the current value.
+ * Some feature values may be immutable or mutable only
+ * in specific contexts, such as before, during, or after
+ * a parse. All XMLReaders are required to support setting
+ * http://xml.org/sax/features/namespaces to true and
+ * http://xml.org/sax/features/namespace-prefixes to false. The property name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a property name but
+ * temporarily be unable to return its value.
+ * Some property values may be available only in specific
+ * contexts, such as before, during, or after a parse. XMLReaders are not required to recognize any specific
+ * property names, though an initial core set is documented for
+ * SAX2. Implementors are free (and encouraged) to invent their own properties,
+ * using names built on their own URIs. The property name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a property name but
+ * to be unable to change the current value.
+ * Some property values may be immutable or mutable only
+ * in specific contexts, such as before, during, or after
+ * a parse. XMLReaders are not required to recognize setting
+ * any specific property names, though a core set is defined by
+ * SAX2. This method is also the standard mechanism for setting
+ * extended handlers. If the application does not register an entity resolver,
+ * the XMLReader will perform its own default resolution. Applications may register a new or different resolver in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * resolver immediately. If the application does not register a DTD handler, all DTD
+ * events reported by the SAX parser will be silently ignored. Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately. If the application does not register a content handler, all
+ * content events reported by the SAX parser will be silently
+ * ignored. Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately. If the application does not register an error handler, all
+ * error events reported by the SAX parser will be silently
+ * ignored; however, normal processing may not continue. It is
+ * highly recommended that all SAX applications implement an
+ * error handler to avoid unexpected bugs. Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately. The application can use this method to instruct the XML
+ * reader to begin parsing an XML document from any valid input
+ * source (a character stream, a byte stream, or a URI). Applications may not invoke this method while a parse is in
+ * progress (they should create a new XMLReader instead for each
+ * nested XML document). Once a parse is complete, an
+ * application may reuse the same XMLReader object, possibly with a
+ * different input source.
+ * Configuration of the XMLReader object (such as handler bindings and
+ * values established for feature flags and properties) is unchanged
+ * by completion of a parse, unless the definition of that aspect of
+ * the configuration explicitly specifies other behavior.
+ * (For example, feature flags or properties exposing
+ * characteristics of the document being parsed.)
+ * During the parse, the XMLReader will provide information
+ * about the XML document through the registered event
+ * handlers. This method is synchronous: it will not return until parsing
+ * has ended. If a client application wants to terminate
+ * parsing early, it should throw an exception. This method is a shortcut for the common case of reading a
+ * document from a system identifier. It is the exact
+ * equivalent of the following: If the system identifier is a URL, it must be fully resolved
+ * by the application before it is passed to the parser. XMLReader implementations are not required to support this
+ * information, and it is not part of core-only SAX2 distributions. Note that if an attribute was defaulted (!isSpecified())
+ * it will of necessity also have been declared (isDeclared())
+ * in the DTD.
+ * Similarly if an attribute's type is anything except CDATA, then it
+ * must have been declared.
+ * Remember that since DTDs do not "understand" namespaces, the
+ * namespace URI associated with an attribute may not have come from
+ * the DTD. The declaration will have applied to the attribute's
+ * qName.
+ *
+ * @param uri The Namespace URI, or the empty string if
+ * the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return true if the attribute was declared in the DTD,
+ * false otherwise.
+ * @exception java.lang.IllegalArgumentException When the
+ * supplied names do not identify an attribute.
+ */
+ public boolean isDeclared (String uri, String localName);
+
+ /**
+ * Returns true unless the attribute value was provided
+ * by DTD defaulting.
+ *
+ * @param index The attribute index (zero-based).
+ * @return true if the value was found in the XML text,
+ * false if the value was provided by DTD defaulting.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not identify an attribute.
+ */
+ public boolean isSpecified (int index);
+
+ /**
+ * Returns true unless the attribute value was provided
+ * by DTD defaulting.
+ *
+ * Remember that since DTDs do not "understand" namespaces, the
+ * namespace URI associated with an attribute may not have come from
+ * the DTD. The declaration will have applied to the attribute's
+ * qName.
+ *
+ * @param uri The Namespace URI, or the empty string if
+ * the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return true if the value was found in the XML text,
+ * false if the value was provided by DTD defaulting.
+ * @exception java.lang.IllegalArgumentException When the
+ * supplied names do not identify an attribute.
+ */
+ public boolean isSpecified (String uri, String localName);
+
+ /**
+ * Returns true unless the attribute value was provided
+ * by DTD defaulting.
+ *
+ * @param qName The XML qualified (prefixed) name.
+ * @return true if the value was found in the XML text,
+ * false if the value was provided by DTD defaulting.
+ * @exception java.lang.IllegalArgumentException When the
+ * supplied name does not identify an attribute.
+ */
+ public boolean isSpecified (String qName);
+}
diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java
new file mode 100644
index 00000000000..ebc9c07d9ae
--- /dev/null
+++ b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java
@@ -0,0 +1,301 @@
+// Attributes2Impl.java - extended AttributesImpl
+// http://www.saxproject.org
+// Public Domain: no warranty.
+// $Id: Attributes2Impl.java,v 1.8 2004/12/11 15:41:10 dog Exp $
+
+package org.xml.sax.ext;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.helpers.AttributesImpl;
+
+
+/**
+ * SAX2 extension helper for additional Attributes information,
+ * implementing the {@link Attributes2} interface.
+ *
+ * This is not part of core-only SAX2 distributions. The specified flag for each attribute will always
+ * be true, unless it has been set to false in the copy constructor
+ * or using {@link #setSpecified}.
+ * Similarly, the declared flag for each attribute will
+ * always be false, except for defaulted attributes (specified
+ * is false), non-CDATA attributes, or when it is set to true using
+ * {@link #setDeclared}.
+ * If you change an attribute's type by hand, you may need to modify
+ * its declared flag to match.
+ * This constructor is especially useful inside a
+ * {@link org.xml.sax.ContentHandler#startElement startElement} event. Unless the attribute type is CDATA, this attribute
+ * is marked as being declared in the DTD. To set that flag's value
+ * to true for CDATA attributes, use {@link #setDeclared}.
+ *
+ * @see AttributesImpl#addAttribute
+ */
+ public void addAttribute (String uri, String localName, String qName,
+ String type, String value)
+ {
+ super.addAttribute (uri, localName, qName, type, value);
+
+ int length = getLength ();
+
+ if (length < specified.length) {
+ boolean newFlags [];
+
+ newFlags = new boolean [length];
+ System.arraycopy (declared, 0, newFlags, 0, declared.length);
+ declared = newFlags;
+
+ newFlags = new boolean [length];
+ System.arraycopy (specified, 0, newFlags, 0, specified.length);
+ specified = newFlags;
+ }
+
+ specified [length - 1] = true;
+ declared [length - 1] = !"CDATA".equals (type);
+ }
+
+
+ // javadoc entirely from superclass
+ public void removeAttribute (int index)
+ {
+ int origMax = getLength () - 1;
+
+ super.removeAttribute (index);
+ if (index != origMax) {
+ System.arraycopy (declared, index + 1, declared, index,
+ origMax - index);
+ System.arraycopy (specified, index + 1, specified, index,
+ origMax - index);
+ }
+ }
+
+
+ /**
+ * Assign a value to the "declared" flag of a specific attribute.
+ * This is normally needed only for attributes of type CDATA,
+ * including attributes whose type is changed to or from CDATA.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param value The desired flag value.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not identify an attribute.
+ * @see #setType
+ */
+ public void setDeclared (int index, boolean value)
+ {
+ if (index < 0 || index >= getLength ())
+ throw new ArrayIndexOutOfBoundsException (
+ "No attribute at index: " + index);
+ declared [index] = value;
+ }
+
+
+ /**
+ * Assign a value to the "specified" flag of a specific attribute.
+ * This is the only way this flag can be cleared, except clearing
+ * by initialization with the copy constructor.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param value The desired flag value.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not identify an attribute.
+ */
+ public void setSpecified (int index, boolean value)
+ {
+ if (index < 0 || index >= getLength ())
+ throw new ArrayIndexOutOfBoundsException (
+ "No attribute at index: " + index);
+ specified [index] = value;
+ }
+}
diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java b/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java
new file mode 100644
index 00000000000..2e8486bc8a6
--- /dev/null
+++ b/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java
@@ -0,0 +1,146 @@
+// DeclHandler.java - Optional handler for DTD declaration events.
+// http://www.saxproject.org
+// Public Domain: no warranty.
+// $Id: DeclHandler.java,v 1.10 2004/12/11 15:41:10 dog Exp $
+
+package org.xml.sax.ext;
+
+import org.xml.sax.SAXException;
+
+
+/**
+ * SAX2 extension handler for DTD declaration events.
+ *
+ * This is an optional extension handler for SAX2 to provide more
+ * complete information about DTD declarations in an XML document.
+ * XML readers are not required to recognize this handler, and it
+ * is not part of core-only SAX2 distributions. Note that data-related DTD declarations (unparsed entities and
+ * notations) are already reported through the {@link
+ * org.xml.sax.DTDHandler DTDHandler} interface. If you are using the declaration handler together with a lexical
+ * handler, all of the events will occur between the
+ * {@link org.xml.sax.ext.LexicalHandler#startDTD startDTD} and the
+ * {@link org.xml.sax.ext.LexicalHandler#endDTD endDTD} events. To set the DeclHandler for an XML reader, use the
+ * {@link org.xml.sax.XMLReader#setProperty setProperty} method
+ * with the property name
+ * The content model will consist of the string "EMPTY", the
+ * string "ANY", or a parenthesised group, optionally followed
+ * by an occurrence indicator. The model will be normalized so
+ * that all parameter entities are fully resolved and all whitespace
+ * is removed,and will include the enclosing parentheses. Other
+ * normalization (such as removing redundant parentheses or
+ * simplifying occurrence indicators) is at the discretion of the
+ * parser. Only the effective (first) declaration for an attribute will
+ * be reported. The type will be one of the strings "CDATA",
+ * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY",
+ * "ENTITIES", a parenthesized token group with
+ * the separator "|" and all whitespace removed, or the word
+ * "NOTATION" followed by a space followed by a parenthesized
+ * token group with all whitespace removed. The value will be the value as reported to applications,
+ * appropriately normalized and with entity and character
+ * references expanded. Only the effective (first) declaration for each entity
+ * will be reported. All parameter entities in the value
+ * will be expanded, but general entities will not. Only the effective (first) declaration for each entity
+ * will be reported. If the system identifier is a URL, the parser must resolve it
+ * fully before passing it to the application. Note: this class might yet learn that the
+ * ContentHandler.setDocumentLocator() call might be passed a
+ * {@link Locator2} object, and that the
+ * ContentHandler.startElement() call might be passed a
+ * {@link Attributes2} object.
+ *
+ * @since SAX 2.0 (extensions 1.1 alpha)
+ * @author David Brownell
+ * @version TBS
+ */
+public class DefaultHandler2 extends DefaultHandler
+ implements LexicalHandler, DeclHandler, EntityResolver2
+{
+ /** Constructs a handler which ignores all parsing events. */
+ public DefaultHandler2 () { }
+
+
+ // SAX2 ext-1.0 LexicalHandler
+
+ public void startCDATA ()
+ throws SAXException
+ {}
+
+ public void endCDATA ()
+ throws SAXException
+ {}
+
+ 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 comment (char ch [], int start, int length)
+ throws SAXException
+ { }
+
+
+ // SAX2 ext-1.0 DeclHandler
+
+ public void attributeDecl (String eName, String aName,
+ String type, String mode, String value)
+ throws SAXException
+ {}
+
+ public void elementDecl (String name, String model)
+ throws SAXException
+ {}
+
+ public void externalEntityDecl (String name,
+ String publicId, String systemId)
+ throws SAXException
+ {}
+
+ public void internalEntityDecl (String name, String value)
+ throws SAXException
+ {}
+
+ // SAX2 ext-1.1 EntityResolver2
+
+ /**
+ * Tells the parser that if no external subset has been declared
+ * in the document text, none should be used.
+ */
+ public InputSource getExternalSubset (String name, String baseURI)
+ throws SAXException, IOException
+ { return null; }
+
+ /**
+ * Tells the parser to resolve the systemId against the baseURI
+ * and read the entity text from that resulting absolute URI.
+ * Note that because the older
+ * {@link DefaultHandler#resolveEntity DefaultHandler.resolveEntity()},
+ * method is overridden to call this one, this method may sometimes
+ * be invoked with null name and baseURI, and
+ * with the systemId already absolutized.
+ */
+ public InputSource resolveEntity (String name, String publicId,
+ String baseURI, String systemId)
+ throws SAXException, IOException
+ { return null; }
+
+ // SAX1 EntityResolver
+
+ /**
+ * Invokes
+ * {@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()}
+ * with null entity name and base URI.
+ * You only need to override that method to use this class.
+ */
+ public InputSource resolveEntity (String publicId, String systemId)
+ throws SAXException, IOException
+ { return resolveEntity (null, publicId, null, systemId); }
+}
diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java
new file mode 100644
index 00000000000..57b0d83e852
--- /dev/null
+++ b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java
@@ -0,0 +1,197 @@
+// EntityResolver2.java - Extended SAX entity resolver.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: EntityResolver2.java,v 1.1 2004/12/23 22:38:42 mark Exp $
+
+package org.xml.sax.ext;
+
+import java.io.IOException;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xml.sax.SAXException;
+
+
+/**
+ * Extended interface for mapping external entity references to input
+ * sources, or providing a missing external subset. The
+ * {@link XMLReader#setEntityResolver XMLReader.setEntityResolver()} method
+ * is used to provide implementations of this interface to parsers.
+ * When a parser uses the methods in this interface, the
+ * {@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()}
+ * method (in this interface) is used instead of the older (SAX 1.0)
+ * {@link EntityResolver#resolveEntity EntityResolver.resolveEntity()} method.
+ *
+ * If a SAX application requires the customized handling which this
+ * interface defines for external entities, it must ensure that it uses
+ * an XMLReader with the
+ * http://xml.org/sax/features/use-entity-resolver2 feature flag
+ * set to true (which is its default value when the feature is
+ * recognized). If that flag is unrecognized, or its value is false,
+ * or the resolver does not implement this interface, then only the
+ * {@link EntityResolver} method will be used.
+ * That supports three categories of application that modify entity
+ * resolution. Old Style applications won't know about this interface;
+ * they will provide an EntityResolver.
+ * Transitional Mode provide an EntityResolver2 and automatically
+ * get the benefit of its methods in any systems (parsers or other tools)
+ * supporting it, due to polymorphism.
+ * Both Old Style and Transitional Mode applications will
+ * work with any SAX2 parser.
+ * New style applications will fail to run except on SAX2 parsers
+ * that support this particular feature.
+ * They will insist that feature flag have a value of "true", and the
+ * EntityResolver2 implementation they provide might throw an exception
+ * if the original SAX 1.0 style entity resolution method is invoked.
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * public void startElement (String name, AttributeList atts) {
+ * for (int i = 0; i < atts.getLength(); i++) {
+ * String name = atts.getName(i);
+ * String type = atts.getType(i);
+ * String value = atts.getValue(i);
+ * [...]
+ * }
+ * }
+ *
+ *
+ *
+ * public void startElement (String name, AttributeList atts) {
+ * String identifier = atts.getValue("id");
+ * String label = atts.getValue("label");
+ * [...]
+ * }
+ *
+ *
+ * @deprecated This interface has been replaced by the SAX2
+ * {@link org.xml.sax.Attributes Attributes}
+ * interface, which includes Namespace support.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.DocumentHandler#startElement startElement
+ * @see org.xml.sax.helpers.AttributeListImpl AttributeListImpl
+ */
+public interface AttributeList {
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Iteration methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the number of attributes in this list.
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ *
+ *
+ * http://xml.org/sax/features/namespace-prefixes
+ * feature is set to true (it is false by
+ * default).
+ * Because SAX2 conforms to the original "Namespaces in XML"
+ * recommendation, it normally does not
+ * give namespace declaration attributes a namespace URI.
+ * http://xml.org/sax/features/xmlns-uris) to request
+ * that those attributes be given URIs, conforming to a later
+ * backwards-incompatible revision of that recommendation. (The
+ * attribute's "local name" will be the prefix, or "xmlns" when
+ * defining a default element namespace.) For portability, handler
+ * code should always resolve that conflict, rather than requiring
+ * parsers that can change the setting of that feature flag. http://xml.org/sax/features/namespaces feature is
+ * false, access by Namespace-qualified names may not be
+ * available.
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ * ContentHandler class in the java.net
+ * package; that means that it's probably a bad idea to doimport java.net.*;
+ * import org.xml.sax.*;
+ *
+ *
+ * http://xml.org/sax/features/namespaces
+ * feature is true (the default).
+ *
+ *
+ *
+ *
+ *
+ * http://xml.org/sax/features/namespace-prefixes
+ * property is true (it is false by default, and support for a
+ * true value is optional).char value. char value. There are two important cases where this
+ * happens, because characters can't be represented in just sixteen bits.
+ * In one case, characters are represented in a Surrogate Pair,
+ * using two special Unicode values. Such characters are in the so-called
+ * "Astral Planes", with a code point above U+FFFF. A second case involves
+ * composite characters, such as a base character combining with one or
+ * more accent characters. char-at-a-time idioms will be working in character
+ * units; in some cases they will split characters. This is relevant
+ * wherever XML permits arbitrary characters, such as attribute values,
+ * processing instruction data, and comments as well as in data reported
+ * from this method. It's also generally relevant whenever Java code
+ * manipulates internationalized text; the issue isn't unique to XML.char
+ * value. http://xml.org/sax/features/external-general-entities
+ * and the
+ * http://xml.org/sax/features/external-parameter-entities
+ * properties.
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * import org.xml.sax.EntityResolver;
+ * import org.xml.sax.InputSource;
+ *
+ * public class MyResolver implements EntityResolver {
+ * public InputSource resolveEntity (String publicId, String systemId)
+ * {
+ * if (systemId.equals("http://www.myhost.com/today")) {
+ * // return a special input source
+ * MyReader reader = new MyReader();
+ * return new InputSource(reader);
+ * } else {
+ * // use the default behaviour
+ * return null;
+ * }
+ * }
+ * }
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ * char values since
+ * the last line end.
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * parse(new InputSource(systemId));
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ *
+ *
+ *
+ *
+ * XMLReader r = new MySAXDriver();
+ *
+ * // try to activate validation
+ * try {
+ * r.setFeature("http://xml.org/sax/features/validation", true);
+ * } catch (SAXException e) {
+ * System.err.println("Cannot activate validation.");
+ * }
+ *
+ * // register event handlers
+ * r.setContentHandler(new MyContentHandler());
+ * r.setErrorHandler(new MyErrorHandler());
+ *
+ * // parse the first document
+ * try {
+ * r.parse("http://www.foo.com/mydoc.xml");
+ * } catch (IOException e) {
+ * System.err.println("I/O exception reading XML document");
+ * } catch (SAXException e) {
+ * System.err.println("XML exception reading document.");
+ * }
+ *
+ *
+ *
+ * parse(new InputSource(systemId));
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ * See http://www.saxproject.org
+ * for further information.
+ *
+ *
+ * http://xml.org/sax/properties/declaration-handler
+ * and an object implementing this interface (or null) as the value.
+ * If the reader does not report declaration events, it will throw a
+ * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
+ * when you attempt to register the handler.
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ *
+ *
+ *
+ * This module, both source code and documentation, is in the
+ * Public Domain, and comes with NO WARRANTY.
+ *
+ *
+ *
This method can also be used with documents that have no DOCTYPE + * declaration. When the root element is encountered, + * but no DOCTYPE declaration has been seen, this method is + * invoked. If it returns a value for the external subset, that root + * element is declared to be the root element, giving the effect of + * splicing a DOCTYPE declaration at the end the prolog of a document + * that could not otherwise be valid. The sequence of parser callbacks + * in that case logically resembles this:
+ * + *
+ * ... comments and PIs from the prolog (as usual)
+ * startDTD ("rootName", source.getPublicId (), source.getSystemId ());
+ * startEntity ("[dtd]");
+ * ... declarations, comments, and PIs from the external subset
+ * endEntity ("[dtd]");
+ * endDTD ();
+ * ... then the rest of the document (as usual)
+ * startElement (..., "rootName", ...);
+ *
+ *
+ * Note that the InputSource gets no further resolution. + * Implementations of this method may wish to invoke + * {@link #resolveEntity resolveEntity()} to gain benefits such as use + * of local caches of DTD entities. Also, this method will never be + * used by a (non-validating) processor that is not including external + * parameter entities.
+ * + *Uses for this method include facilitating data validation when + * interoperating with XML processors that would always require + * undesirable network accesses for external entities, or which for + * other reasons adopt a "no DTDs" policy. + * Non-validation motives include forcing documents to include DTDs so + * that attributes are handled consistently. + * For example, an XPath processor needs to know which attibutes have + * type "ID" before it can process a widely used type of reference.
+ * + *Warning: Returning an external subset modifies + * the input document. By providing definitions for general entities, + * it can make a malformed document appear to be well formed. + *
+ * + * @param name Identifies the document root element. This name comes + * from a DOCTYPE declaration (where available) or from the actual + * root element. + * @param baseURI The document's base URI, serving as an additional + * hint for selecting the external subset. This is always an absolute + * URI, unless it is null because the XMLReader was given an InputSource + * without one. + * + * @return An InputSource object describing the new external subset + * to be used by the parser, or null to indicate that no external + * subset is provided. + * + * @exception SAXException Any SAX exception, possibly wrapping + * another exception. + * @exception IOException Probably indicating a failure to create + * a new InputStream or Reader, or an illegal URL. + */ + public InputSource getExternalSubset (String name, String baseURI) + throws SAXException, IOException; + + /** + * Allows applications to map references to external entities into input + * sources, or tell the parser it should use conventional URI resolution. + * This method is only called for external entities which have been + * properly declared. + * This method provides more flexibility than the {@link EntityResolver} + * interface, supporting implementations of more complex catalogue + * schemes such as the one defined by the OASIS XML Catalogs specification. + * + *Parsers configured to use this resolver method will call it + * to determine the input source to use for any external entity + * being included because of a reference in the XML text. + * That excludes the document entity, and any external entity returned + * by {@link #getExternalSubset getExternalSubset()}. + * When a (non-validating) processor is configured not to include + * a class of entities (parameter or general) through use of feature + * flags, this method is not invoked for such entities.
+ * + *Note that the entity naming scheme used here is the same one + * used in the {@link LexicalHandler}, or in the {@link + org.xml.sax.ContentHandler#skippedEntity + ContentHandler.skippedEntity()} + * method.
+ * + * @param name Identifies the external entity being resolved. + * Either "[dtd]" for the external subset, or a name starting + * with "%" to indicate a parameter entity, or else the name of + * a general entity. This is never null when invoked by a SAX2 + * parser. + * @param publicId The public identifier of the external entity being + * referenced (normalized as required by the XML specification), or + * null if none was supplied. + * @param baseURI The URI with respect to which relative systemIDs + * are interpreted. This is always an absolute URI, unless it is + * null (likely because the XMLReader was given an InputSource without + * one). This URI is defined by the XML specification to be the one + * associated with the "<" starting the relevant declaration. + * @param systemId The system identifier of the external entity + * being referenced; either a relative or absolute URI. + * This is never null when invoked by a SAX2 parser; only declared + * entities, and any external subset, are resolved by such parsers. + * + * @return An InputSource object describing the new input source to + * be used by the parser. Returning null directs the parser to + * resolve the system ID against the base URI and open a connection + * to resulting URI. + * + * @exception SAXException Any SAX exception, possibly wrapping + * another exception. + * @exception IOException Probably indicating a failure to create + * a new InputStream or Reader, or an illegal URL. + */ + public InputSource resolveEntity ( + String name, + String publicId, + String baseURI, + String systemId + ) throws SAXException, IOException; +} diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java b/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java new file mode 100644 index 00000000000..db020d24c78 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java @@ -0,0 +1,212 @@ +// LexicalHandler.java - optional handler for lexical parse events. +// http://www.saxproject.org +// Public Domain: no warranty. +// $Id: LexicalHandler.java,v 1.10 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.ext; + +import org.xml.sax.SAXException; + +/** + * SAX2 extension handler for lexical events. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This is an optional extension handler for SAX2 to provide + * lexical information about an XML document, such as comments + * and CDATA section boundaries. + * XML readers are not required to recognize this handler, and it + * is not part of core-only SAX2 distributions.
+ * + *The events in the lexical handler apply to the entire document, + * not just to the document element, and all lexical handler events + * must appear between the content handler's startDocument and + * endDocument events.
+ * + *To set the LexicalHandler for an XML reader, use the
+ * {@link org.xml.sax.XMLReader#setProperty setProperty} method
+ * with the property name
+ * http://xml.org/sax/properties/lexical-handler
+ * and an object implementing this interface (or null) as the value.
+ * If the reader does not report lexical events, it will throw a
+ * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
+ * when you attempt to register the handler.
This method is intended to report the beginning of the + * DOCTYPE declaration; if the document has no DOCTYPE declaration, + * this method will not be invoked.
+ * + *All declarations reported through + * {@link org.xml.sax.DTDHandler DTDHandler} or + * {@link org.xml.sax.ext.DeclHandler DeclHandler} events must appear + * between the startDTD and {@link #endDTD endDTD} events. + * Declarations are assumed to belong to the internal DTD subset + * unless they appear between {@link #startEntity startEntity} + * and {@link #endEntity endEntity} events. Comments and + * processing instructions from the DTD should also be reported + * between the startDTD and endDTD events, in their original + * order of (logical) occurrence; they are not required to + * appear in their correct locations relative to DTDHandler + * or DeclHandler events, however.
+ * + *Note that the start/endDTD events will appear within + * the start/endDocument events from ContentHandler and + * before the first + * {@link org.xml.sax.ContentHandler#startElement startElement} + * event.
+ * + * @param name The document type name. + * @param publicId The declared public identifier for the + * external DTD subset, or null if none was declared. + * @param systemId The declared system identifier for the + * external DTD subset, or null if none was declared. + * (Note that this is not resolved against the document + * base URI.) + * @exception SAXException The application may raise an + * exception. + * @see #endDTD + * @see #startEntity + */ + public abstract void startDTD (String name, String publicId, + String systemId) + throws SAXException; + + + /** + * Report the end of DTD declarations. + * + *This method is intended to report the end of the + * DOCTYPE declaration; if the document has no DOCTYPE declaration, + * this method will not be invoked.
+ * + * @exception SAXException The application may raise an exception. + * @see #startDTD + */ + public abstract void endDTD () + throws SAXException; + + + /** + * Report the beginning of some internal and external XML entities. + * + *The reporting of parameter entities (including
+ * the external DTD subset) is optional, and SAX2 drivers that
+ * report LexicalHandler events may not implement it; you can use the
+ * http://xml.org/sax/features/lexical-handler/parameter-entities
+ * feature to query or control the reporting of parameter entities.
General entities are reported with their regular names, + * parameter entities have '%' prepended to their names, and + * the external DTD subset has the pseudo-entity name "[dtd]".
+ * + *When a SAX2 driver is providing these events, all other + * events must be properly nested within start/end entity + * events. There is no additional requirement that events from + * {@link org.xml.sax.ext.DeclHandler DeclHandler} or + * {@link org.xml.sax.DTDHandler DTDHandler} be properly ordered.
+ * + *Note that skipped entities will be reported through the + * {@link org.xml.sax.ContentHandler#skippedEntity skippedEntity} + * event, which is part of the ContentHandler interface.
+ * + *Because of the streaming event model that SAX uses, some + * entity boundaries cannot be reported under any + * circumstances:
+ * + *These will be silently expanded, with no indication of where + * the original entity boundaries were.
+ * + *Note also that the boundaries of character references (which + * are not really entities anyway) are not reported.
+ * + *All start/endEntity events must be properly nested. + * + * @param name The name of the entity. If it is a parameter + * entity, the name will begin with '%', and if it is the + * external DTD subset, it will be "[dtd]". + * @exception SAXException The application may raise an exception. + * @see #endEntity + * @see org.xml.sax.ext.DeclHandler#internalEntityDecl + * @see org.xml.sax.ext.DeclHandler#externalEntityDecl + */ + public abstract void startEntity (String name) + throws SAXException; + + + /** + * Report the end of an entity. + * + * @param name The name of the entity that is ending. + * @exception SAXException The application may raise an exception. + * @see #startEntity + */ + public abstract void endEntity (String name) + throws SAXException; + + + /** + * Report the start of a CDATA section. + * + *
The contents of the CDATA section will be reported through + * the regular {@link org.xml.sax.ContentHandler#characters + * characters} event; this event is intended only to report + * the boundary.
+ * + * @exception SAXException The application may raise an exception. + * @see #endCDATA + */ + public abstract void startCDATA () + throws SAXException; + + + /** + * Report the end of a CDATA section. + * + * @exception SAXException The application may raise an exception. + * @see #startCDATA + */ + public abstract void endCDATA () + throws SAXException; + + + /** + * Report an XML comment anywhere in the document. + * + *This callback will be used for comments inside or outside the + * document element, including comments in the external DTD + * subset (if read). Comments in the DTD must be properly + * nested inside start/endDTD and start/endEntity events (if + * used).
+ * + * @param ch An array holding the characters in the comment. + * @param start The starting position in the array. + * @param length The number of characters to use from the array. + * @exception SAXException The application may raise an exception. + */ + public abstract void comment (char ch[], int start, int length) + throws SAXException; + +} + +// end of LexicalHandler.java diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java new file mode 100644 index 00000000000..2fd9fc25afa --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java @@ -0,0 +1,75 @@ +// Locator2.java - extended Locator +// http://www.saxproject.org +// Public Domain: no warranty. +// $Id: Locator2.java,v 1.8 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.ext; + +import org.xml.sax.Locator; + + +/** + * SAX2 extension to augment the entity information provided + * though a {@link Locator}. + * If an implementation supports this extension, the Locator + * provided in {@link org.xml.sax.ContentHandler#setDocumentLocator + * ContentHandler.setDocumentLocator() } will implement this + * interface, and the + * http://xml.org/sax/features/use-locator2 feature + * flag will have the value true. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + *+ * + *
XMLReader implementations are not required to support this + * information, and it is not part of core-only SAX2 distributions.
+ * + * @since SAX 2.0 (extensions 1.1 alpha) + * @author David Brownell + * @version TBS + */ +public interface Locator2 extends Locator +{ + /** + * Returns the version of XML used for the entity. This will + * normally be the identifier from the current entity's + * <?xml version='...' ...?> declaration, + * or be defaulted by the parser. + * + * @return Identifier for the XML version being used to interpret + * the entity's text, or null if that information is not yet + * available in the current parsing state. + */ + public String getXMLVersion (); + + /** + * Returns the name of the character encoding for the entity. + * If the encoding was declared externally (for example, in a MIME + * Content-Type header), that will be the name returned. Else if there + * was an <?xml ...encoding='...'?> declaration at + * the start of the document, that encoding name will be returned. + * Otherwise the encoding will been inferred (normally to be UTF-8, or + * some UTF-16 variant), and that inferred name will be returned. + * + *When an {@link org.xml.sax.InputSource InputSource} is used + * to provide an entity's character stream, this method returns the + * encoding provided in that input stream. + * + *
Note that some recent W3C specifications require that text + * in some encodings be normalized, using Unicode Normalization + * Form C, before processing. Such normalization must be performed + * by applications, and would normally be triggered based on the + * value returned by this method. + * + *
Encoding names may be those used by the underlying JVM, + * and comparisons should be case-insensitive. + * + * @return Name of the character encoding being used to interpret + * * the entity's text, or null if this was not provided for a * + * character stream passed through an InputSource or is otherwise + * not yet available in the current parsing state. + */ + public String getEncoding (); +} diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java new file mode 100644 index 00000000000..52f6331b5ab --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java @@ -0,0 +1,101 @@ +// Locator2Impl.java - extended LocatorImpl +// http://www.saxproject.org +// Public Domain: no warranty. +// $Id: Locator2Impl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ + +package org.xml.sax.ext; + +import org.xml.sax.Locator; +import org.xml.sax.helpers.LocatorImpl; + + +/** + * SAX2 extension helper for holding additional Entity information, + * implementing the {@link Locator2} interface. + * + *
+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + *+ * + *
This is not part of core-only SAX2 distributions.
+ * + * @since SAX 2.0.2 + * @author David Brownell + * @version TBS + */ +public class Locator2Impl extends LocatorImpl implements Locator2 +{ + private String encoding; + private String version; + + + /** + * Construct a new, empty Locator2Impl object. + * This will not normally be useful, since the main purpose + * of this class is to make a snapshot of an existing Locator. + */ + public Locator2Impl () { } + + /** + * Copy an existing Locator or Locator2 object. + * If the object implements Locator2, values of the + * encoding and versionstrings are copied, + * otherwise they set to null. + * + * @param locator The existing Locator object. + */ + public Locator2Impl (Locator locator) + { + super (locator); + if (locator instanceof Locator2) { + Locator2 l2 = (Locator2) locator; + + version = l2.getXMLVersion (); + encoding = l2.getEncoding (); + } + } + + //////////////////////////////////////////////////////////////////// + // Locator2 method implementations + //////////////////////////////////////////////////////////////////// + + /** + * Returns the current value of the version property. + * + * @see #setXMLVersion + */ + public String getXMLVersion () + { return version; } + + /** + * Returns the current value of the encoding property. + * + * @see #setEncoding + */ + public String getEncoding () + { return encoding; } + + + //////////////////////////////////////////////////////////////////// + // Setters + //////////////////////////////////////////////////////////////////// + + /** + * Assigns the current value of the version property. + * + * @param version the new "version" value + * @see #getXMLVersion + */ + public void setXMLVersion (String version) + { this.version = version; } + + /** + * Assigns the current value of the encoding property. + * + * @param encoding the new "encoding" value + * @see #getEncoding + */ + public void setEncoding (String encoding) + { this.encoding = encoding; } +} diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/package.html b/libjava/classpath/external/sax/org/xml/sax/ext/package.html new file mode 100644 index 00000000000..12866eb38b7 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/ext/package.html @@ -0,0 +1,46 @@ + + + + ++This package contains interfaces to SAX2 facilities that +conformant SAX drivers won't necessarily support. + +
See http://www.saxproject.org +for more information about SAX.
+ +This package is independent of the SAX2 core, though the functionality +exposed generally needs to be implemented within a parser core. +That independence has several consequences:
+ +org.xml.sax.helpers.DefaultHandler or
+org.xml.sax.helpers.XMLFilterImpl classes.
+You can subclass these if you need such behavior, or
+use the helper classes found here.This package, SAX2-ext, is a standardized extension to SAX2. It is +designed both to allow SAX parsers to pass certain types of information +to applications, and to serve as a simple model for other SAX2 parser +extension packages. Not all such extension packages should need to +be recognized directly by parsers, however. +As an example, most validation systems can be cleanly layered on top +of parsers supporting the standardized SAX2 interfaces.
+ + diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java new file mode 100644 index 00000000000..d691fcc7d00 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java @@ -0,0 +1,312 @@ +// SAX default implementation for AttributeList. +// http://www.saxproject.org +// No warranty; no copyright -- use this as you will. +// $Id: AttributeListImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import org.xml.sax.AttributeList; + +import java.util.Vector; + + +/** + * Default implementation for AttributeList. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
AttributeList implements the deprecated SAX1 {@link + * org.xml.sax.AttributeList AttributeList} interface, and has been + * replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl + * AttributesImpl} interface.
+ * + *This class provides a convenience implementation of the SAX + * {@link org.xml.sax.AttributeList AttributeList} interface. This + * implementation is useful both for SAX parser writers, who can use + * it to provide attributes to the application, and for SAX application + * writers, who can use it to create a persistent copy of an element's + * attribute specifications:
+ * + *
+ * private AttributeList myatts;
+ *
+ * public void startElement (String name, AttributeList atts)
+ * {
+ * // create a persistent copy of the attribute list
+ * // for use outside this method
+ * myatts = new AttributeListImpl(atts);
+ * [...]
+ * }
+ *
+ *
+ * Please note that SAX parsers are not required to use this + * class to provide an implementation of AttributeList; it is + * supplied only as an optional convenience. In particular, + * parser writers are encouraged to invent more efficient + * implementations.
+ * + * @deprecated This class implements a deprecated interface, + * {@link org.xml.sax.AttributeList AttributeList}; + * that interface has been replaced by + * {@link org.xml.sax.Attributes Attributes}, + * which is implemented in the + * {@link org.xml.sax.helpers.AttributesImpl + * AttributesImpl} helper class. + * @since SAX 1.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.AttributeList + * @see org.xml.sax.DocumentHandler#startElement + */ +public class AttributeListImpl implements AttributeList +{ + + /** + * Create an empty attribute list. + * + *This constructor is most useful for parser writers, who + * will use it to create a single, reusable attribute list that + * can be reset with the clear method between elements.
+ * + * @see #addAttribute + * @see #clear + */ + public AttributeListImpl () + { + } + + + /** + * Construct a persistent copy of an existing attribute list. + * + *This constructor is most useful for application writers, + * who will use it to create a persistent copy of an existing + * attribute list.
+ * + * @param atts The attribute list to copy + * @see org.xml.sax.DocumentHandler#startElement + */ + public AttributeListImpl (AttributeList atts) + { + setAttributeList(atts); + } + + + + //////////////////////////////////////////////////////////////////// + // Methods specific to this class. + //////////////////////////////////////////////////////////////////// + + + /** + * Set the attribute list, discarding previous contents. + * + *This method allows an application writer to reuse an + * attribute list easily.
+ * + * @param atts The attribute list to copy. + */ + public void setAttributeList (AttributeList atts) + { + int count = atts.getLength(); + + clear(); + + for (int i = 0; i < count; i++) { + addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i)); + } + } + + + /** + * Add an attribute to an attribute list. + * + *This method is provided for SAX parser writers, to allow them + * to build up an attribute list incrementally before delivering + * it to the application.
+ * + * @param name The attribute name. + * @param type The attribute type ("NMTOKEN" for an enumeration). + * @param value The attribute value (must not be null). + * @see #removeAttribute + * @see org.xml.sax.DocumentHandler#startElement + */ + public void addAttribute (String name, String type, String value) + { + names.addElement(name); + types.addElement(type); + values.addElement(value); + } + + + /** + * Remove an attribute from the list. + * + *SAX application writers can use this method to filter an + * attribute out of an AttributeList. Note that invoking this + * method will change the length of the attribute list and + * some of the attribute's indices.
+ * + *If the requested attribute is not in the list, this is + * a no-op.
+ * + * @param name The attribute name. + * @see #addAttribute + */ + public void removeAttribute (String name) + { + int i = names.indexOf(name); + + if (i >= 0) { + names.removeElementAt(i); + types.removeElementAt(i); + values.removeElementAt(i); + } + } + + + /** + * Clear the attribute list. + * + *SAX parser writers can use this method to reset the attribute + * list between DocumentHandler.startElement events. Normally, + * it will make sense to reuse the same AttributeListImpl object + * rather than allocating a new one each time.
+ * + * @see org.xml.sax.DocumentHandler#startElement + */ + public void clear () + { + names.removeAllElements(); + types.removeAllElements(); + values.removeAllElements(); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.AttributeList + //////////////////////////////////////////////////////////////////// + + + /** + * Return the number of attributes in the list. + * + * @return The number of attributes in the list. + * @see org.xml.sax.AttributeList#getLength + */ + public int getLength () + { + return names.size(); + } + + + /** + * Get the name of an attribute (by position). + * + * @param i The position of the attribute in the list. + * @return The attribute name as a string, or null if there + * is no attribute at that position. + * @see org.xml.sax.AttributeList#getName(int) + */ + public String getName (int i) + { + if (i < 0) { + return null; + } + try { + return (String)names.elementAt(i); + } catch (ArrayIndexOutOfBoundsException e) { + return null; + } + } + + + /** + * Get the type of an attribute (by position). + * + * @param i The position of the attribute in the list. + * @return The attribute type as a string ("NMTOKEN" for an + * enumeration, and "CDATA" if no declaration was + * read), or null if there is no attribute at + * that position. + * @see org.xml.sax.AttributeList#getType(int) + */ + public String getType (int i) + { + if (i < 0) { + return null; + } + try { + return (String)types.elementAt(i); + } catch (ArrayIndexOutOfBoundsException e) { + return null; + } + } + + + /** + * Get the value of an attribute (by position). + * + * @param i The position of the attribute in the list. + * @return The attribute value as a string, or null if + * there is no attribute at that position. + * @see org.xml.sax.AttributeList#getValue(int) + */ + public String getValue (int i) + { + if (i < 0) { + return null; + } + try { + return (String)values.elementAt(i); + } catch (ArrayIndexOutOfBoundsException e) { + return null; + } + } + + + /** + * Get the type of an attribute (by name). + * + * @param name The attribute name. + * @return The attribute type as a string ("NMTOKEN" for an + * enumeration, and "CDATA" if no declaration was + * read). + * @see org.xml.sax.AttributeList#getType(java.lang.String) + */ + public String getType (String name) + { + return getType(names.indexOf(name)); + } + + + /** + * Get the value of an attribute (by name). + * + * @param name The attribute name. + * @see org.xml.sax.AttributeList#getValue(java.lang.String) + */ + public String getValue (String name) + { + return getValue(names.indexOf(name)); + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + Vector names = new Vector(); + Vector types = new Vector(); + Vector values = new Vector(); + +} + +// end of AttributeListImpl.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java new file mode 100644 index 00000000000..02139d9fa7a --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java @@ -0,0 +1,618 @@ +// AttributesImpl.java - default implementation of Attributes. +// http://www.saxproject.org +// Written by David Megginson +// NO WARRANTY! This class is in the public domain. +// $Id: AttributesImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import org.xml.sax.Attributes; + + +/** + * Default implementation of the Attributes interface. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class provides a default implementation of the SAX2 + * {@link org.xml.sax.Attributes Attributes} interface, with the + * addition of manipulators so that the list can be modified or + * reused.
+ * + *There are two typical uses of this class:
+ * + *This class replaces the now-deprecated SAX1 {@link + * org.xml.sax.helpers.AttributeListImpl AttributeListImpl} + * class; in addition to supporting the updated Attributes + * interface rather than the deprecated {@link org.xml.sax.AttributeList + * AttributeList} interface, it also includes a much more efficient + * implementation using a single array rather than a set of Vectors.
+ * + * @since SAX 2.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + */ +public class AttributesImpl implements Attributes +{ + + + //////////////////////////////////////////////////////////////////// + // Constructors. + //////////////////////////////////////////////////////////////////// + + + /** + * Construct a new, empty AttributesImpl object. + */ + public AttributesImpl () + { + length = 0; + data = null; + } + + + /** + * Copy an existing Attributes object. + * + *This constructor is especially useful inside a + * {@link org.xml.sax.ContentHandler#startElement startElement} event.
+ * + * @param atts The existing Attributes object. + */ + public AttributesImpl (Attributes atts) + { + setAttributes(atts); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.Attributes. + //////////////////////////////////////////////////////////////////// + + + /** + * Return the number of attributes in the list. + * + * @return The number of attributes in the list. + * @see org.xml.sax.Attributes#getLength + */ + public int getLength () + { + return length; + } + + + /** + * Return an attribute's Namespace URI. + * + * @param index The attribute's index (zero-based). + * @return The Namespace URI, the empty string if none is + * available, or null if the index is out of range. + * @see org.xml.sax.Attributes#getURI + */ + public String getURI (int index) + { + if (index >= 0 && index < length) { + return data[index*5]; + } else { + return null; + } + } + + + /** + * Return an attribute's local name. + * + * @param index The attribute's index (zero-based). + * @return The attribute's local name, the empty string if + * none is available, or null if the index if out of range. + * @see org.xml.sax.Attributes#getLocalName + */ + public String getLocalName (int index) + { + if (index >= 0 && index < length) { + return data[index*5+1]; + } else { + return null; + } + } + + + /** + * Return an attribute's qualified (prefixed) name. + * + * @param index The attribute's index (zero-based). + * @return The attribute's qualified name, the empty string if + * none is available, or null if the index is out of bounds. + * @see org.xml.sax.Attributes#getQName + */ + public String getQName (int index) + { + if (index >= 0 && index < length) { + return data[index*5+2]; + } else { + return null; + } + } + + + /** + * Return an attribute's type by index. + * + * @param index The attribute's index (zero-based). + * @return The attribute's type, "CDATA" if the type is unknown, or null + * if the index is out of bounds. + * @see org.xml.sax.Attributes#getType(int) + */ + public String getType (int index) + { + if (index >= 0 && index < length) { + return data[index*5+3]; + } else { + return null; + } + } + + + /** + * Return an attribute's value by index. + * + * @param index The attribute's index (zero-based). + * @return The attribute's value or null if the index is out of bounds. + * @see org.xml.sax.Attributes#getValue(int) + */ + public String getValue (int index) + { + if (index >= 0 && index < length) { + return data[index*5+4]; + } else { + return null; + } + } + + + /** + * Look up an attribute's index by Namespace name. + * + *In many cases, it will be more efficient to look up the name once and + * use the index query methods rather than using the name query methods + * repeatedly.
+ * + * @param uri The attribute's Namespace URI, or the empty + * string if none is available. + * @param localName The attribute's local name. + * @return The attribute's index, or -1 if none matches. + * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) + */ + public int getIndex (String uri, String localName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i].equals(uri) && data[i+1].equals(localName)) { + return i / 5; + } + } + return -1; + } + + + /** + * Look up an attribute's index by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attribute's index, or -1 if none matches. + * @see org.xml.sax.Attributes#getIndex(java.lang.String) + */ + public int getIndex (String qName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i+2].equals(qName)) { + return i / 5; + } + } + return -1; + } + + + /** + * Look up an attribute's type by Namespace-qualified name. + * + * @param uri The Namespace URI, or the empty string for a name + * with no explicit Namespace URI. + * @param localName The local name. + * @return The attribute's type, or null if there is no + * matching attribute. + * @see org.xml.sax.Attributes#getType(java.lang.String,java.lang.String) + */ + public String getType (String uri, String localName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i].equals(uri) && data[i+1].equals(localName)) { + return data[i+3]; + } + } + return null; + } + + + /** + * Look up an attribute's type by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attribute's type, or null if there is no + * matching attribute. + * @see org.xml.sax.Attributes#getType(java.lang.String) + */ + public String getType (String qName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i+2].equals(qName)) { + return data[i+3]; + } + } + return null; + } + + + /** + * Look up an attribute's value by Namespace-qualified name. + * + * @param uri The Namespace URI, or the empty string for a name + * with no explicit Namespace URI. + * @param localName The local name. + * @return The attribute's value, or null if there is no + * matching attribute. + * @see org.xml.sax.Attributes#getValue(java.lang.String,java.lang.String) + */ + public String getValue (String uri, String localName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i].equals(uri) && data[i+1].equals(localName)) { + return data[i+4]; + } + } + return null; + } + + + /** + * Look up an attribute's value by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attribute's value, or null if there is no + * matching attribute. + * @see org.xml.sax.Attributes#getValue(java.lang.String) + */ + public String getValue (String qName) + { + int max = length * 5; + for (int i = 0; i < max; i += 5) { + if (data[i+2].equals(qName)) { + return data[i+4]; + } + } + return null; + } + + + + //////////////////////////////////////////////////////////////////// + // Manipulators. + //////////////////////////////////////////////////////////////////// + + + /** + * Clear the attribute list for reuse. + * + *Note that little memory is freed by this call: + * the current array is kept so it can be + * reused.
+ */ + public void clear () + { + if (data != null) { + for (int i = 0; i < (length * 5); i++) + data [i] = null; + } + length = 0; + } + + + /** + * Copy an entire Attributes object. + * + *It may be more efficient to reuse an existing object + * rather than constantly allocating new ones.
+ * + * @param atts The attributes to copy. + */ + public void setAttributes (Attributes atts) + { + clear(); + length = atts.getLength(); + if (length > 0) { + data = new String[length*5]; + for (int i = 0; i < length; i++) { + data[i*5] = atts.getURI(i); + data[i*5+1] = atts.getLocalName(i); + data[i*5+2] = atts.getQName(i); + data[i*5+3] = atts.getType(i); + data[i*5+4] = atts.getValue(i); + } + } + } + + + /** + * Add an attribute to the end of the list. + * + *For the sake of speed, this method does no checking + * to see if the attribute is already in the list: that is + * the responsibility of the application.
+ * + * @param uri The Namespace URI, or the empty string if + * none is available or Namespace processing is not + * being performed. + * @param localName The local name, or the empty string if + * Namespace processing is not being performed. + * @param qName The qualified (prefixed) name, or the empty string + * if qualified names are not available. + * @param type The attribute type as a string. + * @param value The attribute value. + */ + public void addAttribute (String uri, String localName, String qName, + String type, String value) + { + ensureCapacity(length+1); + data[length*5] = uri; + data[length*5+1] = localName; + data[length*5+2] = qName; + data[length*5+3] = type; + data[length*5+4] = value; + length++; + } + + + /** + * Set an attribute in the list. + * + *For the sake of speed, this method does no checking + * for name conflicts or well-formedness: such checks are the + * responsibility of the application.
+ * + * @param index The index of the attribute (zero-based). + * @param uri The Namespace URI, or the empty string if + * none is available or Namespace processing is not + * being performed. + * @param localName The local name, or the empty string if + * Namespace processing is not being performed. + * @param qName The qualified name, or the empty string + * if qualified names are not available. + * @param type The attribute type as a string. + * @param value The attribute value. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setAttribute (int index, String uri, String localName, + String qName, String type, String value) + { + if (index >= 0 && index < length) { + data[index*5] = uri; + data[index*5+1] = localName; + data[index*5+2] = qName; + data[index*5+3] = type; + data[index*5+4] = value; + } else { + badIndex(index); + } + } + + + /** + * Remove an attribute from the list. + * + * @param index The index of the attribute (zero-based). + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void removeAttribute (int index) + { + if (index >= 0 && index < length) { + if (index < length - 1) { + System.arraycopy(data, (index+1)*5, data, index*5, + (length-index-1)*5); + } + index = (length - 1) * 5; + data [index++] = null; + data [index++] = null; + data [index++] = null; + data [index++] = null; + data [index] = null; + length--; + } else { + badIndex(index); + } + } + + + /** + * Set the Namespace URI of a specific attribute. + * + * @param index The index of the attribute (zero-based). + * @param uri The attribute's Namespace URI, or the empty + * string for none. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setURI (int index, String uri) + { + if (index >= 0 && index < length) { + data[index*5] = uri; + } else { + badIndex(index); + } + } + + + /** + * Set the local name of a specific attribute. + * + * @param index The index of the attribute (zero-based). + * @param localName The attribute's local name, or the empty + * string for none. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setLocalName (int index, String localName) + { + if (index >= 0 && index < length) { + data[index*5+1] = localName; + } else { + badIndex(index); + } + } + + + /** + * Set the qualified name of a specific attribute. + * + * @param index The index of the attribute (zero-based). + * @param qName The attribute's qualified name, or the empty + * string for none. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setQName (int index, String qName) + { + if (index >= 0 && index < length) { + data[index*5+2] = qName; + } else { + badIndex(index); + } + } + + + /** + * Set the type of a specific attribute. + * + * @param index The index of the attribute (zero-based). + * @param type The attribute's type. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setType (int index, String type) + { + if (index >= 0 && index < length) { + data[index*5+3] = type; + } else { + badIndex(index); + } + } + + + /** + * Set the value of a specific attribute. + * + * @param index The index of the attribute (zero-based). + * @param value The attribute's value. + * @exception java.lang.ArrayIndexOutOfBoundsException When the + * supplied index does not point to an attribute + * in the list. + */ + public void setValue (int index, String value) + { + if (index >= 0 && index < length) { + data[index*5+4] = value; + } else { + badIndex(index); + } + } + + + + //////////////////////////////////////////////////////////////////// + // Internal methods. + //////////////////////////////////////////////////////////////////// + + + /** + * Ensure the internal array's capacity. + * + * @param n The minimum number of attributes that the array must + * be able to hold. + */ + private void ensureCapacity (int n) { + if (n <= 0) { + return; + } + int max; + if (data == null || data.length == 0) { + max = 25; + } + else if (data.length >= n * 5) { + return; + } + else { + max = data.length; + } + while (max < n * 5) { + max *= 2; + } + + String newData[] = new String[max]; + if (length > 0) { + System.arraycopy(data, 0, newData, 0, length*5); + } + data = newData; + } + + + /** + * Report a bad array index in a manipulator. + * + * @param index The index to report. + * @exception java.lang.ArrayIndexOutOfBoundsException Always. + */ + private void badIndex (int index) + throws ArrayIndexOutOfBoundsException + { + String msg = + "Attempt to modify attribute at illegal index: " + index; + throw new ArrayIndexOutOfBoundsException(msg); + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + int length; + String data []; + +} + +// end of AttributesImpl.java + diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java b/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java new file mode 100644 index 00000000000..9fc9895bdb0 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java @@ -0,0 +1,467 @@ +// DefaultHandler.java - default implementation of the core handlers. +// http://www.saxproject.org +// Written by David Megginson +// NO WARRANTY! This class is in the public domain. +// $Id: DefaultHandler.java,v 1.11 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.io.IOException; + +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.Attributes; +import org.xml.sax.EntityResolver; +import org.xml.sax.DTDHandler; +import org.xml.sax.ContentHandler; +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; + + +/** + * Default base class for SAX2 event handlers. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class is available as a convenience base class for SAX2 + * applications: it provides default implementations for all of the + * callbacks in the four core SAX2 handler classes:
+ * + *Application writers can extend this class when they need to + * implement only part of an interface; parser writers can + * instantiate this class to provide default handlers when the + * application has not supplied its own.
+ * + *This class replaces the deprecated SAX1 + * {@link org.xml.sax.HandlerBase HandlerBase} class.
+ * + * @since SAX 2.0 + * @author David Megginson, + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.EntityResolver + * @see org.xml.sax.DTDHandler + * @see org.xml.sax.ContentHandler + * @see org.xml.sax.ErrorHandler + */ +public class DefaultHandler + implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler +{ + + + //////////////////////////////////////////////////////////////////// + // Default implementation of the EntityResolver interface. + //////////////////////////////////////////////////////////////////// + + /** + * Resolve an external entity. + * + *Always return null, so that the parser will use the system + * identifier provided in the XML document. This method implements + * the SAX default behaviour: application writers can override it + * in a subclass to do special translations such as catalog lookups + * or URI redirection.
+ * + * @param publicId The public identifer, or null if none is + * available. + * @param systemId The system identifier provided in the XML + * document. + * @return The new input source, or null to require the + * default behaviour. + * @exception java.io.IOException If there is an error setting + * up the new input source. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.EntityResolver#resolveEntity + */ + public InputSource resolveEntity (String publicId, String systemId) + throws IOException, SAXException + { + return null; + } + + + + //////////////////////////////////////////////////////////////////// + // Default implementation of DTDHandler interface. + //////////////////////////////////////////////////////////////////// + + + /** + * Receive notification of a notation declaration. + * + *By default, do nothing. Application writers may override this + * method in a subclass if they wish to keep track of the notations + * declared in a document.
+ * + * @param name The notation name. + * @param publicId The notation public identifier, or null if not + * available. + * @param systemId The notation system identifier. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.DTDHandler#notationDecl + */ + public void notationDecl (String name, String publicId, String systemId) + throws SAXException + { + // no op + } + + + /** + * Receive notification of an unparsed entity declaration. + * + *By default, do nothing. Application writers may override this + * method in a subclass to keep track of the unparsed entities + * declared in a document.
+ * + * @param name The entity name. + * @param publicId The entity public identifier, or null if not + * available. + * @param systemId The entity system identifier. + * @param notationName The name of the associated notation. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.DTDHandler#unparsedEntityDecl + */ + public void unparsedEntityDecl (String name, String publicId, + String systemId, String notationName) + throws SAXException + { + // no op + } + + + + //////////////////////////////////////////////////////////////////// + // Default implementation of ContentHandler interface. + //////////////////////////////////////////////////////////////////// + + + /** + * Receive a Locator object for document events. + * + *By default, do nothing. Application writers may override this + * method in a subclass if they wish to store the locator for use + * with other document events.
+ * + * @param locator A locator for all SAX document events. + * @see org.xml.sax.ContentHandler#setDocumentLocator + * @see org.xml.sax.Locator + */ + public void setDocumentLocator (Locator locator) + { + // no op + } + + + /** + * Receive notification of the beginning of the document. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the beginning + * of a document (such as allocating the root node of a tree or + * creating an output file).
+ * + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#startDocument + */ + public void startDocument () + throws SAXException + { + // no op + } + + + /** + * Receive notification of the end of the document. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the end + * of a document (such as finalising a tree or closing an output + * file).
+ * + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#endDocument + */ + public void endDocument () + throws SAXException + { + // no op + } + + + /** + * Receive notification of the start of a Namespace mapping. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the start of + * each Namespace prefix scope (such as storing the prefix mapping).
+ * + * @param prefix The Namespace prefix being declared. + * @param uri The Namespace URI mapped to the prefix. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#startPrefixMapping + */ + public void startPrefixMapping (String prefix, String uri) + throws SAXException + { + // no op + } + + + /** + * Receive notification of the end of a Namespace mapping. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the end of + * each prefix mapping.
+ * + * @param prefix The Namespace prefix being declared. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#endPrefixMapping + */ + public void endPrefixMapping (String prefix) + throws SAXException + { + // no op + } + + + /** + * Receive notification of the start of an element. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the start of + * each element (such as allocating a new tree node or writing + * output to a file).
+ * + * @param uri The Namespace URI, or the empty string if the + * element has no Namespace URI or if Namespace + * processing is not being performed. + * @param localName The local name (without prefix), or the + * empty string if Namespace processing is not being + * performed. + * @param qName The qualified name (with prefix), or the + * empty string if qualified names are not available. + * @param attributes The attributes attached to the element. If + * there are no attributes, it shall be an empty + * Attributes object. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#startElement + */ + public void startElement (String uri, String localName, + String qName, Attributes attributes) + throws SAXException + { + // no op + } + + + /** + * Receive notification of the end of an element. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions at the end of + * each element (such as finalising a tree node or writing + * output to a file).
+ * + * @param uri The Namespace URI, or the empty string if the + * element has no Namespace URI or if Namespace + * processing is not being performed. + * @param localName The local name (without prefix), or the + * empty string if Namespace processing is not being + * performed. + * @param qName The qualified name (with prefix), or the + * empty string if qualified names are not available. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#endElement + */ + public void endElement (String uri, String localName, String qName) + throws SAXException + { + // no op + } + + + /** + * Receive notification of character data inside an element. + * + *By default, do nothing. Application writers may override this + * method to take specific actions for each chunk of character data + * (such as adding the data to a node or buffer, or printing it to + * a file).
+ * + * @param ch The characters. + * @param start The start position in the character array. + * @param length The number of characters to use from the + * character array. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#characters + */ + public void characters (char ch[], int start, int length) + throws SAXException + { + // no op + } + + + /** + * Receive notification of ignorable whitespace in element content. + * + *By default, do nothing. Application writers may override this + * method to take specific actions for each chunk of ignorable + * whitespace (such as adding data to a node or buffer, or printing + * it to a file).
+ * + * @param ch The whitespace characters. + * @param start The start position in the character array. + * @param length The number of characters to use from the + * character array. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#ignorableWhitespace + */ + public void ignorableWhitespace (char ch[], int start, int length) + throws SAXException + { + // no op + } + + + /** + * Receive notification of a processing instruction. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions for each + * processing instruction, such as setting status variables or + * invoking other methods.
+ * + * @param target The processing instruction target. + * @param data The processing instruction data, or null if + * none is supplied. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#processingInstruction + */ + public void processingInstruction (String target, String data) + throws SAXException + { + // no op + } + + + /** + * Receive notification of a skipped entity. + * + *By default, do nothing. Application writers may override this + * method in a subclass to take specific actions for each + * processing instruction, such as setting status variables or + * invoking other methods.
+ * + * @param name The name of the skipped entity. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ContentHandler#processingInstruction + */ + public void skippedEntity (String name) + throws SAXException + { + // no op + } + + + + //////////////////////////////////////////////////////////////////// + // Default implementation of the ErrorHandler interface. + //////////////////////////////////////////////////////////////////// + + + /** + * Receive notification of a parser warning. + * + *The default implementation does nothing. Application writers + * may override this method in a subclass to take specific actions + * for each warning, such as inserting the message in a log file or + * printing it to the console.
+ * + * @param e The warning information encoded as an exception. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ErrorHandler#warning + * @see org.xml.sax.SAXParseException + */ + public void warning (SAXParseException e) + throws SAXException + { + // no op + } + + + /** + * Receive notification of a recoverable parser error. + * + *The default implementation does nothing. Application writers + * may override this method in a subclass to take specific actions + * for each error, such as inserting the message in a log file or + * printing it to the console.
+ * + * @param e The warning information encoded as an exception. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ErrorHandler#warning + * @see org.xml.sax.SAXParseException + */ + public void error (SAXParseException e) + throws SAXException + { + // no op + } + + + /** + * Report a fatal XML parsing error. + * + *The default implementation throws a SAXParseException. + * Application writers may override this method in a subclass if + * they need to take specific actions for each fatal error (such as + * collecting all of the errors into a single report): in any case, + * the application must stop all regular processing when this + * method is invoked, since the document is no longer reliable, and + * the parser may no longer report parsing events.
+ * + * @param e The error information encoded as an exception. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @see org.xml.sax.ErrorHandler#fatalError + * @see org.xml.sax.SAXParseException + */ + public void fatalError (SAXParseException e) + throws SAXException + { + throw e; + } + +} + +// end of DefaultHandler.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java new file mode 100644 index 00000000000..a37467b5a23 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java @@ -0,0 +1,214 @@ +// SAX default implementation for Locator. +// http://www.saxproject.org +// No warranty; no copyright -- use this as you will. +// $Id: LocatorImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import org.xml.sax.Locator; + + +/** + * Provide an optional convenience implementation of Locator. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class is available mainly for application writers, who + * can use it to make a persistent snapshot of a locator at any + * point during a document parse:
+ * + *
+ * Locator locator;
+ * Locator startloc;
+ *
+ * public void setLocator (Locator locator)
+ * {
+ * // note the locator
+ * this.locator = locator;
+ * }
+ *
+ * public void startDocument ()
+ * {
+ * // save the location of the start of the document
+ * // for future use.
+ * Locator startloc = new LocatorImpl(locator);
+ * }
+ *
+ *
+ * Normally, parser writers will not use this class, since it + * is more efficient to provide location information only when + * requested, rather than constantly updating a Locator object.
+ * + * @since SAX 1.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.Locator Locator + */ +public class LocatorImpl implements Locator +{ + + + /** + * Zero-argument constructor. + * + *This will not normally be useful, since the main purpose + * of this class is to make a snapshot of an existing Locator.
+ */ + public LocatorImpl () + { + } + + + /** + * Copy constructor. + * + *Create a persistent copy of the current state of a locator. + * When the original locator changes, this copy will still keep + * the original values (and it can be used outside the scope of + * DocumentHandler methods).
+ * + * @param locator The locator to copy. + */ + public LocatorImpl (Locator locator) + { + setPublicId(locator.getPublicId()); + setSystemId(locator.getSystemId()); + setLineNumber(locator.getLineNumber()); + setColumnNumber(locator.getColumnNumber()); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.Locator + //////////////////////////////////////////////////////////////////// + + + /** + * Return the saved public identifier. + * + * @return The public identifier as a string, or null if none + * is available. + * @see org.xml.sax.Locator#getPublicId + * @see #setPublicId + */ + public String getPublicId () + { + return publicId; + } + + + /** + * Return the saved system identifier. + * + * @return The system identifier as a string, or null if none + * is available. + * @see org.xml.sax.Locator#getSystemId + * @see #setSystemId + */ + public String getSystemId () + { + return systemId; + } + + + /** + * Return the saved line number (1-based). + * + * @return The line number as an integer, or -1 if none is available. + * @see org.xml.sax.Locator#getLineNumber + * @see #setLineNumber + */ + public int getLineNumber () + { + return lineNumber; + } + + + /** + * Return the saved column number (1-based). + * + * @return The column number as an integer, or -1 if none is available. + * @see org.xml.sax.Locator#getColumnNumber + * @see #setColumnNumber + */ + public int getColumnNumber () + { + return columnNumber; + } + + + + //////////////////////////////////////////////////////////////////// + // Setters for the properties (not in org.xml.sax.Locator) + //////////////////////////////////////////////////////////////////// + + + /** + * Set the public identifier for this locator. + * + * @param publicId The new public identifier, or null + * if none is available. + * @see #getPublicId + */ + public void setPublicId (String publicId) + { + this.publicId = publicId; + } + + + /** + * Set the system identifier for this locator. + * + * @param systemId The new system identifier, or null + * if none is available. + * @see #getSystemId + */ + public void setSystemId (String systemId) + { + this.systemId = systemId; + } + + + /** + * Set the line number for this locator (1-based). + * + * @param lineNumber The line number, or -1 if none is available. + * @see #getLineNumber + */ + public void setLineNumber (int lineNumber) + { + this.lineNumber = lineNumber; + } + + + /** + * Set the column number for this locator (1-based). + * + * @param columnNumber The column number, or -1 if none is available. + * @see #getColumnNumber + */ + public void setColumnNumber (int columnNumber) + { + this.columnNumber = columnNumber; + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + private String publicId; + private String systemId; + private int lineNumber; + private int columnNumber; + +} + +// end of LocatorImpl.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java b/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java new file mode 100644 index 00000000000..b4edc707f2b --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java @@ -0,0 +1,835 @@ +// NamespaceSupport.java - generic Namespace support for SAX. +// http://www.saxproject.org +// Written by David Megginson +// This class is in the Public Domain. NO WARRANTY! +// $Id: NamespaceSupport.java,v 1.14 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.util.EmptyStackException; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Vector; + + +/** + * Encapsulate Namespace logic for use by applications using SAX, + * or internally by SAX drivers. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class encapsulates the logic of Namespace processing: it + * tracks the declarations currently in force for each context and + * automatically processes qualified XML names into their Namespace + * parts; it can also be used in reverse for generating XML qnames + * from Namespaces.
+ * + *Namespace support objects are reusable, but the reset method + * must be invoked between each session.
+ * + *Here is a simple session:
+ * + *
+ * String parts[] = new String[3];
+ * NamespaceSupport support = new NamespaceSupport();
+ *
+ * support.pushContext();
+ * support.declarePrefix("", "http://www.w3.org/1999/xhtml");
+ * support.declarePrefix("dc", "http://www.purl.org/dc#");
+ *
+ * parts = support.processName("p", parts, false);
+ * System.out.println("Namespace URI: " + parts[0]);
+ * System.out.println("Local name: " + parts[1]);
+ * System.out.println("Raw name: " + parts[2]);
+ *
+ * parts = support.processName("dc:title", parts, false);
+ * System.out.println("Namespace URI: " + parts[0]);
+ * System.out.println("Local name: " + parts[1]);
+ * System.out.println("Raw name: " + parts[2]);
+ *
+ * support.popContext();
+ *
+ *
+ * Note that this class is optimized for the use case where most + * elements do not contain Namespace declarations: if the same + * prefix/URI mapping is repeated for each context (for example), this + * class will be somewhat less efficient.
+ * + *Although SAX drivers (parsers) may choose to use this class to
+ * implement namespace handling, they are not required to do so.
+ * Applications must track namespace information themselves if they
+ * want to use namespace information.
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public class NamespaceSupport
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constants.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * The XML Namespace URI as a constant.
+ * The value is http://www.w3.org/XML/1998/namespace
+ * as defined in the "Namespaces in XML" * recommendation.
+ *
+ *
This is the Namespace URI that is automatically mapped + * to the "xml" prefix.
+ */ + public final static String XMLNS = + "http://www.w3.org/XML/1998/namespace"; + + + /** + * The namespace declaration URI as a constant. + * The value ishttp://www.w3.org/xmlns/2000/, as defined
+ * in a backwards-incompatible erratum to the "Namespaces in XML"
+ * recommendation. Because that erratum postdated SAX2, SAX2 defaults
+ * to the original recommendation, and does not normally use this URI.
+ *
+ *
+ * This is the Namespace URI that is optionally applied to + * xmlns and xmlns:* attributes, which are used to + * declare namespaces.
+ * + * @since SAX 2.1alpha + * @see #setNamespaceDeclUris + * @see #isNamespaceDeclUris + */ + public final static String NSDECL = + "http://www.w3.org/xmlns/2000/"; + + + /** + * An empty enumeration. + */ + private final static Enumeration EMPTY_ENUMERATION = + new Vector().elements(); + + + //////////////////////////////////////////////////////////////////// + // Constructor. + //////////////////////////////////////////////////////////////////// + + + /** + * Create a new Namespace support object. + */ + public NamespaceSupport () + { + reset(); + } + + + + //////////////////////////////////////////////////////////////////// + // Context management. + //////////////////////////////////////////////////////////////////// + + + /** + * Reset this Namespace support object for reuse. + * + *It is necessary to invoke this method before reusing the + * Namespace support object for a new session. If namespace + * declaration URIs are to be supported, that flag must also + * be set to a non-default value. + *
+ * + * @see #setNamespaceDeclUris + */ + public void reset () + { + contexts = new Context[32]; + namespaceDeclUris = false; + contextPos = 0; + contexts[contextPos] = currentContext = new Context(); + currentContext.declarePrefix("xml", XMLNS); + } + + + /** + * Start a new Namespace context. + * The new context will automatically inherit + * the declarations of its parent context, but it will also keep + * track of which declarations were made within this context. + * + *Event callback code should start a new context once per element. + * This means being ready to call this in either of two places. + * For elements that don't include namespace declarations, the + * ContentHandler.startElement() callback is the right place. + * For elements with such a declaration, it'd done in the first + * ContentHandler.startPrefixMapping() callback. + * A boolean flag can be used to + * track whether a context has been started yet. When either of + * those methods is called, it checks the flag to see if a new context + * needs to be started. If so, it starts the context and sets the + * flag. After ContentHandler.startElement() + * does that, it always clears the flag. + * + *
Normally, SAX drivers would push a new context at the beginning + * of each XML element. Then they perform a first pass over the + * attributes to process all namespace declarations, making + * ContentHandler.startPrefixMapping() callbacks. + * Then a second pass is made, to determine the namespace-qualified + * names for all attributes and for the element name. + * Finally all the information for the + * ContentHandler.startElement() callback is available, + * so it can then be made. + * + *
The Namespace support object always starts with a base context + * already in force: in this context, only the "xml" prefix is + * declared.
+ * + * @see org.xml.sax.ContentHandler + * @see #popContext + */ + public void pushContext () + { + int max = contexts.length; + + contexts [contextPos].declsOK = false; + contextPos++; + + // Extend the array if necessary + if (contextPos >= max) { + Context newContexts[] = new Context[max*2]; + System.arraycopy(contexts, 0, newContexts, 0, max); + max *= 2; + contexts = newContexts; + } + + // Allocate the context if necessary. + currentContext = contexts[contextPos]; + if (currentContext == null) { + contexts[contextPos] = currentContext = new Context(); + } + + // Set the parent, if any. + if (contextPos > 0) { + currentContext.setParent(contexts[contextPos - 1]); + } + } + + + /** + * Revert to the previous Namespace context. + * + *Normally, you should pop the context at the end of each + * XML element. After popping the context, all Namespace prefix + * mappings that were previously in force are restored.
+ * + *You must not attempt to declare additional Namespace + * prefixes after popping a context, unless you push another + * context first.
+ * + * @see #pushContext + */ + public void popContext () + { + contexts[contextPos].clear(); + contextPos--; + if (contextPos < 0) { + throw new EmptyStackException(); + } + currentContext = contexts[contextPos]; + } + + + + //////////////////////////////////////////////////////////////////// + // Operations within a context. + //////////////////////////////////////////////////////////////////// + + + /** + * Declare a Namespace prefix. All prefixes must be declared + * before they are referenced. For example, a SAX driver (parser) + * would scan an element's attributes + * in two passes: first for namespace declarations, + * then a second pass using {@link #processName processName()} to + * interpret prefixes against (potentially redefined) prefixes. + * + *This method declares a prefix in the current Namespace + * context; the prefix will remain in force until this context + * is popped, unless it is shadowed in a descendant context.
+ * + *To declare the default element Namespace, use the empty string as + * the prefix.
+ * + *Note that you must not declare a prefix after + * you've pushed and popped another Namespace context, or + * treated the declarations phase as complete by processing + * a prefixed name.
+ * + *Note that there is an asymmetry in this library: {@link + * #getPrefix getPrefix} will not return the "" prefix, + * even if you have declared a default element namespace. + * To check for a default namespace, + * you have to look it up explicitly using {@link #getURI getURI}. + * This asymmetry exists to make it easier to look up prefixes + * for attribute names, where the default prefix is not allowed.
+ * + * @param prefix The prefix to declare, or the empty string to + * indicate the default element namespace. This may never have + * the value "xml" or "xmlns". + * @param uri The Namespace URI to associate with the prefix. + * @return true if the prefix was legal, false otherwise + * + * @see #processName + * @see #getURI + * @see #getPrefix + */ + public boolean declarePrefix (String prefix, String uri) + { + if (prefix.equals("xml") || prefix.equals("xmlns")) { + return false; + } else { + currentContext.declarePrefix(prefix, uri); + return true; + } + } + + + /** + * Process a raw XML qualified name, after all declarations in the + * current context have been handled by {@link #declarePrefix + * declarePrefix()}. + * + *This method processes a raw XML qualified name in the + * current context by removing the prefix and looking it up among + * the prefixes currently declared. The return value will be the + * array supplied by the caller, filled in as follows:
+ * + *All of the strings in the array will be internalized. If + * the raw name has a prefix that has not been declared, then + * the return value will be null.
+ * + *Note that attribute names are processed differently than + * element names: an unprefixed element name will receive the + * default Namespace (if any), while an unprefixed attribute name + * will not.
+ * + * @param qName The XML qualified name to be processed. + * @param parts An array supplied by the caller, capable of + * holding at least three members. + * @param isAttribute A flag indicating whether this is an + * attribute name (true) or an element name (false). + * @return The supplied array holding three internalized strings + * representing the Namespace URI (or empty string), the + * local name, and the XML qualified name; or null if there + * is an undeclared prefix. + * @see #declarePrefix + * @see java.lang.String#intern */ + public String [] processName (String qName, String parts[], + boolean isAttribute) + { + String myParts[] = currentContext.processName(qName, isAttribute); + if (myParts == null) { + return null; + } else { + parts[0] = myParts[0]; + parts[1] = myParts[1]; + parts[2] = myParts[2]; + return parts; + } + } + + + /** + * Look up a prefix and get the currently-mapped Namespace URI. + * + *This method looks up the prefix in the current context. + * Use the empty string ("") for the default Namespace.
+ * + * @param prefix The prefix to look up. + * @return The associated Namespace URI, or null if the prefix + * is undeclared in this context. + * @see #getPrefix + * @see #getPrefixes + */ + public String getURI (String prefix) + { + return currentContext.getURI(prefix); + } + + + /** + * Return an enumeration of all prefixes whose declarations are + * active in the current context. + * This includes declarations from parent contexts that have + * not been overridden. + * + *Note: if there is a default prefix, it will not be + * returned in this enumeration; check for the default prefix + * using the {@link #getURI getURI} with an argument of "".
+ * + * @return An enumeration of prefixes (never empty). + * @see #getDeclaredPrefixes + * @see #getURI + */ + public Enumeration getPrefixes () + { + return currentContext.getPrefixes(); + } + + + /** + * Return one of the prefixes mapped to a Namespace URI. + * + *If more than one prefix is currently mapped to the same + * URI, this method will make an arbitrary selection; if you + * want all of the prefixes, use the {@link #getPrefixes} + * method instead.
+ * + *Note: this will never return the empty (default) prefix; + * to check for a default prefix, use the {@link #getURI getURI} + * method with an argument of "".
+ * + * @param uri the namespace URI + * @return one of the prefixes currently mapped to the URI supplied, + * or null if none is mapped or if the URI is assigned to + * the default namespace + * @see #getPrefixes(java.lang.String) + * @see #getURI + */ + public String getPrefix (String uri) + { + return currentContext.getPrefix(uri); + } + + + /** + * Return an enumeration of all prefixes for a given URI whose + * declarations are active in the current context. + * This includes declarations from parent contexts that have + * not been overridden. + * + *This method returns prefixes mapped to a specific Namespace + * URI. The xml: prefix will be included. If you want only one + * prefix that's mapped to the Namespace URI, and you don't care + * which one you get, use the {@link #getPrefix getPrefix} + * method instead.
+ * + *Note: the empty (default) prefix is never included + * in this enumeration; to check for the presence of a default + * Namespace, use the {@link #getURI getURI} method with an + * argument of "".
+ * + * @param uri The Namespace URI. + * @return An enumeration of prefixes (never empty). + * @see #getPrefix + * @see #getDeclaredPrefixes + * @see #getURI + */ + public Enumeration getPrefixes (String uri) + { + Vector prefixes = new Vector(); + Enumeration allPrefixes = getPrefixes(); + while (allPrefixes.hasMoreElements()) { + String prefix = (String)allPrefixes.nextElement(); + if (uri.equals(getURI(prefix))) { + prefixes.addElement(prefix); + } + } + return prefixes.elements(); + } + + + /** + * Return an enumeration of all prefixes declared in this context. + * + *The empty (default) prefix will be included in this + * enumeration; note that this behaviour differs from that of + * {@link #getPrefix} and {@link #getPrefixes}.
+ * + * @return An enumeration of all prefixes declared in this + * context. + * @see #getPrefixes + * @see #getURI + */ + public Enumeration getDeclaredPrefixes () + { + return currentContext.getDeclaredPrefixes(); + } + + /** + * Controls whether namespace declaration attributes are placed + * into the {@link #NSDECL NSDECL} namespace + * by {@link #processName processName()}. This may only be + * changed before any contexts have been pushed. + * + * @since SAX 2.1alpha + * + * @exception IllegalStateException when attempting to set this + * after any context has been pushed. + */ + public void setNamespaceDeclUris (boolean value) + { + if (contextPos != 0) + throw new IllegalStateException (); + if (value == namespaceDeclUris) + return; + namespaceDeclUris = value; + if (value) + currentContext.declarePrefix ("xmlns", NSDECL); + else { + contexts[contextPos] = currentContext = new Context(); + currentContext.declarePrefix("xml", XMLNS); + } + } + + /** + * Returns true if namespace declaration attributes are placed into + * a namespace. This behavior is not the default. + * + * @since SAX 2.1alpha + */ + public boolean isNamespaceDeclUris () + { return namespaceDeclUris; } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + private Context contexts[]; + private Context currentContext; + private int contextPos; + private boolean namespaceDeclUris; + + + //////////////////////////////////////////////////////////////////// + // Internal classes. + //////////////////////////////////////////////////////////////////// + + /** + * Internal class for a single Namespace context. + * + *This module caches and reuses Namespace contexts, + * so the number allocated + * will be equal to the element depth of the document, not to the total + * number of elements (i.e. 5-10 rather than tens of thousands). + * Also, data structures used to represent contexts are shared when + * possible (child contexts without declarations) to further reduce + * the amount of memory that's consumed. + *
+ */ + final class Context { + + /** + * Create the root-level Namespace context. + */ + Context () + { + copyTables(); + } + + + /** + * (Re)set the parent of this Namespace context. + * The context must either have been freshly constructed, + * or must have been cleared. + * + * @param context The parent Namespace context object. + */ + void setParent (Context parent) + { + this.parent = parent; + declarations = null; + prefixTable = parent.prefixTable; + uriTable = parent.uriTable; + elementNameTable = parent.elementNameTable; + attributeNameTable = parent.attributeNameTable; + defaultNS = parent.defaultNS; + declSeen = false; + declsOK = true; + } + + /** + * Makes associated state become collectible, + * invalidating this context. + * {@link #setParent} must be called before + * this context may be used again. + */ + void clear () + { + parent = null; + prefixTable = null; + uriTable = null; + elementNameTable = null; + attributeNameTable = null; + defaultNS = null; + } + + + /** + * Declare a Namespace prefix for this context. + * + * @param prefix The prefix to declare. + * @param uri The associated Namespace URI. + * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix + */ + void declarePrefix (String prefix, String uri) + { + // Lazy processing... + if (!declsOK) + throw new IllegalStateException ( + "can't declare any more prefixes in this context"); + if (!declSeen) { + copyTables(); + } + if (declarations == null) { + declarations = new Vector(); + } + + prefix = prefix.intern(); + uri = uri.intern(); + if ("".equals(prefix)) { + if ("".equals(uri)) { + defaultNS = null; + } else { + defaultNS = uri; + } + } else { + prefixTable.put(prefix, uri); + uriTable.put(uri, prefix); // may wipe out another prefix + } + declarations.addElement(prefix); + } + + + /** + * Process an XML qualified name in this context. + * + * @param qName The XML qualified name. + * @param isAttribute true if this is an attribute name. + * @return An array of three strings containing the + * URI part (or empty string), the local part, + * and the raw name, all internalized, or null + * if there is an undeclared prefix. + * @see org.xml.sax.helpers.NamespaceSupport#processName + */ + String [] processName (String qName, boolean isAttribute) + { + String name[]; + Hashtable table; + + // detect errors in call sequence + declsOK = false; + + // Select the appropriate table. + if (isAttribute) { + table = attributeNameTable; + } else { + table = elementNameTable; + } + + // Start by looking in the cache, and + // return immediately if the name + // is already known in this content + name = (String[])table.get(qName); + if (name != null) { + return name; + } + + // We haven't seen this name in this + // context before. Maybe in the parent + // context, but we can't assume prefix + // bindings are the same. + name = new String[3]; + name[2] = qName.intern(); + int index = qName.indexOf(':'); + + + // No prefix. + if (index == -1) { + if (isAttribute) { + if (qName == "xmlns" && namespaceDeclUris) + name[0] = NSDECL; + else + name[0] = ""; + } else if (defaultNS == null) { + name[0] = ""; + } else { + name[0] = defaultNS; + } + name[1] = name[2]; + } + + // Prefix + else { + String prefix = qName.substring(0, index); + String local = qName.substring(index+1); + String uri; + if ("".equals(prefix)) { + uri = defaultNS; + } else { + uri = (String)prefixTable.get(prefix); + } + if (uri == null + || (!isAttribute && "xmlns".equals (prefix))) { + return null; + } + name[0] = uri; + name[1] = local.intern(); + } + + // Save in the cache for future use. + // (Could be shared with parent context...) + table.put(name[2], name); + return name; + } + + + /** + * Look up the URI associated with a prefix in this context. + * + * @param prefix The prefix to look up. + * @return The associated Namespace URI, or null if none is + * declared. + * @see org.xml.sax.helpers.NamespaceSupport#getURI + */ + String getURI (String prefix) + { + if ("".equals(prefix)) { + return defaultNS; + } else if (prefixTable == null) { + return null; + } else { + return (String)prefixTable.get(prefix); + } + } + + + /** + * Look up one of the prefixes associated with a URI in this context. + * + *Since many prefixes may be mapped to the same URI, + * the return value may be unreliable.
+ * + * @param uri The URI to look up. + * @return The associated prefix, or null if none is declared. + * @see org.xml.sax.helpers.NamespaceSupport#getPrefix + */ + String getPrefix (String uri) + { + if (uriTable == null) { + return null; + } else { + return (String)uriTable.get(uri); + } + } + + + /** + * Return an enumeration of prefixes declared in this context. + * + * @return An enumeration of prefixes (possibly empty). + * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes + */ + Enumeration getDeclaredPrefixes () + { + if (declarations == null) { + return EMPTY_ENUMERATION; + } else { + return declarations.elements(); + } + } + + + /** + * Return an enumeration of all prefixes currently in force. + * + *The default prefix, if in force, is not + * returned, and will have to be checked for separately.
+ * + * @return An enumeration of prefixes (never empty). + * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes + */ + Enumeration getPrefixes () + { + if (prefixTable == null) { + return EMPTY_ENUMERATION; + } else { + return prefixTable.keys(); + } + } + + + + //////////////////////////////////////////////////////////////// + // Internal methods. + //////////////////////////////////////////////////////////////// + + + /** + * Copy on write for the internal tables in this context. + * + *This class is optimized for the normal case where most + * elements do not contain Namespace declarations.
+ */ + private void copyTables () + { + if (prefixTable != null) { + prefixTable = (Hashtable)prefixTable.clone(); + } else { + prefixTable = new Hashtable(); + } + if (uriTable != null) { + uriTable = (Hashtable)uriTable.clone(); + } else { + uriTable = new Hashtable(); + } + elementNameTable = new Hashtable(); + attributeNameTable = new Hashtable(); + declSeen = true; + } + + + + //////////////////////////////////////////////////////////////// + // Protected state. + //////////////////////////////////////////////////////////////// + + Hashtable prefixTable; + Hashtable uriTable; + Hashtable elementNameTable; + Hashtable attributeNameTable; + String defaultNS = null; + boolean declsOK = true; + + + + //////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////// + + private Vector declarations = null; + private boolean declSeen = false; + private Context parent = null; + } +} + +// end of NamespaceSupport.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java b/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java new file mode 100644 index 00000000000..10ef1276fdf --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java @@ -0,0 +1,79 @@ +// NewInstance.java - create a new instance of a class by name. +// http://www.saxproject.org +// Written by Edwin Goei, edwingo@apache.org +// and by David Brownell, dbrownell@users.sourceforge.net +// NO WARRANTY! This class is in the Public Domain. +// $Id: NewInstance.java,v 1.9 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; + +/** + * Create a new instance of a class by name. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class contains a static method for creating an instance of a + * class from an explicit class name. It tries to use the thread's context + * ClassLoader if possible and falls back to using + * Class.forName(String).
+ * + *This code is designed to compile and run on JDK version 1.1 and later + * including versions of Java 2.
+ * + * @author Edwin Goei, David Brownell + * @version 2.0.1 (sax2r2) + */ +class NewInstance { + + /** + * Creates a new instance of the specified class name + * + * Package private so this code is not exposed at the API level. + */ + static Object newInstance (ClassLoader classLoader, String className) + throws ClassNotFoundException, IllegalAccessException, + InstantiationException + { + Class driverClass; + if (classLoader == null) { + driverClass = Class.forName(className); + } else { + driverClass = classLoader.loadClass(className); + } + return driverClass.newInstance(); + } + + /** + * Figure out which ClassLoader to use. For JDK 1.2 and later use + * the context ClassLoader. + */ + static ClassLoader getClassLoader () + { + Method m = null; + + try { + m = Thread.class.getMethod("getContextClassLoader", null); + } catch (NoSuchMethodException e) { + // Assume that we are running JDK 1.1, use the current ClassLoader + return NewInstance.class.getClassLoader(); + } + + try { + return (ClassLoader) m.invoke(Thread.currentThread(), null); + } catch (IllegalAccessException e) { + // assert(false) + throw new UnknownError(e.getMessage()); + } catch (InvocationTargetException e) { + // assert(e.getTargetException() instanceof SecurityException) + throw new UnknownError(e.getMessage()); + } + } +} diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java new file mode 100644 index 00000000000..84e18f06782 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java @@ -0,0 +1,1046 @@ +// ParserAdapter.java - adapt a SAX1 Parser to a SAX2 XMLReader. +// http://www.saxproject.org +// Written by David Megginson +// NO WARRANTY! This class is in the public domain. +// $Id: ParserAdapter.java,v 1.12 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.io.IOException; +import java.util.Enumeration; +import java.util.Vector; + +import org.xml.sax.Parser; // deprecated +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.AttributeList; // deprecated +import org.xml.sax.EntityResolver; +import org.xml.sax.DTDHandler; +import org.xml.sax.DocumentHandler; // deprecated +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; + +import org.xml.sax.XMLReader; +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXNotRecognizedException; +import org.xml.sax.SAXNotSupportedException; + + +/** + * Adapt a SAX1 Parser as a SAX2 XMLReader. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class wraps a SAX1 {@link org.xml.sax.Parser Parser} + * and makes it act as a SAX2 {@link org.xml.sax.XMLReader XMLReader}, + * with feature, property, and Namespace support. Note + * that it is not possible to report {@link org.xml.sax.ContentHandler#skippedEntity + * skippedEntity} events, since SAX1 does not make that information available.
+ * + *This adapter does not test for duplicate Namespace-qualified + * attribute names.
+ * + * @since SAX 2.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.helpers.XMLReaderAdapter + * @see org.xml.sax.XMLReader + * @see org.xml.sax.Parser + */ +public class ParserAdapter implements XMLReader, DocumentHandler +{ + + + //////////////////////////////////////////////////////////////////// + // Constructors. + //////////////////////////////////////////////////////////////////// + + + /** + * Construct a new parser adapter. + * + *Use the "org.xml.sax.parser" property to locate the + * embedded SAX1 driver.
+ * + * @exception SAXException If the embedded driver + * cannot be instantiated or if the + * org.xml.sax.parser property is not specified. + */ + public ParserAdapter () + throws SAXException + { + super(); + + String driver = System.getProperty("org.xml.sax.parser"); + + try { + setup(ParserFactory.makeParser()); + } catch (ClassNotFoundException e1) { + throw new + SAXException("Cannot find SAX1 driver class " + + driver, e1); + } catch (IllegalAccessException e2) { + throw new + SAXException("SAX1 driver class " + + driver + + " found but cannot be loaded", e2); + } catch (InstantiationException e3) { + throw new + SAXException("SAX1 driver class " + + driver + + " loaded but cannot be instantiated", e3); + } catch (ClassCastException e4) { + throw new + SAXException("SAX1 driver class " + + driver + + " does not implement org.xml.sax.Parser"); + } catch (NullPointerException e5) { + throw new + SAXException("System property org.xml.sax.parser not specified"); + } + } + + + /** + * Construct a new parser adapter. + * + *Note that the embedded parser cannot be changed once the + * adapter is created; to embed a different parser, allocate + * a new ParserAdapter.
+ * + * @param parser The SAX1 parser to embed. + * @exception java.lang.NullPointerException If the parser parameter + * is null. + */ + public ParserAdapter (Parser parser) + { + super(); + setup(parser); + } + + + /** + * Internal setup method. + * + * @param parser The embedded parser. + * @exception java.lang.NullPointerException If the parser parameter + * is null. + */ + private void setup (Parser parser) + { + if (parser == null) { + throw new + NullPointerException("Parser argument must not be null"); + } + this.parser = parser; + atts = new AttributesImpl(); + nsSupport = new NamespaceSupport(); + attAdapter = new AttributeListAdapter(); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.XMLReader. + //////////////////////////////////////////////////////////////////// + + + // + // Internal constants for the sake of convenience. + // + private final static String FEATURES = "http://xml.org/sax/features/"; + private final static String NAMESPACES = FEATURES + "namespaces"; + private final static String NAMESPACE_PREFIXES = FEATURES + "namespace-prefixes"; + private final static String XMLNS_URIs = FEATURES + "xmlns-uris"; + + + /** + * Set a feature flag for the parser. + * + *The only features recognized are namespaces and + * namespace-prefixes.
+ * + * @param name The feature name, as a complete URI. + * @param value The requested feature value. + * @exception SAXNotRecognizedException If the feature + * can't be assigned or retrieved. + * @exception SAXNotSupportedException If the feature + * can't be assigned that value. + * @see org.xml.sax.XMLReader#setFeature + */ + public void setFeature (String name, boolean value) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (name.equals(NAMESPACES)) { + checkNotParsing("feature", name); + namespaces = value; + if (!namespaces && !prefixes) { + prefixes = true; + } + } else if (name.equals(NAMESPACE_PREFIXES)) { + checkNotParsing("feature", name); + prefixes = value; + if (!prefixes && !namespaces) { + namespaces = true; + } + } else if (name.equals(XMLNS_URIs)) { + checkNotParsing("feature", name); + uris = value; + } else { + throw new SAXNotRecognizedException("Feature: " + name); + } + } + + + /** + * Check a parser feature flag. + * + *The only features recognized are namespaces and + * namespace-prefixes.
+ * + * @param name The feature name, as a complete URI. + * @return The current feature value. + * @exception SAXNotRecognizedException If the feature + * value can't be assigned or retrieved. + * @exception SAXNotSupportedException If the + * feature is not currently readable. + * @see org.xml.sax.XMLReader#setFeature + */ + public boolean getFeature (String name) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (name.equals(NAMESPACES)) { + return namespaces; + } else if (name.equals(NAMESPACE_PREFIXES)) { + return prefixes; + } else if (name.equals(XMLNS_URIs)) { + return uris; + } else { + throw new SAXNotRecognizedException("Feature: " + name); + } + } + + + /** + * Set a parser property. + * + *No properties are currently recognized.
+ * + * @param name The property name. + * @param value The property value. + * @exception SAXNotRecognizedException If the property + * value can't be assigned or retrieved. + * @exception SAXNotSupportedException If the property + * can't be assigned that value. + * @see org.xml.sax.XMLReader#setProperty + */ + public void setProperty (String name, Object value) + throws SAXNotRecognizedException, SAXNotSupportedException + { + throw new SAXNotRecognizedException("Property: " + name); + } + + + /** + * Get a parser property. + * + *No properties are currently recognized.
+ * + * @param name The property name. + * @return The property value. + * @exception SAXNotRecognizedException If the property + * value can't be assigned or retrieved. + * @exception SAXNotSupportedException If the property + * value is not currently readable. + * @see org.xml.sax.XMLReader#getProperty + */ + public Object getProperty (String name) + throws SAXNotRecognizedException, SAXNotSupportedException + { + throw new SAXNotRecognizedException("Property: " + name); + } + + + /** + * Set the entity resolver. + * + * @param resolver The new entity resolver. + * @see org.xml.sax.XMLReader#setEntityResolver + */ + public void setEntityResolver (EntityResolver resolver) + { + entityResolver = resolver; + } + + + /** + * Return the current entity resolver. + * + * @return The current entity resolver, or null if none was supplied. + * @see org.xml.sax.XMLReader#getEntityResolver + */ + public EntityResolver getEntityResolver () + { + return entityResolver; + } + + + /** + * Set the DTD handler. + * + * @param handler the new DTD handler + * @see org.xml.sax.XMLReader#setEntityResolver + */ + public void setDTDHandler (DTDHandler handler) + { + dtdHandler = handler; + } + + + /** + * Return the current DTD handler. + * + * @return the current DTD handler, or null if none was supplied + * @see org.xml.sax.XMLReader#getEntityResolver + */ + public DTDHandler getDTDHandler () + { + return dtdHandler; + } + + + /** + * Set the content handler. + * + * @param handler the new content handler + * @see org.xml.sax.XMLReader#setEntityResolver + */ + public void setContentHandler (ContentHandler handler) + { + contentHandler = handler; + } + + + /** + * Return the current content handler. + * + * @return The current content handler, or null if none was supplied. + * @see org.xml.sax.XMLReader#getEntityResolver + */ + public ContentHandler getContentHandler () + { + return contentHandler; + } + + + /** + * Set the error handler. + * + * @param handler The new error handler. + * @see org.xml.sax.XMLReader#setEntityResolver + */ + public void setErrorHandler (ErrorHandler handler) + { + errorHandler = handler; + } + + + /** + * Return the current error handler. + * + * @return The current error handler, or null if none was supplied. + * @see org.xml.sax.XMLReader#getEntityResolver + */ + public ErrorHandler getErrorHandler () + { + return errorHandler; + } + + + /** + * Parse an XML document. + * + * @param systemId The absolute URL of the document. + * @exception java.io.IOException If there is a problem reading + * the raw content of the document. + * @exception SAXException If there is a problem + * processing the document. + * @see #parse(org.xml.sax.InputSource) + * @see org.xml.sax.Parser#parse(java.lang.String) + */ + public void parse (String systemId) + throws IOException, SAXException + { + parse(new InputSource(systemId)); + } + + + /** + * Parse an XML document. + * + * @param input An input source for the document. + * @exception java.io.IOException If there is a problem reading + * the raw content of the document. + * @exception SAXException If there is a problem + * processing the document. + * @see #parse(java.lang.String) + * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) + */ + public void parse (InputSource input) + throws IOException, SAXException + { + if (parsing) { + throw new SAXException("Parser is already in use"); + } + setupParser(); + parsing = true; + try { + parser.parse(input); + } finally { + parsing = false; + } + parsing = false; + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.DocumentHandler. + //////////////////////////////////////////////////////////////////// + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 document locator event. + * + * @param locator A document locator. + * @see org.xml.sax.ContentHandler#setDocumentLocator + */ + public void setDocumentLocator (Locator locator) + { + this.locator = locator; + if (contentHandler != null) { + contentHandler.setDocumentLocator(locator); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 start document event. + * + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#startDocument + */ + public void startDocument () + throws SAXException + { + if (contentHandler != null) { + contentHandler.startDocument(); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 end document event. + * + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#endDocument + */ + public void endDocument () + throws SAXException + { + if (contentHandler != null) { + contentHandler.endDocument(); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 startElement event. + * + *If necessary, perform Namespace processing.
+ * + * @param qName The qualified (prefixed) name. + * @param qAtts The XML attribute list (with qnames). + * @exception SAXException The client may raise a + * processing exception. + */ + public void startElement (String qName, AttributeList qAtts) + throws SAXException + { + // These are exceptions from the + // first pass; they should be + // ignored if there's a second pass, + // but reported otherwise. + Vector exceptions = null; + + // If we're not doing Namespace + // processing, dispatch this quickly. + if (!namespaces) { + if (contentHandler != null) { + attAdapter.setAttributeList(qAtts); + contentHandler.startElement("", "", qName.intern(), + attAdapter); + } + return; + } + + + // OK, we're doing Namespace processing. + nsSupport.pushContext(); + int length = qAtts.getLength(); + + // First pass: handle NS decls + for (int i = 0; i < length; i++) { + String attQName = qAtts.getName(i); + + if (!attQName.startsWith("xmlns")) + continue; + // Could be a declaration... + String prefix; + int n = attQName.indexOf(':'); + + // xmlns=... + if (n == -1 && attQName.length () == 5) { + prefix = ""; + } else if (n != 5) { + // XML namespaces spec doesn't discuss "xmlnsf:oo" + // (and similarly named) attributes ... at most, warn + continue; + } else // xmlns:foo=... + prefix = attQName.substring(n+1); + + String value = qAtts.getValue(i); + if (!nsSupport.declarePrefix(prefix, value)) { + reportError("Illegal Namespace prefix: " + prefix); + continue; + } + if (contentHandler != null) + contentHandler.startPrefixMapping(prefix, value); + } + + // Second pass: copy all relevant + // attributes into the SAX2 AttributeList + // using updated prefix bindings + atts.clear(); + for (int i = 0; i < length; i++) { + String attQName = qAtts.getName(i); + String type = qAtts.getType(i); + String value = qAtts.getValue(i); + + // Declaration? + if (attQName.startsWith("xmlns")) { + String prefix; + int n = attQName.indexOf(':'); + + if (n == -1 && attQName.length () == 5) { + prefix = ""; + } else if (n != 5) { + // XML namespaces spec doesn't discuss "xmlnsf:oo" + // (and similarly named) attributes ... ignore + prefix = null; + } else { + prefix = attQName.substring(6); + } + // Yes, decl: report or prune + if (prefix != null) { + if (prefixes) { + if (uris) + // note funky case: localname can be null + // when declaring the default prefix, and + // yet the uri isn't null. + atts.addAttribute (nsSupport.XMLNS, prefix, + attQName.intern(), type, value); + else + atts.addAttribute ("", "", + attQName.intern(), type, value); + } + continue; + } + } + + // Not a declaration -- report + try { + String attName[] = processName(attQName, true, true); + atts.addAttribute(attName[0], attName[1], attName[2], + type, value); + } catch (SAXException e) { + if (exceptions == null) + exceptions = new Vector(); + exceptions.addElement(e); + atts.addAttribute("", attQName, attQName, type, value); + } + } + + // now handle the deferred exception reports + if (exceptions != null && errorHandler != null) { + for (int i = 0; i < exceptions.size(); i++) + errorHandler.error((SAXParseException) + (exceptions.elementAt(i))); + } + + // OK, finally report the event. + if (contentHandler != null) { + String name[] = processName(qName, false, false); + contentHandler.startElement(name[0], name[1], name[2], atts); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 end element event. + * + * @param qName The qualified (prefixed) name. + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#endElement + */ + public void endElement (String qName) + throws SAXException + { + // If we're not doing Namespace + // processing, dispatch this quickly. + if (!namespaces) { + if (contentHandler != null) { + contentHandler.endElement("", "", qName.intern()); + } + return; + } + + // Split the name. + String names[] = processName(qName, false, false); + if (contentHandler != null) { + contentHandler.endElement(names[0], names[1], names[2]); + Enumeration prefixes = nsSupport.getDeclaredPrefixes(); + while (prefixes.hasMoreElements()) { + String prefix = (String)prefixes.nextElement(); + contentHandler.endPrefixMapping(prefix); + } + } + nsSupport.popContext(); + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 characters event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use. + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#characters + */ + public void characters (char ch[], int start, int length) + throws SAXException + { + if (contentHandler != null) { + contentHandler.characters(ch, start, length); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 ignorable whitespace event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use. + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#ignorableWhitespace + */ + public void ignorableWhitespace (char ch[], int start, int length) + throws SAXException + { + if (contentHandler != null) { + contentHandler.ignorableWhitespace(ch, start, length); + } + } + + + /** + * Adapter implementation method; do not call. + * Adapt a SAX1 processing instruction event. + * + * @param target The processing instruction target. + * @param data The remainder of the processing instruction + * @exception SAXException The client may raise a + * processing exception. + * @see org.xml.sax.DocumentHandler#processingInstruction + */ + public void processingInstruction (String target, String data) + throws SAXException + { + if (contentHandler != null) { + contentHandler.processingInstruction(target, data); + } + } + + + + //////////////////////////////////////////////////////////////////// + // Internal utility methods. + //////////////////////////////////////////////////////////////////// + + + /** + * Initialize the parser before each run. + */ + private void setupParser () + { + // catch an illegal "nonsense" state. + if (!prefixes && !namespaces) + throw new IllegalStateException (); + + nsSupport.reset(); + if (uris) + nsSupport.setNamespaceDeclUris (true); + + if (entityResolver != null) { + parser.setEntityResolver(entityResolver); + } + if (dtdHandler != null) { + parser.setDTDHandler(dtdHandler); + } + if (errorHandler != null) { + parser.setErrorHandler(errorHandler); + } + parser.setDocumentHandler(this); + locator = null; + } + + + /** + * Process a qualified (prefixed) name. + * + *If the name has an undeclared prefix, use only the qname + * and make an ErrorHandler.error callback in case the app is + * interested.
+ * + * @param qName The qualified (prefixed) name. + * @param isAttribute true if this is an attribute name. + * @return The name split into three parts. + * @exception SAXException The client may throw + * an exception if there is an error callback. + */ + private String [] processName (String qName, boolean isAttribute, + boolean useException) + throws SAXException + { + String parts[] = nsSupport.processName(qName, nameParts, + isAttribute); + if (parts == null) { + if (useException) + throw makeException("Undeclared prefix: " + qName); + reportError("Undeclared prefix: " + qName); + parts = new String[3]; + parts[0] = parts[1] = ""; + parts[2] = qName.intern(); + } + return parts; + } + + + /** + * Report a non-fatal error. + * + * @param message The error message. + * @exception SAXException The client may throw + * an exception. + */ + void reportError (String message) + throws SAXException + { + if (errorHandler != null) + errorHandler.error(makeException(message)); + } + + + /** + * Construct an exception for the current context. + * + * @param message The error message. + */ + private SAXParseException makeException (String message) + { + if (locator != null) { + return new SAXParseException(message, locator); + } else { + return new SAXParseException(message, null, null, -1, -1); + } + } + + + /** + * Throw an exception if we are parsing. + * + *Use this method to detect illegal feature or + * property changes.
+ * + * @param type The type of thing (feature or property). + * @param name The feature or property name. + * @exception SAXNotSupportedException If a + * document is currently being parsed. + */ + private void checkNotParsing (String type, String name) + throws SAXNotSupportedException + { + if (parsing) { + throw new SAXNotSupportedException("Cannot change " + + type + ' ' + + name + " while parsing"); + + } + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + private NamespaceSupport nsSupport; + private AttributeListAdapter attAdapter; + + private boolean parsing = false; + private String nameParts[] = new String[3]; + + private Parser parser = null; + + private AttributesImpl atts = null; + + // Features + private boolean namespaces = true; + private boolean prefixes = false; + private boolean uris = false; + + // Properties + + // Handlers + Locator locator; + + EntityResolver entityResolver = null; + DTDHandler dtdHandler = null; + ContentHandler contentHandler = null; + ErrorHandler errorHandler = null; + + + + //////////////////////////////////////////////////////////////////// + // Inner class to wrap an AttributeList when not doing NS proc. + //////////////////////////////////////////////////////////////////// + + + /** + * Adapt a SAX1 AttributeList as a SAX2 Attributes object. + * + *This class is in the Public Domain, and comes with NO + * WARRANTY of any kind.
+ * + *This wrapper class is used only when Namespace support + * is disabled -- it provides pretty much a direct mapping + * from SAX1 to SAX2, except that names and types are + * interned whenever requested.
+ */ + final class AttributeListAdapter implements Attributes + { + + /** + * Construct a new adapter. + */ + AttributeListAdapter () + { + } + + + /** + * Set the embedded AttributeList. + * + *This method must be invoked before any of the others + * can be used.
+ * + * @param The SAX1 attribute list (with qnames). + */ + void setAttributeList (AttributeList qAtts) + { + this.qAtts = qAtts; + } + + + /** + * Return the length of the attribute list. + * + * @return The number of attributes in the list. + * @see org.xml.sax.Attributes#getLength + */ + public int getLength () + { + return qAtts.getLength(); + } + + + /** + * Return the Namespace URI of the specified attribute. + * + * @param The attribute's index. + * @return Always the empty string. + * @see org.xml.sax.Attributes#getURI + */ + public String getURI (int i) + { + return ""; + } + + + /** + * Return the local name of the specified attribute. + * + * @param The attribute's index. + * @return Always the empty string. + * @see org.xml.sax.Attributes#getLocalName + */ + public String getLocalName (int i) + { + return ""; + } + + + /** + * Return the qualified (prefixed) name of the specified attribute. + * + * @param The attribute's index. + * @return The attribute's qualified name, internalized. + */ + public String getQName (int i) + { + return qAtts.getName(i).intern(); + } + + + /** + * Return the type of the specified attribute. + * + * @param The attribute's index. + * @return The attribute's type as an internalized string. + */ + public String getType (int i) + { + return qAtts.getType(i).intern(); + } + + + /** + * Return the value of the specified attribute. + * + * @param The attribute's index. + * @return The attribute's value. + */ + public String getValue (int i) + { + return qAtts.getValue(i); + } + + + /** + * Look up an attribute index by Namespace name. + * + * @param uri The Namespace URI or the empty string. + * @param localName The local name. + * @return The attributes index, or -1 if none was found. + * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) + */ + public int getIndex (String uri, String localName) + { + return -1; + } + + + /** + * Look up an attribute index by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attributes index, or -1 if none was found. + * @see org.xml.sax.Attributes#getIndex(java.lang.String) + */ + public int getIndex (String qName) + { + int max = atts.getLength(); + for (int i = 0; i < max; i++) { + if (qAtts.getName(i).equals(qName)) { + return i; + } + } + return -1; + } + + + /** + * Look up the type of an attribute by Namespace name. + * + * @param uri The Namespace URI + * @param localName The local name. + * @return The attribute's type as an internalized string. + */ + public String getType (String uri, String localName) + { + return null; + } + + + /** + * Look up the type of an attribute by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attribute's type as an internalized string. + */ + public String getType (String qName) + { + return qAtts.getType(qName).intern(); + } + + + /** + * Look up the value of an attribute by Namespace name. + * + * @param uri The Namespace URI + * @param localName The local name. + * @return The attribute's value. + */ + public String getValue (String uri, String localName) + { + return null; + } + + + /** + * Look up the value of an attribute by qualified (prefixed) name. + * + * @param qName The qualified name. + * @return The attribute's value. + */ + public String getValue (String qName) + { + return qAtts.getValue(qName); + } + + private AttributeList qAtts; + } +} + +// end of ParserAdapter.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java new file mode 100644 index 00000000000..d70b853c9ea --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java @@ -0,0 +1,129 @@ +// SAX parser factory. +// http://www.saxproject.org +// No warranty; no copyright -- use this as you will. +// $Id: ParserFactory.java,v 1.11 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.lang.ClassNotFoundException; +import java.lang.IllegalAccessException; +import java.lang.InstantiationException; +import java.lang.SecurityException; +import java.lang.ClassCastException; + +import org.xml.sax.Parser; + + +/** + * Java-specific class for dynamically loading SAX parsers. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
Note: This class is designed to work with the now-deprecated + * SAX1 {@link org.xml.sax.Parser Parser} class. SAX2 applications should use + * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.
+ * + *ParserFactory is not part of the platform-independent definition + * of SAX; it is an additional convenience class designed + * specifically for Java XML application writers. SAX applications + * can use the static methods in this class to allocate a SAX parser + * dynamically at run-time based either on the value of the + * `org.xml.sax.parser' system property or on a string containing the class + * name.
+ * + *Note that the application still requires an XML parser that + * implements SAX1.
+ * + * @deprecated This class works with the deprecated + * {@link org.xml.sax.Parser Parser} + * interface. + * @since SAX 1.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + */ +public class ParserFactory { + + + /** + * Private null constructor. + */ + private ParserFactory () + { + } + + + /** + * Create a new SAX parser using the `org.xml.sax.parser' system property. + * + *The named class must exist and must implement the + * {@link org.xml.sax.Parser Parser} interface.
+ * + * @exception java.lang.NullPointerException There is no value + * for the `org.xml.sax.parser' system property. + * @exception java.lang.ClassNotFoundException The SAX parser + * class was not found (check your CLASSPATH). + * @exception IllegalAccessException The SAX parser class was + * found, but you do not have permission to load + * it. + * @exception InstantiationException The SAX parser class was + * found but could not be instantiated. + * @exception java.lang.ClassCastException The SAX parser class + * was found and instantiated, but does not implement + * org.xml.sax.Parser. + * @see #makeParser(java.lang.String) + * @see org.xml.sax.Parser + */ + public static Parser makeParser () + throws ClassNotFoundException, + IllegalAccessException, + InstantiationException, + NullPointerException, + ClassCastException + { + String className = System.getProperty("org.xml.sax.parser"); + if (className == null) { + throw new NullPointerException("No value for sax.parser property"); + } else { + return makeParser(className); + } + } + + + /** + * Create a new SAX parser object using the class name provided. + * + *The named class must exist and must implement the + * {@link org.xml.sax.Parser Parser} interface.
+ * + * @param className A string containing the name of the + * SAX parser class. + * @exception java.lang.ClassNotFoundException The SAX parser + * class was not found (check your CLASSPATH). + * @exception IllegalAccessException The SAX parser class was + * found, but you do not have permission to load + * it. + * @exception InstantiationException The SAX parser class was + * found but could not be instantiated. + * @exception java.lang.ClassCastException The SAX parser class + * was found and instantiated, but does not implement + * org.xml.sax.Parser. + * @see #makeParser() + * @see org.xml.sax.Parser + */ + public static Parser makeParser (String className) + throws ClassNotFoundException, + IllegalAccessException, + InstantiationException, + ClassCastException + { + return (Parser) NewInstance.newInstance ( + NewInstance.getClassLoader (), className); + } + +} + diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java new file mode 100644 index 00000000000..bdde150bb48 --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java @@ -0,0 +1,713 @@ +// XMLFilterImpl.java - base SAX2 filter implementation. +// http://www.saxproject.org +// Written by David Megginson +// NO WARRANTY! This class is in the Public Domain. +// $Id: XMLFilterImpl.java,v 1.12 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; + +import java.io.IOException; + +import org.xml.sax.XMLReader; +import org.xml.sax.XMLFilter; +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.Attributes; +import org.xml.sax.EntityResolver; +import org.xml.sax.DTDHandler; +import org.xml.sax.ContentHandler; +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; +import org.xml.sax.SAXNotSupportedException; +import org.xml.sax.SAXNotRecognizedException; + + +/** + * Base class for deriving an XML filter. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class is designed to sit between an {@link org.xml.sax.XMLReader + * XMLReader} and the client application's event handlers. By default, it + * does nothing but pass requests up to the reader and events + * on to the handlers unmodified, but subclasses can override + * specific methods to modify the event stream or the configuration + * requests as they pass through.
+ * + * @since SAX 2.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.XMLFilter + * @see org.xml.sax.XMLReader + * @see org.xml.sax.EntityResolver + * @see org.xml.sax.DTDHandler + * @see org.xml.sax.ContentHandler + * @see org.xml.sax.ErrorHandler + */ +public class XMLFilterImpl + implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler +{ + + + //////////////////////////////////////////////////////////////////// + // Constructors. + //////////////////////////////////////////////////////////////////// + + + /** + * Construct an empty XML filter, with no parent. + * + *This filter will have no parent: you must assign a parent + * before you start a parse or do any configuration with + * setFeature or setProperty, unless you use this as a pure event + * consumer rather than as an {@link XMLReader}.
+ * + * @see org.xml.sax.XMLReader#setFeature + * @see org.xml.sax.XMLReader#setProperty + * @see #setParent + */ + public XMLFilterImpl () + { + super(); + } + + + /** + * Construct an XML filter with the specified parent. + * + * @see #setParent + * @see #getParent + */ + public XMLFilterImpl (XMLReader parent) + { + super(); + setParent(parent); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.XMLFilter. + //////////////////////////////////////////////////////////////////// + + + /** + * Set the parent reader. + * + *This is the {@link org.xml.sax.XMLReader XMLReader} from which + * this filter will obtain its events and to which it will pass its + * configuration requests. The parent may itself be another filter.
+ * + *If there is no parent reader set, any attempt to parse + * or to set or get a feature or property will fail.
+ * + * @param parent The parent XML reader. + * @see #getParent + */ + public void setParent (XMLReader parent) + { + this.parent = parent; + } + + + /** + * Get the parent reader. + * + * @return The parent XML reader, or null if none is set. + * @see #setParent + */ + public XMLReader getParent () + { + return parent; + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.XMLReader. + //////////////////////////////////////////////////////////////////// + + + /** + * Set the value of a feature. + * + *This will always fail if the parent is null.
+ * + * @param name The feature name. + * @param value The requested feature value. + * @exception org.xml.sax.SAXNotRecognizedException If the feature + * value can't be assigned or retrieved from the parent. + * @exception org.xml.sax.SAXNotSupportedException When the + * parent recognizes the feature name but + * cannot set the requested value. + */ + public void setFeature (String name, boolean value) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (parent != null) { + parent.setFeature(name, value); + } else { + throw new SAXNotRecognizedException("Feature: " + name); + } + } + + + /** + * Look up the value of a feature. + * + *This will always fail if the parent is null.
+ * + * @param name The feature name. + * @return The current value of the feature. + * @exception org.xml.sax.SAXNotRecognizedException If the feature + * value can't be assigned or retrieved from the parent. + * @exception org.xml.sax.SAXNotSupportedException When the + * parent recognizes the feature name but + * cannot determine its value at this time. + */ + public boolean getFeature (String name) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (parent != null) { + return parent.getFeature(name); + } else { + throw new SAXNotRecognizedException("Feature: " + name); + } + } + + + /** + * Set the value of a property. + * + *This will always fail if the parent is null.
+ * + * @param name The property name. + * @param value The requested property value. + * @exception org.xml.sax.SAXNotRecognizedException If the property + * value can't be assigned or retrieved from the parent. + * @exception org.xml.sax.SAXNotSupportedException When the + * parent recognizes the property name but + * cannot set the requested value. + */ + public void setProperty (String name, Object value) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (parent != null) { + parent.setProperty(name, value); + } else { + throw new SAXNotRecognizedException("Property: " + name); + } + } + + + /** + * Look up the value of a property. + * + * @param name The property name. + * @return The current value of the property. + * @exception org.xml.sax.SAXNotRecognizedException If the property + * value can't be assigned or retrieved from the parent. + * @exception org.xml.sax.SAXNotSupportedException When the + * parent recognizes the property name but + * cannot determine its value at this time. + */ + public Object getProperty (String name) + throws SAXNotRecognizedException, SAXNotSupportedException + { + if (parent != null) { + return parent.getProperty(name); + } else { + throw new SAXNotRecognizedException("Property: " + name); + } + } + + + /** + * Set the entity resolver. + * + * @param resolver The new entity resolver. + */ + public void setEntityResolver (EntityResolver resolver) + { + entityResolver = resolver; + } + + + /** + * Get the current entity resolver. + * + * @return The current entity resolver, or null if none was set. + */ + public EntityResolver getEntityResolver () + { + return entityResolver; + } + + + /** + * Set the DTD event handler. + * + * @param handler the new DTD handler + */ + public void setDTDHandler (DTDHandler handler) + { + dtdHandler = handler; + } + + + /** + * Get the current DTD event handler. + * + * @return The current DTD handler, or null if none was set. + */ + public DTDHandler getDTDHandler () + { + return dtdHandler; + } + + + /** + * Set the content event handler. + * + * @param handler the new content handler + */ + public void setContentHandler (ContentHandler handler) + { + contentHandler = handler; + } + + + /** + * Get the content event handler. + * + * @return The current content handler, or null if none was set. + */ + public ContentHandler getContentHandler () + { + return contentHandler; + } + + + /** + * Set the error event handler. + * + * @param handler the new error handler + */ + public void setErrorHandler (ErrorHandler handler) + { + errorHandler = handler; + } + + + /** + * Get the current error event handler. + * + * @return The current error handler, or null if none was set. + */ + public ErrorHandler getErrorHandler () + { + return errorHandler; + } + + + /** + * Parse a document. + * + * @param input The input source for the document entity. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @exception java.io.IOException An IO exception from the parser, + * possibly from a byte stream or character stream + * supplied by the application. + */ + public void parse (InputSource input) + throws SAXException, IOException + { + setupParse(); + parent.parse(input); + } + + + /** + * Parse a document. + * + * @param systemId The system identifier as a fully-qualified URI. + * @exception org.xml.sax.SAXException Any SAX exception, possibly + * wrapping another exception. + * @exception java.io.IOException An IO exception from the parser, + * possibly from a byte stream or character stream + * supplied by the application. + */ + public void parse (String systemId) + throws SAXException, IOException + { + parse(new InputSource(systemId)); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.EntityResolver. + //////////////////////////////////////////////////////////////////// + + + /** + * Filter an external entity resolution. + * + * @param publicId The entity's public identifier, or null. + * @param systemId The entity's system identifier. + * @return A new InputSource or null for the default. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + * @exception java.io.IOException The client may throw an + * I/O-related exception while obtaining the + * new InputSource. + */ + public InputSource resolveEntity (String publicId, String systemId) + throws SAXException, IOException + { + if (entityResolver != null) { + return entityResolver.resolveEntity(publicId, systemId); + } else { + return null; + } + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.DTDHandler. + //////////////////////////////////////////////////////////////////// + + + /** + * Filter a notation declaration event. + * + * @param name The notation name. + * @param publicId The notation's public identifier, or null. + * @param systemId The notation's system identifier, or null. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void notationDecl (String name, String publicId, String systemId) + throws SAXException + { + if (dtdHandler != null) { + dtdHandler.notationDecl(name, publicId, systemId); + } + } + + + /** + * Filter an unparsed entity declaration event. + * + * @param name The entity name. + * @param publicId The entity's public identifier, or null. + * @param systemId The entity's system identifier, or null. + * @param notationName The name of the associated notation. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void unparsedEntityDecl (String name, String publicId, + String systemId, String notationName) + throws SAXException + { + if (dtdHandler != null) { + dtdHandler.unparsedEntityDecl(name, publicId, systemId, + notationName); + } + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.ContentHandler. + //////////////////////////////////////////////////////////////////// + + + /** + * Filter a new document locator event. + * + * @param locator The document locator. + */ + public void setDocumentLocator (Locator locator) + { + this.locator = locator; + if (contentHandler != null) { + contentHandler.setDocumentLocator(locator); + } + } + + + /** + * Filter a start document event. + * + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void startDocument () + throws SAXException + { + if (contentHandler != null) { + contentHandler.startDocument(); + } + } + + + /** + * Filter an end document event. + * + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void endDocument () + throws SAXException + { + if (contentHandler != null) { + contentHandler.endDocument(); + } + } + + + /** + * Filter a start Namespace prefix mapping event. + * + * @param prefix The Namespace prefix. + * @param uri The Namespace URI. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void startPrefixMapping (String prefix, String uri) + throws SAXException + { + if (contentHandler != null) { + contentHandler.startPrefixMapping(prefix, uri); + } + } + + + /** + * Filter an end Namespace prefix mapping event. + * + * @param prefix The Namespace prefix. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void endPrefixMapping (String prefix) + throws SAXException + { + if (contentHandler != null) { + contentHandler.endPrefixMapping(prefix); + } + } + + + /** + * Filter a start element event. + * + * @param uri The element's Namespace URI, or the empty string. + * @param localName The element's local name, or the empty string. + * @param qName The element's qualified (prefixed) name, or the empty + * string. + * @param atts The element's attributes. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void startElement (String uri, String localName, String qName, + Attributes atts) + throws SAXException + { + if (contentHandler != null) { + contentHandler.startElement(uri, localName, qName, atts); + } + } + + + /** + * Filter an end element event. + * + * @param uri The element's Namespace URI, or the empty string. + * @param localName The element's local name, or the empty string. + * @param qName The element's qualified (prefixed) name, or the empty + * string. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void endElement (String uri, String localName, String qName) + throws SAXException + { + if (contentHandler != null) { + contentHandler.endElement(uri, localName, qName); + } + } + + + /** + * Filter a character data event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use from the array. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void characters (char ch[], int start, int length) + throws SAXException + { + if (contentHandler != null) { + contentHandler.characters(ch, start, length); + } + } + + + /** + * Filter an ignorable whitespace event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use from the array. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void ignorableWhitespace (char ch[], int start, int length) + throws SAXException + { + if (contentHandler != null) { + contentHandler.ignorableWhitespace(ch, start, length); + } + } + + + /** + * Filter a processing instruction event. + * + * @param target The processing instruction target. + * @param data The text following the target. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void processingInstruction (String target, String data) + throws SAXException + { + if (contentHandler != null) { + contentHandler.processingInstruction(target, data); + } + } + + + /** + * Filter a skipped entity event. + * + * @param name The name of the skipped entity. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void skippedEntity (String name) + throws SAXException + { + if (contentHandler != null) { + contentHandler.skippedEntity(name); + } + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.ErrorHandler. + //////////////////////////////////////////////////////////////////// + + + /** + * Filter a warning event. + * + * @param e The warning as an exception. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void warning (SAXParseException e) + throws SAXException + { + if (errorHandler != null) { + errorHandler.warning(e); + } + } + + + /** + * Filter an error event. + * + * @param e The error as an exception. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void error (SAXParseException e) + throws SAXException + { + if (errorHandler != null) { + errorHandler.error(e); + } + } + + + /** + * Filter a fatal error event. + * + * @param e The error as an exception. + * @exception org.xml.sax.SAXException The client may throw + * an exception during processing. + */ + public void fatalError (SAXParseException e) + throws SAXException + { + if (errorHandler != null) { + errorHandler.fatalError(e); + } + } + + + + //////////////////////////////////////////////////////////////////// + // Internal methods. + //////////////////////////////////////////////////////////////////// + + + /** + * Set up before a parse. + * + *Before every parse, check whether the parent is + * non-null, and re-register the filter for all of the + * events.
+ */ + private void setupParse () + { + if (parent == null) { + throw new NullPointerException("No parent for filter"); + } + parent.setEntityResolver(this); + parent.setDTDHandler(this); + parent.setContentHandler(this); + parent.setErrorHandler(this); + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + private XMLReader parent = null; + private Locator locator = null; + private EntityResolver entityResolver = null; + private DTDHandler dtdHandler = null; + private ContentHandler contentHandler = null; + private ErrorHandler errorHandler = null; + +} + +// end of XMLFilterImpl.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java new file mode 100644 index 00000000000..566e69b8d7b --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java @@ -0,0 +1,538 @@ +// XMLReaderAdapter.java - adapt an SAX2 XMLReader to a SAX1 Parser +// http://www.saxproject.org +// Written by David Megginson +// NO WARRANTY! This class is in the public domain. +// $Id: XMLReaderAdapter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ + +package org.xml.sax.helpers; + +import java.io.IOException; +import java.util.Locale; + +import org.xml.sax.Parser; // deprecated +import org.xml.sax.Locator; +import org.xml.sax.InputSource; +import org.xml.sax.AttributeList; // deprecated +import org.xml.sax.EntityResolver; +import org.xml.sax.DTDHandler; +import org.xml.sax.DocumentHandler; // deprecated +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; + +import org.xml.sax.XMLReader; +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXNotSupportedException; + + +/** + * Adapt a SAX2 XMLReader as a SAX1 Parser. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader} + * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader + * must support a true value for the + * http://xml.org/sax/features/namespace-prefixes property or parsing will fail + * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader + * supports a false value for the http://xml.org/sax/features/namespaces + * property, that will also be used to improve efficiency.
+ * + * @since SAX 2.0 + * @author David Megginson + * @version 2.0.1 (sax2r2) + * @see org.xml.sax.Parser + * @see org.xml.sax.XMLReader + */ +public class XMLReaderAdapter implements Parser, ContentHandler +{ + + + //////////////////////////////////////////////////////////////////// + // Constructor. + //////////////////////////////////////////////////////////////////// + + + /** + * Create a new adapter. + * + *Use the "org.xml.sax.driver" property to locate the SAX2 + * driver to embed.
+ * + * @exception org.xml.sax.SAXException If the embedded driver + * cannot be instantiated or if the + * org.xml.sax.driver property is not specified. + */ + public XMLReaderAdapter () + throws SAXException + { + setup(XMLReaderFactory.createXMLReader()); + } + + + /** + * Create a new adapter. + * + *Create a new adapter, wrapped around a SAX2 XMLReader. + * The adapter will make the XMLReader act like a SAX1 + * Parser.
+ * + * @param xmlReader The SAX2 XMLReader to wrap. + * @exception java.lang.NullPointerException If the argument is null. + */ + public XMLReaderAdapter (XMLReader xmlReader) + { + setup(xmlReader); + } + + + + /** + * Internal setup. + * + * @param xmlReader The embedded XMLReader. + */ + private void setup (XMLReader xmlReader) + { + if (xmlReader == null) { + throw new NullPointerException("XMLReader must not be null"); + } + this.xmlReader = xmlReader; + qAtts = new AttributesAdapter(); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.Parser. + //////////////////////////////////////////////////////////////////// + + + /** + * Set the locale for error reporting. + * + *This is not supported in SAX2, and will always throw + * an exception.
+ * + * @param locale the locale for error reporting. + * @see org.xml.sax.Parser#setLocale + * @exception org.xml.sax.SAXException Thrown unless overridden. + */ + public void setLocale (Locale locale) + throws SAXException + { + throw new SAXNotSupportedException("setLocale not supported"); + } + + + /** + * Register the entity resolver. + * + * @param resolver The new resolver. + * @see org.xml.sax.Parser#setEntityResolver + */ + public void setEntityResolver (EntityResolver resolver) + { + xmlReader.setEntityResolver(resolver); + } + + + /** + * Register the DTD event handler. + * + * @param handler The new DTD event handler. + * @see org.xml.sax.Parser#setDTDHandler + */ + public void setDTDHandler (DTDHandler handler) + { + xmlReader.setDTDHandler(handler); + } + + + /** + * Register the SAX1 document event handler. + * + *Note that the SAX1 document handler has no Namespace + * support.
+ * + * @param handler The new SAX1 document event handler. + * @see org.xml.sax.Parser#setDocumentHandler + */ + public void setDocumentHandler (DocumentHandler handler) + { + documentHandler = handler; + } + + + /** + * Register the error event handler. + * + * @param handler The new error event handler. + * @see org.xml.sax.Parser#setErrorHandler + */ + public void setErrorHandler (ErrorHandler handler) + { + xmlReader.setErrorHandler(handler); + } + + + /** + * Parse the document. + * + *This method will throw an exception if the embedded + * XMLReader does not support the + * http://xml.org/sax/features/namespace-prefixes property.
+ * + * @param systemId The absolute URL of the document. + * @exception java.io.IOException If there is a problem reading + * the raw content of the document. + * @exception org.xml.sax.SAXException If there is a problem + * processing the document. + * @see #parse(org.xml.sax.InputSource) + * @see org.xml.sax.Parser#parse(java.lang.String) + */ + public void parse (String systemId) + throws IOException, SAXException + { + parse(new InputSource(systemId)); + } + + + /** + * Parse the document. + * + *This method will throw an exception if the embedded + * XMLReader does not support the + * http://xml.org/sax/features/namespace-prefixes property.
+ * + * @param input An input source for the document. + * @exception java.io.IOException If there is a problem reading + * the raw content of the document. + * @exception org.xml.sax.SAXException If there is a problem + * processing the document. + * @see #parse(java.lang.String) + * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) + */ + public void parse (InputSource input) + throws IOException, SAXException + { + setupXMLReader(); + xmlReader.parse(input); + } + + + /** + * Set up the XML reader. + */ + private void setupXMLReader () + throws SAXException + { + xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); + try { + xmlReader.setFeature("http://xml.org/sax/features/namespaces", + false); + } catch (SAXException e) { + // NO OP: it's just extra information, and we can ignore it + } + xmlReader.setContentHandler(this); + } + + + + //////////////////////////////////////////////////////////////////// + // Implementation of org.xml.sax.ContentHandler. + //////////////////////////////////////////////////////////////////// + + + /** + * Set a document locator. + * + * @param locator The document locator. + * @see org.xml.sax.ContentHandler#setDocumentLocator + */ + public void setDocumentLocator (Locator locator) + { + if (documentHandler != null) + documentHandler.setDocumentLocator(locator); + } + + + /** + * Start document event. + * + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#startDocument + */ + public void startDocument () + throws SAXException + { + if (documentHandler != null) + documentHandler.startDocument(); + } + + + /** + * End document event. + * + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#endDocument + */ + public void endDocument () + throws SAXException + { + if (documentHandler != null) + documentHandler.endDocument(); + } + + + /** + * Adapt a SAX2 start prefix mapping event. + * + * @param prefix The prefix being mapped. + * @param uri The Namespace URI being mapped to. + * @see org.xml.sax.ContentHandler#startPrefixMapping + */ + public void startPrefixMapping (String prefix, String uri) + { + } + + + /** + * Adapt a SAX2 end prefix mapping event. + * + * @param prefix The prefix being mapped. + * @see org.xml.sax.ContentHandler#endPrefixMapping + */ + public void endPrefixMapping (String prefix) + { + } + + + /** + * Adapt a SAX2 start element event. + * + * @param uri The Namespace URI. + * @param localName The Namespace local name. + * @param qName The qualified (prefixed) name. + * @param atts The SAX2 attributes. + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#endDocument + */ + public void startElement (String uri, String localName, + String qName, Attributes atts) + throws SAXException + { + if (documentHandler != null) { + qAtts.setAttributes(atts); + documentHandler.startElement(qName, qAtts); + } + } + + + /** + * Adapt a SAX2 end element event. + * + * @param uri The Namespace URI. + * @param localName The Namespace local name. + * @param qName The qualified (prefixed) name. + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#endElement + */ + public void endElement (String uri, String localName, + String qName) + throws SAXException + { + if (documentHandler != null) + documentHandler.endElement(qName); + } + + + /** + * Adapt a SAX2 characters event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use. + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#characters + */ + public void characters (char ch[], int start, int length) + throws SAXException + { + if (documentHandler != null) + documentHandler.characters(ch, start, length); + } + + + /** + * Adapt a SAX2 ignorable whitespace event. + * + * @param ch An array of characters. + * @param start The starting position in the array. + * @param length The number of characters to use. + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#ignorableWhitespace + */ + public void ignorableWhitespace (char ch[], int start, int length) + throws SAXException + { + if (documentHandler != null) + documentHandler.ignorableWhitespace(ch, start, length); + } + + + /** + * Adapt a SAX2 processing instruction event. + * + * @param target The processing instruction target. + * @param data The remainder of the processing instruction + * @exception org.xml.sax.SAXException The client may raise a + * processing exception. + * @see org.xml.sax.ContentHandler#processingInstruction + */ + public void processingInstruction (String target, String data) + throws SAXException + { + if (documentHandler != null) + documentHandler.processingInstruction(target, data); + } + + + /** + * Adapt a SAX2 skipped entity event. + * + * @param name The name of the skipped entity. + * @see org.xml.sax.ContentHandler#skippedEntity + * @exception org.xml.sax.SAXException Throwable by subclasses. + */ + public void skippedEntity (String name) + throws SAXException + { + } + + + + //////////////////////////////////////////////////////////////////// + // Internal state. + //////////////////////////////////////////////////////////////////// + + XMLReader xmlReader; + DocumentHandler documentHandler; + AttributesAdapter qAtts; + + + + //////////////////////////////////////////////////////////////////// + // Internal class. + //////////////////////////////////////////////////////////////////// + + + /** + * Internal class to wrap a SAX2 Attributes object for SAX1. + */ + final class AttributesAdapter implements AttributeList + { + AttributesAdapter () + { + } + + + /** + * Set the embedded Attributes object. + * + * @param The embedded SAX2 Attributes. + */ + void setAttributes (Attributes attributes) + { + this.attributes = attributes; + } + + + /** + * Return the number of attributes. + * + * @return The length of the attribute list. + * @see org.xml.sax.AttributeList#getLength + */ + public int getLength () + { + return attributes.getLength(); + } + + + /** + * Return the qualified (prefixed) name of an attribute by position. + * + * @return The qualified name. + * @see org.xml.sax.AttributeList#getName + */ + public String getName (int i) + { + return attributes.getQName(i); + } + + + /** + * Return the type of an attribute by position. + * + * @return The type. + * @see org.xml.sax.AttributeList#getType(int) + */ + public String getType (int i) + { + return attributes.getType(i); + } + + + /** + * Return the value of an attribute by position. + * + * @return The value. + * @see org.xml.sax.AttributeList#getValue(int) + */ + public String getValue (int i) + { + return attributes.getValue(i); + } + + + /** + * Return the type of an attribute by qualified (prefixed) name. + * + * @return The type. + * @see org.xml.sax.AttributeList#getType(java.lang.String) + */ + public String getType (String qName) + { + return attributes.getType(qName); + } + + + /** + * Return the value of an attribute by qualified (prefixed) name. + * + * @return The value. + * @see org.xml.sax.AttributeList#getValue(java.lang.String) + */ + public String getValue (String qName) + { + return attributes.getValue(qName); + } + + private Attributes attributes; + } + +} + +// end of XMLReaderAdapter.java diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java new file mode 100644 index 00000000000..f2f51b52b3d --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java @@ -0,0 +1,202 @@ +// XMLReaderFactory.java - factory for creating a new reader. +// http://www.saxproject.org +// Written by David Megginson +// and by David Brownell +// NO WARRANTY! This class is in the Public Domain. +// $Id: XMLReaderFactory.java,v 1.14 2004/12/11 15:41:10 dog Exp $ + +package org.xml.sax.helpers; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import org.xml.sax.XMLReader; +import org.xml.sax.SAXException; + + +/** + * Factory for creating an XML reader. + * + *+ * This module, both source code and documentation, is in the + * Public Domain, and comes with NO WARRANTY. + * See http://www.saxproject.org + * for further information. + *+ * + *
This class contains static methods for creating an XML reader + * from an explicit class name, or based on runtime defaults:
+ * + *
+ * try {
+ * XMLReader myReader = XMLReaderFactory.createXMLReader();
+ * } catch (SAXException e) {
+ * System.err.println(e.getMessage());
+ * }
+ *
+ *
+ * Note to Distributions bundled with parsers:
+ * You should modify the implementation of the no-arguments
+ * createXMLReader to handle cases where the external
+ * configuration mechanisms aren't set up. That method should do its
+ * best to return a parser when one is in the class path, even when
+ * nothing bound its class name to org.xml.sax.driver so
+ * those configuration mechanisms would see it.
This constructor prevents the class from being instantiated.
+ */ + private XMLReaderFactory () + { + } + + private static final String property = "org.xml.sax.driver"; + + /** + * Attempt to create an XMLReader from system defaults. + * In environments which can support it, the name of the XMLReader + * class is determined by trying each these options in order, and + * using the first one which succeeds:org.xml.sax.driver
+ * has a value, that is used as an XMLReader class name. org.xml.sax.parser system
+ * property will often be usable.) In environments such as small embedded systems, which can not + * support that flexibility, other mechanisms to determine the default + * may be used.
+ * + *Note that many Java environments allow system properties to be + * initialized on a command line. This means that in most cases + * setting a good value for that property ensures that calls to this + * method will succeed, except when security policies intervene. + * This will also maximize application portability to older SAX + * environments, with less robust implementations of this method. + *
+ * + * @return A new XMLReader. + * @exception org.xml.sax.SAXException If no default XMLReader class + * can be identified and instantiated. + * @see #createXMLReader(java.lang.String) + */ + public static XMLReader createXMLReader () + throws SAXException + { + String className = null; + ClassLoader loader = NewInstance.getClassLoader (); + + // 1. try the JVM-instance-wide system property + try { className = System.getProperty (property); } + catch (RuntimeException e) { /* normally fails for applets */ } + + // 2. if that fails, try META-INF/services/ + if (className == null) { + try { + String service = "META-INF/services/" + property; + InputStream in; + BufferedReader reader; + + if (loader == null) + in = ClassLoader.getSystemResourceAsStream (service); + else + in = loader.getResourceAsStream (service); + + if (in != null) { + reader = new BufferedReader ( + new InputStreamReader (in, "UTF8")); + className = reader.readLine (); + in.close (); + } + } catch (Exception e) { + } + } + + // 3. Distro-specific fallback + if (className == null) { +// BEGIN DISTRIBUTION-SPECIFIC + + // EXAMPLE: + // className = "com.example.sax.XmlReader"; + // or a $JAVA_HOME/jre/lib/*properties setting... + +// END DISTRIBUTION-SPECIFIC + } + + // do we know the XMLReader implementation class yet? + if (className != null) + return loadClass (loader, className); + + // 4. panic -- adapt any SAX1 parser + try { + return new ParserAdapter (ParserFactory.makeParser ()); + } catch (Exception e) { + throw new SAXException ("Can't create default XMLReader; " + + "is system property org.xml.sax.driver set?"); + } + } + + + /** + * Attempt to create an XML reader from a class name. + * + *Given a class name, this method attempts to load + * and instantiate the class as an XML reader.
+ * + *Note that this method will not be usable in environments where + * the caller (perhaps an applet) is not permitted to load classes + * dynamically.
+ * + * @return A new XML reader. + * @exception org.xml.sax.SAXException If the class cannot be + * loaded, instantiated, and cast to XMLReader. + * @see #createXMLReader() + */ + public static XMLReader createXMLReader (String className) + throws SAXException + { + return loadClass (NewInstance.getClassLoader (), className); + } + + private static XMLReader loadClass (ClassLoader loader, String className) + throws SAXException + { + try { + return (XMLReader) NewInstance.newInstance (loader, className); + } catch (ClassNotFoundException e1) { + throw new SAXException("SAX2 driver class " + className + + " not found", e1); + } catch (IllegalAccessException e2) { + throw new SAXException("SAX2 driver class " + className + + " found but cannot be loaded", e2); + } catch (InstantiationException e3) { + throw new SAXException("SAX2 driver class " + className + + " loaded but cannot be instantiated (no empty public constructor?)", + e3); + } catch (ClassCastException e4) { + throw new SAXException("SAX2 driver class " + className + + " does not implement XMLReader", e4); + } + } +} diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/package.html b/libjava/classpath/external/sax/org/xml/sax/helpers/package.html new file mode 100644 index 00000000000..f3c7c9629cb --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/package.html @@ -0,0 +1,11 @@ + + + + +This package contains "helper" classes, including +support for bootstrapping SAX-based applications. + +
See http://www.saxproject.org +for more information about SAX.
+ + diff --git a/libjava/classpath/external/sax/org/xml/sax/package.html b/libjava/classpath/external/sax/org/xml/sax/package.html new file mode 100644 index 00000000000..4596a71f0ff --- /dev/null +++ b/libjava/classpath/external/sax/org/xml/sax/package.html @@ -0,0 +1,297 @@ + + + + +This package provides the core SAX APIs. +Some SAX1 APIs are deprecated to encourage integration of +namespace-awareness into designs of new applications +and into maintenance of existing infrastructure.
+ +See http://www.saxproject.org +for more information about SAX.
+ + + One of the essential characteristics of SAX2 is that it added
+feature flags which can be used to examine and perhaps modify
+parser modes, in particular modes such as validation.
+Since features are identified by (absolute) URIs, anyone
+can define such features.
+Currently defined standard feature URIs have the prefix
+http://xml.org/sax/features/ before an identifier such as
+validation. Turn features on or off using
+setFeature. Those standard identifiers are:
| Feature ID | +Access | +Default | +Description | +
|---|---|---|---|
| external-general-entities | +read/write | +unspecified | +Reports whether this parser processes external + general entities; always true if validating. + | +
| external-parameter-entities | +read/write | +unspecified | +Reports whether this parser processes external + parameter entities; always true if validating. + | +
| is-standalone | +(parsing) read-only, (not parsing) none | +not applicable | +May be examined only during a parse, after the + startDocument() callback has been completed; read-only. + The value is true if the document specified standalone="yes" in + its XML declaration, and otherwise is false. + | +
| lexical-handler/parameter-entities | +read/write | +unspecified | +A value of "true" indicates that the LexicalHandler will report + the beginning and end of parameter entities. + | +
| namespaces | +read/write | +true | +A value of "true" indicates namespace URIs and unprefixed local names + for element and attribute names will be available. + | +
| namespace-prefixes | +read/write | +false | +A value of "true" indicates that XML qualified names (with prefixes) and + attributes (including xmlns* attributes) will be available. + | +
| resolve-dtd-uris | +read/write | +true | + A value of "true" indicates that system IDs in declarations will
+ be absolutized (relative to their base URIs) before reporting.
+ (That is the default behavior for all SAX2 XML parsers.)
+ A value of "false" indicates those IDs will not be absolutized;
+ parsers will provide the base URI from
+ Locator.getSystemId().
+ This applies to system IDs passed in
|
+
| string-interning | +read/write | +unspecified | +Has a value of "true" if all XML names (for elements, prefixes, + attributes, entities, notations, and local names), + as well as Namespace URIs, will have been interned + using java.lang.String.intern. This supports fast + testing of equality/inequality against string constants, + rather than forcing slower calls to String.equals(). + | +
| unicode-normalization-checking | +read/write | +false | +Controls whether the parser reports Unicode normalization + errors as described in section 2.13 and Appendix B of the + XML 1.1 Recommendation. If true, Unicode normalization + errors are reported using the ErrorHandler.error() callback. + Such errors are not fatal in themselves (though, obviously, + other Unicode-related encoding errors may be). + | +
| use-attributes2 | +read-only | +not applicable | +Returns "true" if the Attributes objects passed by + this parser in ContentHandler.startElement() + implement the org.xml.sax.ext.Attributes2 interface. + That interface exposes additional DTD-related information, + such as whether the attribute was specified in the + source text rather than defaulted. + | +
| use-locator2 | +read-only | +not applicable | +Returns "true" if the Locator objects passed by + this parser in ContentHandler.setDocumentLocator() + implement the org.xml.sax.ext.Locator2 interface. + That interface exposes additional entity information, + such as the character encoding and XML version used. + | +
| use-entity-resolver2 | +read/write | +true | +Returns "true" if, when setEntityResolver is given + an object implementing the org.xml.sax.ext.EntityResolver2 interface, + those new methods will be used. + Returns "false" to indicate that those methods will not be used. + | +
| validation | +read/write | +unspecified | +Controls whether the parser is reporting all validity + errors; if true, all external entities will be read. + | +
| xmlns-uris | +read/write | +false | +Controls whether, when the namespace-prefixes feature + is set, the parser treats namespace declaration attributes as + being in the http://www.w3.org/2000/xmlns/ namespace. + By default, SAX2 conforms to the original "Namespaces in XML" + Recommendation, which explicitly states that such attributes are + not in any namespace. + Setting this optional flag to "true" makes the SAX2 events conform to + a later backwards-incompatible revision of that recommendation, + placing those attributes in a namespace. + | +
| xml-1.1 | +read-only | +not applicable | +Returns "true" if the parser supports both XML 1.1 and XML 1.0. + Returns "false" if the parser supports only XML 1.0. + | +
Support for the default values of the +namespaces and namespace-prefixes +properties is required. +Support for any other feature flags is entirely optional. +
+ +For default values not specified by SAX2, +each XMLReader implementation specifies its default, +or may choose not to expose the feature flag. +Unless otherwise specified here, +implementations may support changing current values +of these standard feature flags, but not while parsing. +
+ + For parser interface characteristics that are described
+as objects, a separate namespace is defined. The
+objects in this namespace are again identified by URI, and
+the standard property URIs have the prefix
+http://xml.org/sax/properties/ before an identifier such as
+lexical-handler or
+dom-node. Manage those properties using
+setProperty(). Those identifiers are:
| Property ID | +Description | +
|---|---|
| declaration-handler | +Used to see most DTD declarations except those treated + as lexical ("document element name is ...") or which are + mandatory for all SAX parsers (DTDHandler). + The Object must implement org.xml.sax.ext.DeclHandler. + | +
| document-xml-version | +May be examined only during a parse, after the startDocument() + callback has been completed; read-only. This property is a + literal string describing the actual XML version of the document, + such as "1.0" or "1.1". + | +
| dom-node | +For "DOM Walker" style parsers, which ignore their + parser.parse() parameters, this is used to + specify the DOM (sub)tree being walked by the parser. + The Object must implement the + org.w3c.dom.Node interface. + | +
| lexical-handler | +Used to see some syntax events that are essential in some + applications: comments, CDATA delimiters, selected general + entity inclusions, and the start and end of the DTD + (and declaration of document element name). + The Object must implement org.xml.sax.ext.LexicalHandler. + | +
| xml-string | +Readable only during a parser callback, this exposes a TBS + chunk of characters responsible for the current event. | +
All of these standard properties are optional; +XMLReader implementations need not support them. +
+ + \ No newline at end of file diff --git a/libjava/classpath/external/w3c_dom/.cvsignore b/libjava/classpath/external/w3c_dom/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/external/w3c_dom/COPYRIGHT.html b/libjava/classpath/external/w3c_dom/COPYRIGHT.html new file mode 100644 index 00000000000..c7e0e497a5f --- /dev/null +++ b/libjava/classpath/external/w3c_dom/COPYRIGHT.html @@ -0,0 +1,106 @@ + + + + ++ The DOM bindings are published under the W3C Software Copyright Notice + and License. The software license requires "Notice of any changes or + modifications to the W3C files, including the date changes were made." + Consequently, modified versions of the DOM bindings must document that + they do not conform to the W3C standard; in the case of the IDL + definitions, the pragma prefix can no longer be 'w3c.org'; in the case of + the Java language binding, the package names can no longer be in the + 'org.w3c' package. +
++ Note: The original version of the W3C Software Copyright Notice + and License could be found at http://www.w3.org/Consortium/Legal/copyright-software-19980720 +
++ This W3C work (including software, documents, or other related items) is + being provided by the copyright holders under the following license. By + obtaining, using and/or copying this work, you (the licensee) agree that + you have read, understood, and will comply with the following terms and + conditions: +
++ Permission to use, copy, and modify this software and its documentation, + with or without modification, for any purpose and without fee or + royalty is hereby granted, provided that you include the following on ALL + copies of the software and documentation or portions thereof, including + modifications, that you make: +
++ THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT + HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR + DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + TRADEMARKS OR OTHER RIGHTS. +
++ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR + DOCUMENTATION. +
++ The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to the software without specific, + written prior permission. Title to copyright in this software and any + associated documentation will at all times remain with copyright + holders. +
+ + diff --git a/libjava/classpath/external/w3c_dom/Makefile.am b/libjava/classpath/external/w3c_dom/Makefile.am new file mode 100644 index 00000000000..701cbe47456 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/Makefile.am @@ -0,0 +1,149 @@ +## Input file for automake to generate the Makefile.in used by configure + +EXTRA_DIST = README \ +org/w3c/dom/Attr.java \ +org/w3c/dom/CDATASection.java \ +org/w3c/dom/CharacterData.java \ +org/w3c/dom/Comment.java \ +org/w3c/dom/DOMConfiguration.java \ +org/w3c/dom/DOMError.java \ +org/w3c/dom/DOMErrorHandler.java \ +org/w3c/dom/DOMException.java \ +org/w3c/dom/DOMImplementation.java \ +org/w3c/dom/DOMImplementationList.java \ +org/w3c/dom/DOMImplementationSource.java \ +org/w3c/dom/DOMLocator.java \ +org/w3c/dom/DOMStringList.java \ +org/w3c/dom/Document.java \ +org/w3c/dom/DocumentFragment.java \ +org/w3c/dom/DocumentType.java \ +org/w3c/dom/Element.java \ +org/w3c/dom/Entity.java \ +org/w3c/dom/EntityReference.java \ +org/w3c/dom/NameList.java \ +org/w3c/dom/NamedNodeMap.java \ +org/w3c/dom/Node.java \ +org/w3c/dom/NodeList.java \ +org/w3c/dom/Notation.java \ +org/w3c/dom/ProcessingInstruction.java \ +org/w3c/dom/Text.java \ +org/w3c/dom/TypeInfo.java \ +org/w3c/dom/UserDataHandler.java \ +org/w3c/dom/bootstrap/DOMImplementationRegistry.java \ +org/w3c/dom/css/CSS2Properties.java \ +org/w3c/dom/css/CSSCharsetRule.java \ +org/w3c/dom/css/CSSFontFaceRule.java \ +org/w3c/dom/css/CSSImportRule.java \ +org/w3c/dom/css/CSSMediaRule.java \ +org/w3c/dom/css/CSSPageRule.java \ +org/w3c/dom/css/CSSPrimitiveValue.java \ +org/w3c/dom/css/CSSRule.java \ +org/w3c/dom/css/CSSRuleList.java \ +org/w3c/dom/css/CSSStyleDeclaration.java \ +org/w3c/dom/css/CSSStyleRule.java \ +org/w3c/dom/css/CSSStyleSheet.java \ +org/w3c/dom/css/CSSUnknownRule.java \ +org/w3c/dom/css/CSSValue.java \ +org/w3c/dom/css/CSSValueList.java \ +org/w3c/dom/css/Counter.java \ +org/w3c/dom/css/DOMImplementationCSS.java \ +org/w3c/dom/css/DocumentCSS.java \ +org/w3c/dom/css/ElementCSSInlineStyle.java \ +org/w3c/dom/css/RGBColor.java \ +org/w3c/dom/css/Rect.java \ +org/w3c/dom/css/ViewCSS.java \ +org/w3c/dom/events/DocumentEvent.java \ +org/w3c/dom/events/Event.java \ +org/w3c/dom/events/EventException.java \ +org/w3c/dom/events/EventListener.java \ +org/w3c/dom/events/EventTarget.java \ +org/w3c/dom/events/MouseEvent.java \ +org/w3c/dom/events/MutationEvent.java \ +org/w3c/dom/events/UIEvent.java \ +org/w3c/dom/html2/HTMLAnchorElement.java \ +org/w3c/dom/html2/HTMLAppletElement.java \ +org/w3c/dom/html2/HTMLAreaElement.java \ +org/w3c/dom/html2/HTMLBRElement.java \ +org/w3c/dom/html2/HTMLBaseElement.java \ +org/w3c/dom/html2/HTMLBaseFontElement.java \ +org/w3c/dom/html2/HTMLBodyElement.java \ +org/w3c/dom/html2/HTMLButtonElement.java \ +org/w3c/dom/html2/HTMLCollection.java \ +org/w3c/dom/html2/HTMLDListElement.java \ +org/w3c/dom/html2/HTMLDirectoryElement.java \ +org/w3c/dom/html2/HTMLDivElement.java \ +org/w3c/dom/html2/HTMLDocument.java \ +org/w3c/dom/html2/HTMLElement.java \ +org/w3c/dom/html2/HTMLFieldSetElement.java \ +org/w3c/dom/html2/HTMLFontElement.java \ +org/w3c/dom/html2/HTMLFormElement.java \ +org/w3c/dom/html2/HTMLFrameElement.java \ +org/w3c/dom/html2/HTMLFrameSetElement.java \ +org/w3c/dom/html2/HTMLHRElement.java \ +org/w3c/dom/html2/HTMLHeadElement.java \ +org/w3c/dom/html2/HTMLHeadingElement.java \ +org/w3c/dom/html2/HTMLHtmlElement.java \ +org/w3c/dom/html2/HTMLIFrameElement.java \ +org/w3c/dom/html2/HTMLImageElement.java \ +org/w3c/dom/html2/HTMLInputElement.java \ +org/w3c/dom/html2/HTMLIsIndexElement.java \ +org/w3c/dom/html2/HTMLLIElement.java \ +org/w3c/dom/html2/HTMLLabelElement.java \ +org/w3c/dom/html2/HTMLLegendElement.java \ +org/w3c/dom/html2/HTMLLinkElement.java \ +org/w3c/dom/html2/HTMLMapElement.java \ +org/w3c/dom/html2/HTMLMenuElement.java \ +org/w3c/dom/html2/HTMLMetaElement.java \ +org/w3c/dom/html2/HTMLModElement.java \ +org/w3c/dom/html2/HTMLOListElement.java \ +org/w3c/dom/html2/HTMLObjectElement.java \ +org/w3c/dom/html2/HTMLOptGroupElement.java \ +org/w3c/dom/html2/HTMLOptionElement.java \ +org/w3c/dom/html2/HTMLOptionsCollection.java \ +org/w3c/dom/html2/HTMLParagraphElement.java \ +org/w3c/dom/html2/HTMLParamElement.java \ +org/w3c/dom/html2/HTMLPreElement.java \ +org/w3c/dom/html2/HTMLQuoteElement.java \ +org/w3c/dom/html2/HTMLScriptElement.java \ +org/w3c/dom/html2/HTMLSelectElement.java \ +org/w3c/dom/html2/HTMLStyleElement.java \ +org/w3c/dom/html2/HTMLTableCaptionElement.java \ +org/w3c/dom/html2/HTMLTableCellElement.java \ +org/w3c/dom/html2/HTMLTableColElement.java \ +org/w3c/dom/html2/HTMLTableElement.java \ +org/w3c/dom/html2/HTMLTableRowElement.java \ +org/w3c/dom/html2/HTMLTableSectionElement.java \ +org/w3c/dom/html2/HTMLTextAreaElement.java \ +org/w3c/dom/html2/HTMLTitleElement.java \ +org/w3c/dom/html2/HTMLUListElement.java \ +org/w3c/dom/ls/DOMImplementationLS.java \ +org/w3c/dom/ls/LSException.java \ +org/w3c/dom/ls/LSInput.java \ +org/w3c/dom/ls/LSLoadEvent.java \ +org/w3c/dom/ls/LSOutput.java \ +org/w3c/dom/ls/LSParser.java \ +org/w3c/dom/ls/LSParserFilter.java \ +org/w3c/dom/ls/LSProgressEvent.java \ +org/w3c/dom/ls/LSResourceResolver.java \ +org/w3c/dom/ls/LSSerializer.java \ +org/w3c/dom/ls/LSSerializerFilter.java \ +org/w3c/dom/ranges/DocumentRange.java \ +org/w3c/dom/ranges/Range.java \ +org/w3c/dom/ranges/RangeException.java \ +org/w3c/dom/stylesheets/DocumentStyle.java \ +org/w3c/dom/stylesheets/LinkStyle.java \ +org/w3c/dom/stylesheets/MediaList.java \ +org/w3c/dom/stylesheets/StyleSheet.java \ +org/w3c/dom/stylesheets/StyleSheetList.java \ +org/w3c/dom/traversal/DocumentTraversal.java \ +org/w3c/dom/traversal/NodeFilter.java \ +org/w3c/dom/traversal/NodeIterator.java \ +org/w3c/dom/traversal/TreeWalker.java \ +org/w3c/dom/views/AbstractView.java \ +org/w3c/dom/views/DocumentView.java \ +org/w3c/dom/xpath/XPathEvaluator.java \ +org/w3c/dom/xpath/XPathException.java \ +org/w3c/dom/xpath/XPathExpression.java \ +org/w3c/dom/xpath/XPathNSResolver.java \ +org/w3c/dom/xpath/XPathNamespace.java \ +org/w3c/dom/xpath/XPathResult.java diff --git a/libjava/classpath/external/w3c_dom/README b/libjava/classpath/external/w3c_dom/README new file mode 100644 index 00000000000..6670651efc9 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/README @@ -0,0 +1,97 @@ +Bindings for the Document Object Model (DOM). +DOM is not maintained as part of GNU Classpath, but is used with GNU Classpath. + +The packages includes are: + +Document Object Model (DOM) Level 3 Core Specification +http://www.w3.org/TR/DOM-Level-3-Core/ +(07 April 2004) + +Document Object Model (DOM) Level 3 Load and Save Specification +http://www.w3.org/TR/DOM-Level-3-LS/ +(07 April 2004) + +Document Object Model (DOM) Level 2 Events Specification +http://www.w3.org/TR/DOM-Level-2-Events/ +(13 November 2000) +Latest errata: 20021016 + +Document Object Model (DOM) Level 2 Views Specification +http://www.w3.org/TR/DOM-Level-2-Views/ +(13 November 2000) +Latest errata: 20021016 + +Document Object Model (DOM) Level 2 Style Specification +http://www.w3.org/TR/DOM-Level-2-Style/ +(13 November 2000) +Latest errata: 20021016 + +Document Object Model (DOM) Level 2 Traversal and Range Specification +http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ +(13 November 2000) +Latest errata: 20021016 + +Document Object Model (DOM) Level 2 HTML Specification +http://www.w3.org/TR/DOM-Level-2-HTML/ +(09 January 2003) + +Document Object Model (DOM) Level 3 XPath Specification +http://www.w3.org/TR/DOM-Level-3-XPath/ +(26 February 2004) + +Errata can be found at: +http://www.w3.org/2000/11/DOM-Level-2-errata +http://www.w3.org/2004/01/DOM-Level-3-errata + +The only change to the sources is setting the additional fallback for +org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance() to +gnu.xml.dom.ImplementationSource. + +When importing new versions don't forget to update the Makefile.am +to list any new files (or to remove old ones). + +All files are distributed under the following +W3C Software Short Notice: + + Copyright (c) 2004 World Wide Web Consortium, + + (Massachusetts Institute of Technology, European Research Consortium for + Informatics and Mathematics, Keio University). All Rights Reserved. This + work is distributed under the W3C(r) Software License [1] in the hope that + it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + + Permission to copy, modify, and distribute this software and its + documentation, with or without modification, for any purpose and + without fee or royalty is hereby granted, provided that you include + the following on ALL copies of the software and documentation or + portions thereof, including modifications: + + 1. The full text of this NOTICE in a location viewable to users of + the redistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or + terms and conditions. If none exist, the W3C Software Short Notice + should be included (hypertext is preferred, text is permitted) within + the body of any redistributed or derivative code. + 3. Notice of any changes or modifications to the files, including + the date changes were made. (We recommend you provide URIs to the + location from which the code is derived.) + + THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT + HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR + DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + TRADEMARKS OR OTHER RIGHTS. + + COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL + OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR + DOCUMENTATION. + + The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to the software without specific, + written prior permission. Title to copyright in this software and any + associated documentation will at all times remain with copyright + holders. diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java new file mode 100644 index 00000000000..d9ed6ffe128 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java @@ -0,0 +1,275 @@ +/* + * Copyright (c) 2004 World Wide Web Consortium, + * + * (Massachusetts Institute of Technology, European Research Consortium for + * Informatics and Mathematics, Keio University). All Rights Reserved. This + * work is distributed under the W3C(r) Software License [1] in the hope that + * it will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + */ + +package org.w3c.dom; + +/** + * TheAttr interface represents an attribute in an
+ * Element object. Typically the allowable values for the
+ * attribute are defined in a schema associated with the document.
+ * Attr objects inherit the Node interface, but
+ * since they are not actually child nodes of the element they describe, the
+ * DOM does not consider them part of the document tree. Thus, the
+ * Node attributes parentNode,
+ * previousSibling, and nextSibling have a
+ * null value for Attr objects. The DOM takes the
+ * view that attributes are properties of elements rather than having a
+ * separate identity from the elements they are associated with; this should
+ * make it more efficient to implement such features as default attributes
+ * associated with all elements of a given type. Furthermore,
+ * Attr nodes may not be immediate children of a
+ * DocumentFragment. However, they can be associated with
+ * Element nodes contained within a
+ * DocumentFragment. In short, users and implementors of the
+ * DOM need to be aware that Attr nodes have some things in
+ * common with other objects inheriting the Node interface, but
+ * they also are quite distinct.
+ *
The attribute's effective value is determined as follows: if this
+ * attribute has been explicitly assigned any value, that value is the
+ * attribute's effective value; otherwise, if there is a declaration for
+ * this attribute, and that declaration includes a default value, then that
+ * default value is the attribute's effective value; otherwise, the
+ * attribute does not exist on this element in the structure model until it
+ * has been explicitly added. Note that the Node.nodeValue
+ * attribute on the Attr instance can also be used to retrieve
+ * the string version of the attribute's value(s).
+ *
If the attribute was not explicitly given a value in the instance
+ * document but has a default value provided by the schema associated with
+ * the document, an attribute node will be created with
+ * specified set to false. Removing attribute
+ * nodes for which a default value is defined in the schema generates a new
+ * attribute node with the default value and specified set to
+ * false. If validation occurred while invoking
+ * Document.normalizeDocument(), attribute nodes with
+ * specified equals to false are recomputed
+ * according to the default attribute values provided by the schema. If no
+ * default value is associate with this attribute in the schema, the
+ * attribute node is discarded.
+ *
In XML, where the value of an attribute can contain entity references,
+ * the child nodes of the Attr node may be either
+ * Text or EntityReference nodes (when these are
+ * in use; see the description of EntityReference for
+ * discussion).
+ *
The DOM Core represents all attribute values as simple strings, even if + * the DTD or schema associated with the document declares them of some + * specific type such as tokenized. + *
The way attribute value normalization is performed by the DOM
+ * implementation depends on how much the implementation knows about the
+ * schema in use. Typically, the value and
+ * nodeValue attributes of an Attr node initially
+ * returns the normalized value given by the parser. It is also the case
+ * after Document.normalizeDocument() is called (assuming the
+ * right options have been set). But this may not be the case after
+ * mutation, independently of whether the mutation is performed by setting
+ * the string value directly or by changing the Attr child
+ * nodes. In particular, this is true when character
+ * references are involved, given that they are not represented in the DOM and they
+ * impact attribute value normalization. On the other hand, if the
+ * implementation knows about the schema in use when the attribute value is
+ * changed, and it is of a different type than CDATA, it may normalize it
+ * again at that time. This is especially true of specialized DOM
+ * implementations, such as SVG DOM implementations, which store attribute
+ * values in an internal form different from a string.
+ *
The following table gives some examples of the relations between the + * attribute value in the original document (parsed attribute), the value as + * exposed in the DOM, and the serialization of the value: + *
| Examples | + *Parsed + * attribute value | + *Initial Attr.value |
+ * Serialized attribute value | + *
|---|---|---|---|
| + * Character reference | + *
+ * "x²=5"+ * |
+ *
+ * "x\u00b2=5"+ * |
+ *
+ * "x²=5"+ * |
+ *
| Built-in + * character entity | + *
+ * "y<6"+ * |
+ *
+ * "y<6"+ * |
+ *
+ * "y<6"+ * |
+ *
| Literal newline between | + *
+ * + * "x=5 y=6"+ * |
+ *
+ * "x=5 y=6"+ * |
+ *
+ * "x=5 y=6"+ * |
+ *
| Normalized newline between | + *
+ * "x=5 + * y=6"+ * |
+ *
+ * "x=5 y=6"+ * |
+ *
+ * "x=5 y=6"+ * |
+ *
Entity e with literal newline |
+ *
+ * + * <!ENTITY e '... ...'> [...]> "x=5&e;y=6"+ * |
+ * Dependent on Implementation and Load Options | + *Dependent on Implementation and Load/Save Options | + *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Attr extends Node {
+ /**
+ * Returns the name of this attribute. If Node.localName is
+ * different from null, this attribute is a qualified name.
+ */
+ public String getName();
+
+ /**
+ * True if this attribute was explicitly given a value in
+ * the instance document, false otherwise. If the
+ * application changed the value of this attribute node (even if it ends
+ * up having the same value as the default value) then it is set to
+ * true. The implementation may handle attributes with
+ * default values from other schemas similarly but applications should
+ * use Document.normalizeDocument() to guarantee this
+ * information is up-to-date.
+ */
+ public boolean getSpecified();
+
+ /**
+ * On retrieval, the value of the attribute is returned as a string.
+ * Character and general entity references are replaced with their
+ * values. See also the method getAttribute on the
+ * Element interface.
+ *
On setting, this creates a Text node with the unparsed
+ * contents of the string, i.e. any characters that an XML processor
+ * would recognize as markup are instead treated as literal text. See
+ * also the method Element.setAttribute().
+ *
Some specialized implementations, such as some [SVG 1.1]
+ * implementations, may do normalization automatically, even after
+ * mutation; in such case, the value on retrieval may differ from the
+ * value on setting.
+ */
+ public String getValue();
+ /**
+ * On retrieval, the value of the attribute is returned as a string.
+ * Character and general entity references are replaced with their
+ * values. See also the method getAttribute on the
+ * Element interface.
+ *
On setting, this creates a Text node with the unparsed
+ * contents of the string, i.e. any characters that an XML processor
+ * would recognize as markup are instead treated as literal text. See
+ * also the method Element.setAttribute().
+ *
Some specialized implementations, such as some [SVG 1.1]
+ * implementations, may do normalization automatically, even after
+ * mutation; in such case, the value on retrieval may differ from the
+ * value on setting.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setValue(String value)
+ throws DOMException;
+
+ /**
+ * The Element node this attribute is attached to or
+ * null if this attribute is not in use.
+ * @since DOM Level 2
+ */
+ public Element getOwnerElement();
+
+ /**
+ * The type information associated with this attribute. While the type
+ * information contained in this attribute is guarantee to be correct
+ * after loading the document or invoking
+ * Document.normalizeDocument(), schemaTypeInfo
+ * may not be reliable if the node was moved.
+ * @since DOM Level 3
+ */
+ public TypeInfo getSchemaTypeInfo();
+
+ /**
+ * Returns whether this attribute is known to be of type ID (i.e. to
+ * contain an identifier for its owner element) or not. When it is and
+ * its value is unique, the ownerElement of this attribute
+ * can be retrieved using the method Document.getElementById
+ * . The implementation could use several ways to determine if an
+ * attribute node is known to contain an identifier:
+ *
Document.normalizeDocument(), the post-schema-validation
+ * infoset contributions (PSVI contributions) values are used to
+ * determine if this attribute is a schema-determined ID attribute using
+ * the
+ * schema-determined ID definition in [XPointer]
+ * .
+ * Document.normalizeDocument(), the infoset [type definition] value is used to determine if this attribute is a DTD-determined ID
+ * attribute using the
+ * DTD-determined ID definition in [XPointer]
+ * .
+ * Element.setIdAttribute(),
+ * Element.setIdAttributeNS(), or
+ * Element.setIdAttributeNode(), i.e. it is an
+ * user-determined ID attribute;
+ * Note: XPointer framework (see section 3.2 in [XPointer] + * ) consider the DOM user-determined ID attribute as being part of the + * XPointer externally-determined ID definition. + *
Document.normalizeDocument(), all user-determined ID
+ * attributes are reset and all attribute nodes ID information are then
+ * reevaluated in accordance to the schema used. As a consequence, if
+ * the Attr.schemaTypeInfo attribute contains an ID type,
+ * isId will always return true.
+ * @since DOM Level 3
+ */
+ public boolean isId();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java
new file mode 100644
index 00000000000..9267227e42d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * CDATA sections are used to escape blocks of text containing characters that
+ * would otherwise be regarded as markup. The only delimiter that is
+ * recognized in a CDATA section is the "]]>" string that ends the CDATA
+ * section. CDATA sections cannot be nested. Their primary purpose is for
+ * including material such as XML fragments, without needing to escape all
+ * the delimiters.
+ * The CharacterData.data attribute holds the text that is
+ * contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and
+ * that, depending on the character encoding ("charset") chosen for
+ * serialization, it may be impossible to write out some characters as part
+ * of a CDATA section.
+ *
The CDATASection interface inherits from the
+ * CharacterData interface through the Text
+ * interface. Adjacent CDATASection nodes are not merged by use
+ * of the normalize method of the Node interface.
+ *
No lexical check is done on the content of a CDATA section and it is
+ * therefore possible to have the character sequence "]]>"
+ * in the content, which is illegal in a CDATA section per section 2.7 of [XML 1.0]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization or the cdata section must be splitted before the
+ * serialization (see also the parameter "split-cdata-sections"
+ * in the DOMConfiguration interface).
+ *
Note: Because no markup is recognized within a
+ * CDATASection, character numeric references cannot be used as
+ * an escape mechanism when serializing. Therefore, action needs to be taken
+ * when serializing a CDATASection with a character encoding
+ * where some of the contained characters cannot be represented. Failure to
+ * do so would not produce well-formed XML.
+ *
Note: One potential solution in the serialization process is to + * end the CDATA section before the character, output the character using a + * character reference or entity reference, and open a new CDATA section for + * any further characters in the text node. Note, however, that some code + * conversion libraries at the time of writing do not return an error or + * exception when a character is missing from the encoding, making the task + * of ensuring that data is not corrupted on serialization more difficult. + *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface CDATASection extends Text {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java
new file mode 100644
index 00000000000..a12dcedfae3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The CharacterData interface extends Node with a set of
+ * attributes and methods for accessing character data in the DOM. For
+ * clarity this set is defined here rather than on each object that uses
+ * these attributes and methods. No DOM objects correspond directly to
+ * CharacterData, though Text and others do
+ * inherit the interface from it. All offsets in this interface
+ * start from 0.
+ *
As explained in the DOMString interface, text strings in
+ * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In
+ * the following, the term 16-bit units is used whenever necessary to
+ * indicate that indexing on CharacterData is done in 16-bit units.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface CharacterData extends Node {
+ /**
+ * The character data of the node that implements this interface. The DOM
+ * implementation may not put arbitrary limits on the amount of data
+ * that may be stored in a CharacterData node. However,
+ * implementation limits may mean that the entirety of a node's data may
+ * not fit into a single DOMString. In such cases, the user
+ * may call substringData to retrieve the data in
+ * appropriately sized pieces.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+ * fit in a DOMString variable on the implementation
+ * platform.
+ */
+ public String getData()
+ throws DOMException;
+ /**
+ * The character data of the node that implements this interface. The DOM
+ * implementation may not put arbitrary limits on the amount of data
+ * that may be stored in a CharacterData node. However,
+ * implementation limits may mean that the entirety of a node's data may
+ * not fit into a single DOMString. In such cases, the user
+ * may call substringData to retrieve the data in
+ * appropriately sized pieces.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setData(String data)
+ throws DOMException;
+
+ /**
+ * The number of 16-bit units that are available through data
+ * and the substringData method below. This may have the
+ * value zero, i.e., CharacterData nodes may be empty.
+ */
+ public int getLength();
+
+ /**
+ * Extracts a range of data from the node.
+ * @param offset Start offset of substring to extract.
+ * @param count The number of 16-bit units to extract.
+ * @return The specified substring. If the sum of offset and
+ * count exceeds the length, then all 16-bit
+ * units to the end of the data are returned.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is
+ * negative or greater than the number of 16-bit units in
+ * data, or if the specified count is
+ * negative.
+ *
DOMSTRING_SIZE_ERR: Raised if the specified range of text does
+ * not fit into a DOMString.
+ */
+ public String substringData(int offset,
+ int count)
+ throws DOMException;
+
+ /**
+ * Append the string to the end of the character data of the node. Upon
+ * success, data provides access to the concatenation of
+ * data and the DOMString specified.
+ * @param arg The DOMString to append.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void appendData(String arg)
+ throws DOMException;
+
+ /**
+ * Insert a string at the specified 16-bit unit offset.
+ * @param offset The character offset at which to insert.
+ * @param arg The DOMString to insert.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is
+ * negative or greater than the number of 16-bit units in
+ * data.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void insertData(int offset,
+ String arg)
+ throws DOMException;
+
+ /**
+ * Remove a range of 16-bit units from the node. Upon success,
+ * data and length reflect the change.
+ * @param offset The offset from which to start removing.
+ * @param count The number of 16-bit units to delete. If the sum of
+ * offset and count exceeds
+ * length then all 16-bit units from offset
+ * to the end of the data are deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is
+ * negative or greater than the number of 16-bit units in
+ * data, or if the specified count is
+ * negative.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void deleteData(int offset,
+ int count)
+ throws DOMException;
+
+ /**
+ * Replace the characters starting at the specified 16-bit unit offset
+ * with the specified string.
+ * @param offset The offset from which to start replacing.
+ * @param count The number of 16-bit units to replace. If the sum of
+ * offset and count exceeds
+ * length, then all 16-bit units to the end of the data
+ * are replaced; (i.e., the effect is the same as a remove
+ * method call with the same range, followed by an append
+ * method invocation).
+ * @param arg The DOMString with which the range must be
+ * replaced.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is
+ * negative or greater than the number of 16-bit units in
+ * data, or if the specified count is
+ * negative.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void replaceData(int offset,
+ int count,
+ String arg)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java
new file mode 100644
index 00000000000..b04ed4d0a5e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface inherits from CharacterData and represents the
+ * content of a comment, i.e., all the characters between the starting '
+ * <!--' and ending '-->'. Note that this is
+ * the definition of a comment in XML, and, in practice, HTML, although some
+ * HTML tools may implement the full SGML comment structure.
+ *
No lexical check is done on the content of a comment and it is
+ * therefore possible to have the character sequence "--"
+ * (double-hyphen) in the content, which is illegal in a comment per section
+ * 2.5 of [XML 1.0]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Comment extends CharacterData {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java
new file mode 100644
index 00000000000..7cce1609e19
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The DOMConfiguration interface represents the configuration
+ * of a document and maintains a table of recognized parameters. Using the
+ * configuration, it is possible to change
+ * Document.normalizeDocument() behavior, such as replacing the
+ * CDATASection nodes with Text nodes or
+ * specifying the type of the schema that must be used when the validation
+ * of the Document is requested. DOMConfiguration
+ * objects are also used in [DOM Level 3 Load and Save]
+ * in the DOMParser and DOMSerializer interfaces.
+ *
The parameter names used by the DOMConfiguration object
+ * are defined throughout the DOM Level 3 specifications. Names are
+ * case-insensitive. To avoid possible conflicts, as a convention, names
+ * referring to parameters defined outside the DOM specification should be
+ * made unique. Because parameters are exposed as properties in the , names
+ * are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not
+ * enforced by the DOM implementation. DOM Level 3 Core Implementations are
+ * required to recognize all parameters defined in this specification. Some
+ * parameter values may also be required to be supported by the
+ * implementation. Refer to the definition of the parameter to know if a
+ * value must be supported or not.
+ *
Note: Parameters are similar to features and properties used in + * SAX2 [SAX]. + *
The following list of parameters defined in the DOM: + *
"canonical-form"trueDocumentType node (if any) from the
+ * tree, or removing superfluous namespace declarations from each element.
+ * Note that this is limited to what can be represented in the DOM; in
+ * particular, there is no way to specify the order of the attributes in the
+ * DOM. In addition, Setting this parameter to true will also
+ * set the state of the parameters listed below. Later changes to the state
+ * of one of those parameters will revert "canonical-form" back to
+ * false. Parameters set to false: "entities", "
+ * normalize-characters", "cdata-sections". Parameters set to
+ * true: "namespaces", "namespace-declarations", "well-formed",
+ * "element-content-whitespace". Other parameters are not changed unless
+ * explicitly specified in the description of the parameters.false"cdata-sections"trueCDATASection nodes in the document.falseCDATASection nodes in the document into
+ * Text nodes. The new Text node is then combined
+ * with any adjacent Text node."check-character-normalization"trueDOMError.type equals to
+ * "check-character-normalization-failure" is issued. false"comments"trueComment nodes in the document.falseComment nodes in the document."datatype-normalization"truetrue. Having this parameter activated when "validate" is
+ * false has no effect and no schema-normalization will happen.
+ * Note: Since the document contains the result of the XML 1.0 + * processing, this parameter does not apply to attribute value + * normalization as defined in section 3.3.3 of [XML 1.0] and is only + * meant for schema languages other than Document Type Definition (DTD).
false"element-content-whitespace"truefalseText nodes that contain whitespaces in element
+ * content, as described in
+ * [element content whitespace]. The implementation is expected to use the attribute
+ * Text.isElementContentWhitespace to determine if a
+ * Text node should be discarded or not."entities"trueEntityReference nodes in the document.falseEntityReference nodes from the document,
+ * putting the entity expansions directly in their place. Text
+ * nodes are normalized, as defined in Node.normalize. Only
+ * unexpanded entity references are kept in the document. Note: This parameter does not affect Entity nodes.
"error-handler"DOMErrorHandler object. If an error is
+ * encountered in the document, the implementation will call back the
+ * DOMErrorHandler registered using this parameter. The
+ * implementation may provide a default DOMErrorHandler object.
+ * When called, DOMError.relatedData will contain the closest
+ * node to where the error occurred. If the implementation is unable to
+ * determine the node where the error occurs,
+ * DOMError.relatedData will contain the Document
+ * node. Mutations to the document from within an error handler will result
+ * in implementation dependent behavior. "infoset"truefalse: "
+ * validate-if-schema", "entities", "datatype-normalization", "cdata-sections
+ * ".This forces the following parameters to true: "
+ * namespace-declarations", "well-formed", "element-content-whitespace", "
+ * comments", "namespaces".Other parameters are not changed unless
+ * explicitly specified in the description of the parameters. Note that
+ * querying this parameter with getParameter returns
+ * true only if the individual parameters specified above are
+ * appropriately set.falseinfoset to
+ * false has no effect."namespaces"truefalse"namespace-declarations"false.
+ * truefalseNode.prefix) are retained even if this parameter is set to
+ * false."normalize-characters"truefalse"schema-location"DOMString object containing a list of URIs,
+ * separated by whitespaces (characters matching the nonterminal
+ * production S defined in section 2.3 [XML 1.0]), that
+ * represents the schemas against which validation should occur, i.e. the
+ * current schema. The types of schemas referenced in this list must match
+ * the type specified with schema-type, otherwise the behavior
+ * of an implementation is undefined. The schemas specified using this
+ * property take precedence to the schema information specified in the
+ * document itself. For namespace aware schema, if a schema specified using
+ * this property and a schema specified in the document instance (i.e. using
+ * the schemaLocation attribute) in a schema document (i.e.
+ * using schema import mechanisms) share the same
+ * targetNamespace, the schema specified by the user using this
+ * property will be used. If two schemas specified using this property share
+ * the same targetNamespace or have no namespace, the behavior
+ * is implementation dependent. If no location has been provided, this
+ * parameter is null.
+ * Note: The "schema-location" parameter is ignored
+ * unless the "schema-type" parameter value is set. It is strongly
+ * recommended that Document.documentURI will be set so that an
+ * implementation can successfully resolve any external entities referenced.
"schema-type"DOMString object containing an absolute URI
+ * and representing the type of the schema language used to validate a
+ * document against. Note that no lexical checking is done on the absolute
+ * URI. If this parameter is not set, a default value may be provided by
+ * the implementation, based on the schema languages supported and on the
+ * schema language used at load time. If no value is provided, this
+ * parameter is null.
+ * Note: For XML Schema [XML Schema Part 1]
+ * , applications must use the value
+ * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0],
+ * applications must use the value
+ * "http://www.w3.org/TR/REC-xml". Other schema languages are
+ * outside the scope of the W3C and therefore should recommend an absolute
+ * URI in order to use this method.
"split-cdata-sections"trueDOMError.type equals to
+ * "cdata-sections-splitted" and
+ * DOMError.relatedData equals to the first
+ * CDATASection node in document order resulting from the split.falseCDATASection contains an
+ * unrepresentable character."validate"truetrue. This parameter will reevaluate:
+ * Attr.specified equals to false, as specified in
+ * the description of the Attr interface;
+ * Text.isElementContentWhitespace for all
+ * Text nodes;
+ * Attr.isId for all Attr nodes;
+ * Element.schemaTypeInfo and Attr.schemaTypeInfo.
+ * Note: "validate-if-schema" and "validate" are mutually
+ * exclusive, setting one of them to true will set the other
+ * one to false. Applications should also consider setting the
+ * parameter "well-formed" to true, which is the default for
+ * that option, when validating the document.
falsetrue
+ * . "validate-if-schema"truetrue.
+ * Note: "validate-if-schema" and "validate" are mutually
+ * exclusive, setting one of them to true will set the other
+ * one to false.
falsetrue. "well-formed"trueDocument.xmlVersion:
+ * Node.nodeName contains invalid characters according to its
+ * node type and generate a DOMError of type
+ * "wf-invalid-character-in-node-name", with a
+ * DOMError.SEVERITY_ERROR severity, if necessary;
+ * Attr, Element,
+ * Comment, Text, CDATASection nodes
+ * for invalid characters and generate a DOMError of type
+ * "wf-invalid-character", with a
+ * DOMError.SEVERITY_ERROR severity, if necessary;
+ * ProcessingInstruction nodes for invalid
+ * characters and generate a DOMError of type
+ * "wf-invalid-character", with a
+ * DOMError.SEVERITY_ERROR severity, if necessary;
+ * false The resolution of the system identifiers associated with entities is
+ * done using Document.documentURI. However, when the feature
+ * "LS" defined in [DOM Level 3 Load and Save]
+ * is supported by the DOM implementation, the parameter
+ * "resource-resolver" can also be used on DOMConfiguration
+ * objects attached to Document nodes. If this parameter is
+ * set, Document.normalizeDocument() will invoke the resource
+ * resolver instead of using Document.documentURI.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMConfiguration {
+ /**
+ * Set the value of a parameter.
+ * @param name The name of the parameter to set.
+ * @param value The new value or null if the user wishes to
+ * unset the parameter. While the type of the value parameter is
+ * defined as DOMUserData, the object type must match the
+ * type defined by the definition of the parameter. For example, if
+ * the parameter is "error-handler", the value must be of type
+ * DOMErrorHandler.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised when the parameter name is not recognized.
+ *
NOT_SUPPORTED_ERR: Raised when the parameter name is recognized
+ * but the requested value cannot be set.
+ *
TYPE_MISMATCH_ERR: Raised if the value type for this parameter
+ * name is incompatible with the expected value type.
+ */
+ public void setParameter(String name,
+ Object value)
+ throws DOMException;
+
+ /**
+ * Return the value of a parameter if known.
+ * @param name The name of the parameter.
+ * @return The current object associated with the specified parameter or
+ * null if no object has been associated or if the
+ * parameter is not supported.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised when the parameter name is not recognized.
+ */
+ public Object getParameter(String name)
+ throws DOMException;
+
+ /**
+ * Check if setting a parameter to a specific value is supported.
+ * @param name The name of the parameter to check.
+ * @param value An object. if null, the returned value is
+ * true.
+ * @return true if the parameter could be successfully set
+ * to the specified value, or false if the parameter is
+ * not recognized or the requested value is not supported. This does
+ * not change the current value of the parameter itself.
+ */
+ public boolean canSetParameter(String name,
+ Object value);
+
+ /**
+ * The list of the parameters supported by this
+ * DOMConfiguration object and for which at least one value
+ * can be set by the application. Note that this list can also contain
+ * parameter names defined outside this specification.
+ */
+ public DOMStringList getParameterNames();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java
new file mode 100644
index 00000000000..37ed7d10d89
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DOMError is an interface that describes an error.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMError {
+ // ErrorSeverity
+ /**
+ * The severity of the error described by the DOMError is
+ * warning. A SEVERITY_WARNING will not cause the
+ * processing to stop, unless DOMErrorHandler.handleError()
+ * returns false.
+ */
+ public static final short SEVERITY_WARNING = 1;
+ /**
+ * The severity of the error described by the DOMError is
+ * error. A SEVERITY_ERROR may not cause the processing to
+ * stop if the error can be recovered, unless
+ * DOMErrorHandler.handleError() returns false.
+ */
+ public static final short SEVERITY_ERROR = 2;
+ /**
+ * The severity of the error described by the DOMError is
+ * fatal error. A SEVERITY_FATAL_ERROR will cause the
+ * normal processing to stop. The return value of
+ * DOMErrorHandler.handleError() is ignored unless the
+ * implementation chooses to continue, in which case the behavior
+ * becomes undefined.
+ */
+ public static final short SEVERITY_FATAL_ERROR = 3;
+
+ /**
+ * The severity of the error, either SEVERITY_WARNING,
+ * SEVERITY_ERROR, or SEVERITY_FATAL_ERROR.
+ */
+ public short getSeverity();
+
+ /**
+ * An implementation specific string describing the error that occurred.
+ */
+ public String getMessage();
+
+ /**
+ * A DOMString indicating which related data is expected in
+ * relatedData. Users should refer to the specification of
+ * the error in order to find its DOMString type and
+ * relatedData definitions if any.
+ *
Note: As an example,
+ * Document.normalizeDocument() does generate warnings when
+ * the "split-cdata-sections" parameter is in use. Therefore, the method
+ * generates a SEVERITY_WARNING with type
+ * "cdata-sections-splitted" and the first
+ * CDATASection node in document order resulting from the
+ * split is returned by the relatedData attribute.
+ */
+ public String getType();
+
+ /**
+ * The related platform dependent exception if any.
+ */
+ public Object getRelatedException();
+
+ /**
+ * The related DOMError.type dependent data if any.
+ */
+ public Object getRelatedData();
+
+ /**
+ * The location of the error.
+ */
+ public DOMLocator getLocation();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java
new file mode 100644
index 00000000000..3d4ad2aba58
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DOMErrorHandler is a callback interface that the DOM
+ * implementation can call when reporting errors that happens while
+ * processing XML data, or when doing some other processing (e.g. validating
+ * a document). A DOMErrorHandler object can be attached to a
+ * Document using the "error-handler" on the
+ * DOMConfiguration interface. If more than one error needs to
+ * be reported during an operation, the sequence and numbers of the errors
+ * passed to the error handler are implementation dependent.
+ *
The application that is using the DOM implementation is expected to + * implement this interface. + *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMErrorHandler {
+ /**
+ * This method is called on the error handler when an error occurs.
+ *
If an exception is thrown from this method, it is considered to be
+ * equivalent of returning true.
+ * @param error The error object that describes the error. This object
+ * may be reused by the DOM implementation across multiple calls to
+ * the handleError method.
+ * @return If the handleError method returns
+ * false, the DOM implementation should stop the current
+ * processing when possible. If the method returns true,
+ * the processing may continue depending on
+ * DOMError.severity.
+ */
+ public boolean handleError(DOMError error);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java
new file mode 100644
index 00000000000..0b2578f92f6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DOM operations only raise exceptions in "exceptional" circumstances, i.e.,
+ * when an operation is impossible to perform (either for logical reasons,
+ * because data is lost, or because the implementation has become unstable).
+ * In general, DOM methods return specific error values in ordinary
+ * processing situations, such as out-of-bound errors when using
+ * NodeList.
+ *
Implementations should raise other exceptions under other circumstances.
+ * For example, implementations should raise an implementation-dependent
+ * exception if a null argument is passed when null
+ * was not expected.
+ *
Some languages and object systems do not support the concept of + * exceptions. For such systems, error conditions may be indicated using + * native error reporting mechanisms. For some bindings, for example, + * methods may return error codes similar to those listed in the + * corresponding method descriptions. + *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public class DOMException extends RuntimeException {
+ public DOMException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // ExceptionCode
+ /**
+ * If index or size is negative, or greater than the allowed value.
+ */
+ public static final short INDEX_SIZE_ERR = 1;
+ /**
+ * If the specified range of text does not fit into a
+ * DOMString.
+ */
+ public static final short DOMSTRING_SIZE_ERR = 2;
+ /**
+ * If any Node is inserted somewhere it doesn't belong.
+ */
+ public static final short HIERARCHY_REQUEST_ERR = 3;
+ /**
+ * If a Node is used in a different document than the one
+ * that created it (that doesn't support it).
+ */
+ public static final short WRONG_DOCUMENT_ERR = 4;
+ /**
+ * If an invalid or illegal character is specified, such as in an XML name.
+ */
+ public static final short INVALID_CHARACTER_ERR = 5;
+ /**
+ * If data is specified for a Node which does not support
+ * data.
+ */
+ public static final short NO_DATA_ALLOWED_ERR = 6;
+ /**
+ * If an attempt is made to modify an object where modifications are not
+ * allowed.
+ */
+ public static final short NO_MODIFICATION_ALLOWED_ERR = 7;
+ /**
+ * If an attempt is made to reference a Node in a context
+ * where it does not exist.
+ */
+ public static final short NOT_FOUND_ERR = 8;
+ /**
+ * If the implementation does not support the requested type of object or
+ * operation.
+ */
+ public static final short NOT_SUPPORTED_ERR = 9;
+ /**
+ * If an attempt is made to add an attribute that is already in use
+ * elsewhere.
+ */
+ public static final short INUSE_ATTRIBUTE_ERR = 10;
+ /**
+ * If an attempt is made to use an object that is not, or is no longer,
+ * usable.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_STATE_ERR = 11;
+ /**
+ * If an invalid or illegal string is specified.
+ * @since DOM Level 2
+ */
+ public static final short SYNTAX_ERR = 12;
+ /**
+ * If an attempt is made to modify the type of the underlying object.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_MODIFICATION_ERR = 13;
+ /**
+ * If an attempt is made to create or change an object in a way which is
+ * incorrect with regard to namespaces.
+ * @since DOM Level 2
+ */
+ public static final short NAMESPACE_ERR = 14;
+ /**
+ * If a parameter or an operation is not supported by the underlying
+ * object.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_ACCESS_ERR = 15;
+ /**
+ * If a call to a method such as insertBefore or
+ * removeChild would make the Node invalid
+ * with respect to "partial validity", this exception would be raised
+ * and the operation would not be done. This code is used in [DOM Level 3 Validation]
+ * . Refer to this specification for further information.
+ * @since DOM Level 3
+ */
+ public static final short VALIDATION_ERR = 16;
+ /**
+ * If the type of an object is incompatible with the expected type of the
+ * parameter associated to the object.
+ * @since DOM Level 3
+ */
+ public static final short TYPE_MISMATCH_ERR = 17;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java
new file mode 100644
index 00000000000..5bb71e263a9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The DOMImplementation interface provides a number of methods
+ * for performing operations that are independent of any particular instance
+ * of the document object model.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface DOMImplementation {
+ /**
+ * Test if the DOM implementation implements a specific feature and
+ * version, as specified in .
+ * @param feature The name of the feature to test.
+ * @param version This is the version number of the feature to test.
+ * @return true if the feature is implemented in the
+ * specified version, false otherwise.
+ */
+ public boolean hasFeature(String feature,
+ String version);
+
+ /**
+ * Creates an empty DocumentType node. Entity declarations
+ * and notations are not made available. Entity reference expansions and
+ * default attribute additions do not occur..
+ * @param qualifiedName The qualified name of the document type to be
+ * created.
+ * @param publicId The external subset public identifier.
+ * @param systemId The external subset system identifier.
+ * @return A new DocumentType node with
+ * Node.ownerDocument set to null.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to [XML 1.0].
+ *
NAMESPACE_ERR: Raised if the qualifiedName is
+ * malformed.
+ *
NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public DocumentType createDocumentType(String qualifiedName,
+ String publicId,
+ String systemId)
+ throws DOMException;
+
+ /**
+ * Creates a DOM Document object of the specified type with its document
+ * element.
+ *
Note that based on the DocumentType given to create
+ * the document, the implementation may instantiate specialized
+ * Document objects that support additional features than
+ * the "Core", such as "HTML" [DOM Level 2 HTML]
+ * . On the other hand, setting the DocumentType after the
+ * document was created makes this very unlikely to happen.
+ * Alternatively, specialized Document creation methods,
+ * such as createHTMLDocument [DOM Level 2 HTML]
+ * , can be used to obtain specific types of Document
+ * objects.
+ * @param namespaceURI The namespace URI of the document element to
+ * create or null.
+ * @param qualifiedName The qualified name of the document element to be
+ * created or null.
+ * @param doctype The type of document to be created or null.
+ * When doctype is not null, its
+ * Node.ownerDocument attribute is set to the document
+ * being created.
+ * @return A new Document object with its document element.
+ * If the NamespaceURI, qualifiedName, and
+ * doctype are null, the returned
+ * Document is empty with no document element.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to [XML 1.0].
+ *
NAMESPACE_ERR: Raised if the qualifiedName is
+ * malformed, if the qualifiedName has a prefix and the
+ * namespaceURI is null, or if the
+ * qualifiedName is null and the
+ * namespaceURI is different from null, or
+ * if the qualifiedName has a prefix that is "xml" and
+ * the namespaceURI is different from "
+ * http://www.w3.org/XML/1998/namespace" [XML Namespaces]
+ * , or if the DOM implementation does not support the
+ * "XML" feature but a non-null namespace URI was
+ * provided, since namespaces were defined by XML.
+ *
WRONG_DOCUMENT_ERR: Raised if doctype has already
+ * been used with a different document or was created from a different
+ * implementation.
+ *
NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Document createDocument(String namespaceURI,
+ String qualifiedName,
+ DocumentType doctype)
+ throws DOMException;
+
+ /**
+ * This method returns a specialized object which implements the
+ * specialized APIs of the specified feature and version, as specified
+ * in . The specialized object may also be obtained by using
+ * binding-specific casting methods but is not necessarily expected to,
+ * as discussed in . This method also allow the implementation to
+ * provide specialized objects which do not support the
+ * DOMImplementation interface.
+ * @param feature The name of the feature requested. Note that any plus
+ * sign "+" prepended to the name of the feature will be ignored since
+ * it is not significant in the context of this method.
+ * @param version This is the version number of the feature to test.
+ * @return Returns an object which implements the specialized APIs of
+ * the specified feature and version, if any, or null if
+ * there is no object which implements interfaces associated with that
+ * feature. If the DOMObject returned by this method
+ * implements the DOMImplementation interface, it must
+ * delegate to the primary core DOMImplementation and not
+ * return results inconsistent with the primary core
+ * DOMImplementation such as hasFeature,
+ * getFeature, etc.
+ * @since DOM Level 3
+ */
+ public Object getFeature(String feature,
+ String version);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java
new file mode 100644
index 00000000000..18349fdd411
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The DOMImplementationList interface provides the abstraction
+ * of an ordered collection of DOM implementations, without defining or
+ * constraining how this collection is implemented. The items in the
+ * DOMImplementationList are accessible via an integral index,
+ * starting from 0.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMImplementationList {
+ /**
+ * Returns the indexth item in the collection. If
+ * index is greater than or equal to the number of
+ * DOMImplementations in the list, this returns
+ * null.
+ * @param index Index into the collection.
+ * @return The DOMImplementation at the index
+ * th position in the DOMImplementationList, or
+ * null if that is not a valid index.
+ */
+ public DOMImplementation item(int index);
+
+ /**
+ * The number of DOMImplementations in the list. The range
+ * of valid child node indices is 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java
new file mode 100644
index 00000000000..3c32c188378
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface permits a DOM implementer to supply one or more
+ * implementations, based upon requested features and versions, as specified
+ * in . Each implemented DOMImplementationSource object is
+ * listed in the binding-specific list of available sources so that its
+ * DOMImplementation objects are made available.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMImplementationSource {
+ /**
+ * A method to request the first DOM implementation that supports the
+ * specified features.
+ * @param features A string that specifies which features and versions
+ * are required. This is a space separated list in which each feature
+ * is specified by its name optionally followed by a space and a
+ * version number. This method returns the first item of the list
+ * returned by getDOMImplementationList. As an example,
+ * the string "XML 3.0 Traversal +Events 2.0" will
+ * request a DOM implementation that supports the module "XML" for its
+ * 3.0 version, a module that support of the "Traversal" module for
+ * any version, and the module "Events" for its 2.0 version. The
+ * module "Events" must be accessible using the method
+ * Node.getFeature() and
+ * DOMImplementation.getFeature().
+ * @return The first DOM implementation that support the desired
+ * features, or null if this source has none.
+ */
+ public DOMImplementation getDOMImplementation(String features);
+
+ /**
+ * A method to request a list of DOM implementations that support the
+ * specified features and versions, as specified in .
+ * @param features A string that specifies which features and versions
+ * are required. This is a space separated list in which each feature
+ * is specified by its name optionally followed by a space and a
+ * version number. This is something like: "XML 3.0 Traversal +Events
+ * 2.0"
+ * @return A list of DOM implementations that support the desired
+ * features.
+ */
+ public DOMImplementationList getDOMImplementationList(String features);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java
new file mode 100644
index 00000000000..fcaaa23de87
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DOMLocator is an interface that describes a location (e.g.
+ * where an error occurred).
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMLocator {
+ /**
+ * The line number this locator is pointing to, or -1 if
+ * there is no column number available.
+ */
+ public int getLineNumber();
+
+ /**
+ * The column number this locator is pointing to, or -1 if
+ * there is no column number available.
+ */
+ public int getColumnNumber();
+
+ /**
+ * The byte offset into the input source this locator is pointing to or
+ * -1 if there is no byte offset available.
+ */
+ public int getByteOffset();
+
+ /**
+ * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or
+ * -1 if there is no UTF-16 offset available.
+ */
+ public int getUtf16Offset();
+
+ /**
+ * The node this locator is pointing to, or null if no node
+ * is available.
+ */
+ public Node getRelatedNode();
+
+ /**
+ * The URI this locator is pointing to, or null if no URI is
+ * available.
+ */
+ public String getUri();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java
new file mode 100644
index 00000000000..e6c348ae8c4
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The DOMStringList interface provides the abstraction of an
+ * ordered collection of DOMString values, without defining or
+ * constraining how this collection is implemented. The items in the
+ * DOMStringList are accessible via an integral index, starting
+ * from 0.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface DOMStringList {
+ /**
+ * Returns the indexth item in the collection. If
+ * index is greater than or equal to the number of
+ * DOMStrings in the list, this returns null.
+ * @param index Index into the collection.
+ * @return The DOMString at the indexth
+ * position in the DOMStringList, or null if
+ * that is not a valid index.
+ */
+ public String item(int index);
+
+ /**
+ * The number of DOMStrings in the list. The range of valid
+ * child node indices is 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Test if a string is part of this DOMStringList.
+ * @param str The string to look for.
+ * @return true if the string has been found,
+ * false otherwise.
+ */
+ public boolean contains(String str);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java
new file mode 100644
index 00000000000..43ebd4ec420
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java
@@ -0,0 +1,814 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The Document interface represents the entire HTML or XML
+ * document. Conceptually, it is the root of the document tree, and provides
+ * the primary access to the document's data.
+ *
Since elements, text nodes, comments, processing instructions, etc.
+ * cannot exist outside the context of a Document, the
+ * Document interface also contains the factory methods needed
+ * to create these objects. The Node objects created have a
+ * ownerDocument attribute which associates them with the
+ * Document within whose context they were created.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Document extends Node {
+ /**
+ * The Document Type Declaration (see DocumentType)
+ * associated with this document. For XML documents without a document
+ * type declaration this returns null. For HTML documents,
+ * a DocumentType object may be returned, independently of
+ * the presence or absence of document type declaration in the HTML
+ * document.
+ *
This provides direct access to the DocumentType node,
+ * child node of this Document. This node can be set at
+ * document creation time and later changed through the use of child
+ * nodes manipulation methods, such as Node.insertBefore,
+ * or Node.replaceChild. Note, however, that while some
+ * implementations may instantiate different types of
+ * Document objects supporting additional features than the
+ * "Core", such as "HTML" [DOM Level 2 HTML]
+ * , based on the DocumentType specified at creation time,
+ * changing it afterwards is very unlikely to result in a change of the
+ * features supported.
+ * @version DOM Level 3
+ */
+ public DocumentType getDoctype();
+
+ /**
+ * The DOMImplementation object that handles this document. A
+ * DOM application may use objects from multiple implementations.
+ */
+ public DOMImplementation getImplementation();
+
+ /**
+ * This is a convenience attribute that allows direct access to the child
+ * node that is the document element of the document.
+ */
+ public Element getDocumentElement();
+
+ /**
+ * Creates an element of the type specified. Note that the instance
+ * returned implements the Element interface, so attributes
+ * can be specified directly on the returned object.
+ *
In addition, if there are known attributes with default values,
+ * Attr nodes representing them are automatically created
+ * and attached to the element.
+ *
To create an element with a qualified name and namespace URI, use
+ * the createElementNS method.
+ * @param tagName The name of the element type to instantiate. For XML,
+ * this is case-sensitive, otherwise it depends on the
+ * case-sensitivity of the markup language in use. In that case, the
+ * name is mapped to the canonical form of that markup by the DOM
+ * implementation.
+ * @return A new Element object with the
+ * nodeName attribute set to tagName, and
+ * localName, prefix, and
+ * namespaceURI set to null.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ */
+ public Element createElement(String tagName)
+ throws DOMException;
+
+ /**
+ * Creates an empty DocumentFragment object.
+ * @return A new DocumentFragment.
+ */
+ public DocumentFragment createDocumentFragment();
+
+ /**
+ * Creates a Text node given the specified string.
+ * @param data The data for the node.
+ * @return The new Text object.
+ */
+ public Text createTextNode(String data);
+
+ /**
+ * Creates a Comment node given the specified string.
+ * @param data The data for the node.
+ * @return The new Comment object.
+ */
+ public Comment createComment(String data);
+
+ /**
+ * Creates a CDATASection node whose value is the specified
+ * string.
+ * @param data The data for the CDATASection contents.
+ * @return The new CDATASection object.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public CDATASection createCDATASection(String data)
+ throws DOMException;
+
+ /**
+ * Creates a ProcessingInstruction node given the specified
+ * name and data strings.
+ * @param target The target part of the processing instruction.Unlike
+ * Document.createElementNS or
+ * Document.createAttributeNS, no namespace well-formed
+ * checking is done on the target name. Applications should invoke
+ * Document.normalizeDocument() with the parameter "
+ * namespaces" set to true in order to ensure that the
+ * target name is namespace well-formed.
+ * @param data The data for the node.
+ * @return The new ProcessingInstruction object.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified target is not an XML
+ * name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ *
NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public ProcessingInstruction createProcessingInstruction(String target,
+ String data)
+ throws DOMException;
+
+ /**
+ * Creates an Attr of the given name. Note that the
+ * Attr instance can then be set on an Element
+ * using the setAttributeNode method.
+ *
To create an attribute with a qualified name and namespace URI, use
+ * the createAttributeNS method.
+ * @param name The name of the attribute.
+ * @return A new Attr object with the nodeName
+ * attribute set to name, and localName,
+ * prefix, and namespaceURI set to
+ * null. The value of the attribute is the empty string.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ */
+ public Attr createAttribute(String name)
+ throws DOMException;
+
+ /**
+ * Creates an EntityReference object. In addition, if the
+ * referenced entity is known, the child list of the
+ * EntityReference node is made the same as that of the
+ * corresponding Entity node.
+ *
Note: If any descendant of the Entity node has
+ * an unbound namespace prefix, the corresponding descendant of the
+ * created EntityReference node is also unbound; (its
+ * namespaceURI is null). The DOM Level 2 and
+ * 3 do not support any mechanism to resolve namespace prefixes in this
+ * case.
+ * @param name The name of the entity to reference.Unlike
+ * Document.createElementNS or
+ * Document.createAttributeNS, no namespace well-formed
+ * checking is done on the entity name. Applications should invoke
+ * Document.normalizeDocument() with the parameter "
+ * namespaces" set to true in order to ensure that the
+ * entity name is namespace well-formed.
+ * @return The new EntityReference object.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ *
NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public EntityReference createEntityReference(String name)
+ throws DOMException;
+
+ /**
+ * Returns a NodeList of all the Elements in
+ * document order with a given tag name and are contained in the
+ * document.
+ * @param tagname The name of the tag to match on. The special value "*"
+ * matches all tags. For XML, the tagname parameter is
+ * case-sensitive, otherwise it depends on the case-sensitivity of the
+ * markup language in use.
+ * @return A new NodeList object containing all the matched
+ * Elements.
+ */
+ public NodeList getElementsByTagName(String tagname);
+
+ /**
+ * Imports a node from another document to this document, without altering
+ * or removing the source node from the original document; this method
+ * creates a new copy of the source node. The returned node has no
+ * parent; (parentNode is null).
+ *
For all nodes, importing a node creates a node object owned by the
+ * importing document, with attribute values identical to the source
+ * node's nodeName and nodeType, plus the
+ * attributes related to namespaces (prefix,
+ * localName, and namespaceURI). As in the
+ * cloneNode operation, the source node is not altered.
+ * User data associated to the imported node is not carried over.
+ * However, if any UserDataHandlers has been specified
+ * along with the associated data these handlers will be called with the
+ * appropriate parameters before this method returns.
+ *
Additional information is copied as appropriate to the
+ * nodeType, attempting to mirror the behavior expected if
+ * a fragment of XML or HTML source was copied from one document to
+ * another, recognizing that the two documents may have different DTDs
+ * in the XML case. The following list describes the specifics for each
+ * type of node.
+ *
ownerElement attribute
+ * is set to null and the specified flag is
+ * set to true on the generated Attr. The
+ * descendants of the source Attr are recursively imported
+ * and the resulting nodes reassembled to form the corresponding subtree.
+ * Note that the deep parameter has no effect on
+ * Attr nodes; they always carry their children with them
+ * when imported.deep option
+ * was set to true, the descendants of the source
+ * DocumentFragment are recursively imported and the
+ * resulting nodes reassembled under the imported
+ * DocumentFragment to form the corresponding subtree.
+ * Otherwise, this simply generates an empty
+ * DocumentFragment.Document
+ * nodes cannot be imported.DocumentType
+ * nodes cannot be imported.Attr nodes are attached to the generated
+ * Element. Default attributes are not copied, though if the document being imported into defines default
+ * attributes for this element name, those are assigned. If the
+ * importNode deep parameter was set to
+ * true, the descendants of the source element are
+ * recursively imported and the resulting nodes reassembled to form the
+ * corresponding subtree.Entity nodes can be
+ * imported, however in the current release of the DOM the
+ * DocumentType is readonly. Ability to add these imported
+ * nodes to a DocumentType will be considered for addition
+ * to a future release of the DOM.On import, the publicId,
+ * systemId, and notationName attributes are
+ * copied. If a deep import is requested, the descendants
+ * of the the source Entity are recursively imported and
+ * the resulting nodes reassembled to form the corresponding subtree.EntityReference itself is
+ * copied, even if a deep import is requested, since the
+ * source and destination documents might have defined the entity
+ * differently. If the document being imported into provides a
+ * definition for this entity name, its value is assigned.Notation nodes can be imported, however in the current
+ * release of the DOM the DocumentType is readonly. Ability
+ * to add these imported nodes to a DocumentType will be
+ * considered for addition to a future release of the DOM.On import, the
+ * publicId and systemId attributes are copied.
+ * Note that the deep parameter has no effect on this type
+ * of nodes since they cannot have any children.target and data values from those of the
+ * source node.Note that the deep parameter has no effect
+ * on this type of nodes since they cannot have any children.CharacterData copy their data and
+ * length attributes from those of the source node.Note
+ * that the deep parameter has no effect on these types of
+ * nodes since they cannot have any children.true, recursively import the subtree under
+ * the specified node; if false, import only the node
+ * itself, as explained above. This has no effect on nodes that cannot
+ * have any children, and on Attr, and
+ * EntityReference nodes.
+ * @return The imported node that belongs to this Document.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the type of node being imported is not
+ * supported.
+ * Document.xmlVersion attribute. This may happen when
+ * importing an XML 1.1 [XML 1.1] element
+ * into an XML 1.0 document, for instance.
+ * @since DOM Level 2
+ */
+ public Node importNode(Node importedNode,
+ boolean deep)
+ throws DOMException;
+
+ /**
+ * Creates an element of the given qualified name and namespace URI.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the element to create.
+ * @param qualifiedName The qualified name of the element type to
+ * instantiate.
+ * @return A new Element object with the following
+ * attributes:
+ * | Attribute | + *Value | + *
|---|---|
Node.nodeName |
+ *
+ * qualifiedName |
+ *
Node.namespaceURI |
+ *
+ * namespaceURI |
+ *
Node.prefix |
+ * prefix, extracted
+ * from qualifiedName, or null if there is
+ * no prefix |
+ *
Node.localName |
+ * local name, extracted from
+ * qualifiedName |
+ *
Element.tagName |
+ *
+ * qualifiedName |
+ *
qualifiedName is not an XML name according to the XML
+ * version in use specified in the Document.xmlVersion
+ * attribute.
+ * qualifiedName is a
+ * malformed qualified name, if the qualifiedName has a
+ * prefix and the namespaceURI is null, or
+ * if the qualifiedName has a prefix that is "xml" and
+ * the namespaceURI is different from "
+ * http://www.w3.org/XML/1998/namespace" [XML Namespaces]
+ * , or if the qualifiedName or its prefix is "xmlns" and
+ * the namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns".
+ * "XML" feature, since namespaces were
+ * defined by XML.
+ * @since DOM Level 2
+ */
+ public Element createElementNS(String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+ /**
+ * Creates an attribute of the given qualified name and namespace URI.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to create.
+ * @param qualifiedName The qualified name of the attribute to
+ * instantiate.
+ * @return A new Attr object with the following attributes:
+ * | + * Attribute | + *Value | + *
|---|---|
Node.nodeName |
+ * qualifiedName | + *
+ * Node.namespaceURI |
+ * namespaceURI |
+ *
+ * Node.prefix |
+ * prefix, extracted from
+ * qualifiedName, or null if there is no
+ * prefix |
+ *
Node.localName |
+ * local name, extracted from
+ * qualifiedName |
+ *
Attr.name |
+ *
+ * qualifiedName |
+ *
Node.nodeValue |
+ * the empty + * string | + *
qualifiedName is not an XML name according to the XML
+ * version in use specified in the Document.xmlVersion
+ * attribute.
+ * qualifiedName is a
+ * malformed qualified name, if the qualifiedName has a
+ * prefix and the namespaceURI is null, if
+ * the qualifiedName has a prefix that is "xml" and the
+ * namespaceURI is different from "
+ * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the
+ * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns".
+ * "XML" feature, since namespaces were
+ * defined by XML.
+ * @since DOM Level 2
+ */
+ public Attr createAttributeNS(String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+ /**
+ * Returns a NodeList of all the Elements with a
+ * given local name and namespace URI in document order.
+ * @param namespaceURI The namespace URI of the elements to match on. The
+ * special value "*" matches all namespaces.
+ * @param localName The local name of the elements to match on. The
+ * special value "*" matches all local names.
+ * @return A new NodeList object containing all the matched
+ * Elements.
+ * @since DOM Level 2
+ */
+ public NodeList getElementsByTagNameNS(String namespaceURI,
+ String localName);
+
+ /**
+ * Returns the Element that has an ID attribute with the
+ * given value. If no such element exists, this returns null
+ * . If more than one element has an ID attribute with that value, what
+ * is returned is undefined.
+ * Attr.isId to determine if an attribute is of type ID.
+ * Note: Attributes with the name "ID" or "id" are not of type
+ * ID unless so defined.
+ * @param elementId The unique id value for an element.
+ * @return The matching element or null if there is none.
+ * @since DOM Level 2
+ */
+ public Element getElementById(String elementId);
+
+ /**
+ * An attribute specifying the encoding used for this document at the time
+ * of the parsing. This is null when it is not known, such
+ * as when the Document was created in memory.
+ * @since DOM Level 3
+ */
+ public String getInputEncoding();
+
+ /**
+ * An attribute specifying, as part of the XML declaration, the encoding of this document. This is null when
+ * unspecified or when it is not known, such as when the
+ * Document was created in memory.
+ * @since DOM Level 3
+ */
+ public String getXmlEncoding();
+
+ /**
+ * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when
+ * unspecified.
+ *
Note: No verification is done on the value when setting
+ * this attribute. Applications should use
+ * Document.normalizeDocument() with the "validate"
+ * parameter to verify if the value matches the validity
+ * constraint for standalone document declaration as defined in [XML 1.0].
+ * @since DOM Level 3
+ */
+ public boolean getXmlStandalone();
+ /**
+ * An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when
+ * unspecified.
+ *
Note: No verification is done on the value when setting
+ * this attribute. Applications should use
+ * Document.normalizeDocument() with the "validate"
+ * parameter to verify if the value matches the validity
+ * constraint for standalone document declaration as defined in [XML 1.0].
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if this document does not support the
+ * "XML" feature.
+ * @since DOM Level 3
+ */
+ public void setXmlStandalone(boolean xmlStandalone)
+ throws DOMException;
+
+ /**
+ * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if
+ * this document supports the "XML" feature, the value is
+ * "1.0". If this document does not support the "XML"
+ * feature, the value is always null. Changing this
+ * attribute will affect methods that check for invalid characters in
+ * XML names. Application should invoke
+ * Document.normalizeDocument() in order to check for
+ * invalid characters in the Nodes that are already part of
+ * this Document.
+ *
DOM applications may use the
+ * DOMImplementation.hasFeature(feature, version) method
+ * with parameter values "XMLVersion" and "1.0" (respectively) to
+ * determine if an implementation supports [XML 1.0]. DOM
+ * applications may use the same method with parameter values
+ * "XMLVersion" and "1.1" (respectively) to determine if an
+ * implementation supports [XML 1.1]. In both
+ * cases, in order to support XML, an implementation must also support
+ * the "XML" feature defined in this specification. Document
+ * objects supporting a version of the "XMLVersion" feature must not
+ * raise a NOT_SUPPORTED_ERR exception for the same version
+ * number when using Document.xmlVersion.
+ * @since DOM Level 3
+ */
+ public String getXmlVersion();
+ /**
+ * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if
+ * this document supports the "XML" feature, the value is
+ * "1.0". If this document does not support the "XML"
+ * feature, the value is always null. Changing this
+ * attribute will affect methods that check for invalid characters in
+ * XML names. Application should invoke
+ * Document.normalizeDocument() in order to check for
+ * invalid characters in the Nodes that are already part of
+ * this Document.
+ *
DOM applications may use the
+ * DOMImplementation.hasFeature(feature, version) method
+ * with parameter values "XMLVersion" and "1.0" (respectively) to
+ * determine if an implementation supports [XML 1.0]. DOM
+ * applications may use the same method with parameter values
+ * "XMLVersion" and "1.1" (respectively) to determine if an
+ * implementation supports [XML 1.1]. In both
+ * cases, in order to support XML, an implementation must also support
+ * the "XML" feature defined in this specification. Document
+ * objects supporting a version of the "XMLVersion" feature must not
+ * raise a NOT_SUPPORTED_ERR exception for the same version
+ * number when using Document.xmlVersion.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the version is set to a value that is
+ * not supported by this Document or if this document
+ * does not support the "XML" feature.
+ * @since DOM Level 3
+ */
+ public void setXmlVersion(String xmlVersion)
+ throws DOMException;
+
+ /**
+ * An attribute specifying whether error checking is enforced or not. When
+ * set to false, the implementation is free to not test
+ * every possible error case normally defined on DOM operations, and not
+ * raise any DOMException on DOM operations or report
+ * errors while using Document.normalizeDocument(). In case
+ * of error, the behavior is undefined. This attribute is
+ * true by default.
+ * @since DOM Level 3
+ */
+ public boolean getStrictErrorChecking();
+ /**
+ * An attribute specifying whether error checking is enforced or not. When
+ * set to false, the implementation is free to not test
+ * every possible error case normally defined on DOM operations, and not
+ * raise any DOMException on DOM operations or report
+ * errors while using Document.normalizeDocument(). In case
+ * of error, the behavior is undefined. This attribute is
+ * true by default.
+ * @since DOM Level 3
+ */
+ public void setStrictErrorChecking(boolean strictErrorChecking);
+
+ /**
+ * The location of the document or null if undefined or if
+ * the Document was created using
+ * DOMImplementation.createDocument. No lexical checking is
+ * performed when setting this attribute; this could result in a
+ * null value returned when using Node.baseURI
+ * .
+ *
Beware that when the Document supports the feature
+ * "HTML" [DOM Level 2 HTML]
+ * , the href attribute of the HTML BASE element takes precedence over
+ * this attribute when computing Node.baseURI.
+ * @since DOM Level 3
+ */
+ public String getDocumentURI();
+ /**
+ * The location of the document or null if undefined or if
+ * the Document was created using
+ * DOMImplementation.createDocument. No lexical checking is
+ * performed when setting this attribute; this could result in a
+ * null value returned when using Node.baseURI
+ * .
+ *
Beware that when the Document supports the feature
+ * "HTML" [DOM Level 2 HTML]
+ * , the href attribute of the HTML BASE element takes precedence over
+ * this attribute when computing Node.baseURI.
+ * @since DOM Level 3
+ */
+ public void setDocumentURI(String documentURI);
+
+ /**
+ * Attempts to adopt a node from another document to this document. If
+ * supported, it changes the ownerDocument of the source
+ * node, its children, as well as the attached attribute nodes if there
+ * are any. If the source node has a parent it is first removed from the
+ * child list of its parent. This effectively allows moving a subtree
+ * from one document to another (unlike importNode() which
+ * create a copy of the source node instead of moving it). When it
+ * fails, applications should use Document.importNode()
+ * instead. Note that if the adopted node is already part of this
+ * document (i.e. the source and target document are the same), this
+ * method still has the effect of removing the source node from the
+ * child list of its parent, if any. The following list describes the
+ * specifics for each type of node.
+ *
ownerElement attribute is set to null and
+ * the specified flag is set to true on the
+ * adopted Attr. The descendants of the source
+ * Attr are recursively adopted.Document nodes cannot be adopted.DocumentType nodes cannot be adopted.Entity nodes cannot be adopted.EntityReference node itself is adopted, the
+ * descendants are discarded, since the source and destination documents
+ * might have defined the entity differently. If the document being
+ * imported into provides a definition for this entity name, its value
+ * is assigned.Notation nodes cannot be
+ * adopted.Note: Since it does not create new nodes unlike the
+ * Document.importNode() method, this method does not raise
+ * an INVALID_CHARACTER_ERR exception, and applications
+ * should use the Document.normalizeDocument() method to
+ * check if an imported name is not an XML name according to the XML
+ * version in use.
+ * @param source The node to move into this document.
+ * @return The adopted node, or null if this operation
+ * fails, such as when the source node comes from a different
+ * implementation.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the source node is of type
+ * DOCUMENT, DOCUMENT_TYPE.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is
+ * readonly.
+ * @since DOM Level 3
+ */
+ public Node adoptNode(Node source)
+ throws DOMException;
+
+ /**
+ * The configuration used when Document.normalizeDocument()
+ * is invoked.
+ * @since DOM Level 3
+ */
+ public DOMConfiguration getDomConfig();
+
+ /**
+ * This method acts as if the document was going through a save and load
+ * cycle, putting the document in a "normal" form. As a consequence,
+ * this method updates the replacement tree of
+ * EntityReference nodes and normalizes Text
+ * nodes, as defined in the method Node.normalize().
+ *
Otherwise, the actual result depends on the features being set on
+ * the Document.domConfig object and governing what
+ * operations actually take place. Noticeably this method could also
+ * make the document namespace well-formed according to the algorithm
+ * described in , check the character normalization, remove the
+ * CDATASection nodes, etc. See
+ * DOMConfiguration for details.
+ *
// Keep in the document
+ * the information defined // in the XML Information Set (Java example)
+ * DOMConfiguration docConfig = myDocument.getDomConfig();
+ * docConfig.setParameter("infoset", Boolean.TRUE);
+ * myDocument.normalizeDocument();
+ *
+ * Node.nodeName
+ * contains an invalid character according to the XML version in use,
+ * errors or warnings (DOMError.SEVERITY_ERROR or
+ * DOMError.SEVERITY_WARNING) will be reported using the
+ * DOMErrorHandler object associated with the "error-handler
+ * " parameter. Note this method might also report fatal errors (
+ * DOMError.SEVERITY_FATAL_ERROR) if an implementation
+ * cannot recover from an error.
+ * @since DOM Level 3
+ */
+ public void normalizeDocument();
+
+ /**
+ * Rename an existing node of type ELEMENT_NODE or
+ * ATTRIBUTE_NODE.
+ * Element its
+ * attributes are moved to the new node, the new node is inserted at the
+ * position the old node used to have in its parent's child nodes list
+ * if it has one, the user data that was attached to the old node is
+ * attached to the new node.
+ * Element only the
+ * specified attributes are moved, default attributes originated from
+ * the DTD are updated according to the new element name. In addition,
+ * the implementation may update default attributes from other schemas.
+ * Applications should use Document.normalizeDocument() to
+ * guarantee these attributes are up-to-date.
+ * Attr that is
+ * attached to an Element, the node is first removed from
+ * the Element attributes map. Then, once renamed, either
+ * by modifying the existing node or creating a new one as described
+ * above, it is put back.
+ * NODE_RENAMED is fired,
+ * http://www.w3.org/2001/xml-events,
+ * DOMElementNameChanged} or {
+ * http://www.w3.org/2001/xml-events,
+ * DOMAttributeNameChanged} is fired.
+ * ELEMENT_NODE nor ATTRIBUTE_NODE,
+ * or if the implementation does not support the renaming of the
+ * document element.
+ * Document.xmlVersion attribute.
+ * qualifiedName is a
+ * malformed qualified name, if the qualifiedName has a
+ * prefix and the namespaceURI is null, or
+ * if the qualifiedName has a prefix that is "xml" and
+ * the namespaceURI is different from "
+ * http://www.w3.org/XML/1998/namespace" [XML Namespaces]
+ * . Also raised, when the node being renamed is an attribute, if the
+ * qualifiedName, or its prefix, is "xmlns" and the
+ * namespaceURI is different from "http://www.w3.org/2000/xmlns/".
+ * @since DOM Level 3
+ */
+ public Node renameNode(Node n,
+ String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java
new file mode 100644
index 00000000000..8c4531eff87
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DocumentFragment is a "lightweight" or "minimal"
+ * Document object. It is very common to want to be able to
+ * extract a portion of a document's tree or to create a new fragment of a
+ * document. Imagine implementing a user command like cut or rearranging a
+ * document by moving fragments around. It is desirable to have an object
+ * which can hold such fragments and it is quite natural to use a Node for
+ * this purpose. While it is true that a Document object could
+ * fulfill this role, a Document object can potentially be a
+ * heavyweight object, depending on the underlying implementation. What is
+ * really needed for this is a very lightweight object.
+ * DocumentFragment is such an object.
+ * Furthermore, various operations -- such as inserting nodes as children
+ * of another Node -- may take DocumentFragment
+ * objects as arguments; this results in all the child nodes of the
+ * DocumentFragment being moved to the child list of this node.
+ *
The children of a DocumentFragment node are zero or more
+ * nodes representing the tops of any sub-trees defining the structure of
+ * the document. DocumentFragment nodes do not need to be
+ * well-formed XML documents (although they do need to follow the rules
+ * imposed upon well-formed XML parsed entities, which can have multiple top
+ * nodes). For example, a DocumentFragment might have only one
+ * child and that child node could be a Text node. Such a
+ * structure model represents neither an HTML document nor a well-formed XML
+ * document.
+ *
When a DocumentFragment is inserted into a
+ * Document (or indeed any other Node that may
+ * take children) the children of the DocumentFragment and not
+ * the DocumentFragment itself are inserted into the
+ * Node. This makes the DocumentFragment very
+ * useful when the user wishes to create nodes that are siblings; the
+ * DocumentFragment acts as the parent of these nodes so that
+ * the user can use the standard methods from the Node
+ * interface, such as Node.insertBefore and
+ * Node.appendChild.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface DocumentFragment extends Node {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java
new file mode 100644
index 00000000000..6221c7b5ef6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * Each Document has a doctype attribute whose value
+ * is either null or a DocumentType object. The
+ * DocumentType interface in the DOM Core provides an interface
+ * to the list of entities that are defined for the document, and little
+ * else because the effect of namespaces and the various XML schema efforts
+ * on DTD representation are not clearly understood as of this writing.
+ *
DOM Level 3 doesn't support editing DocumentType nodes.
+ * DocumentType nodes are read-only.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface DocumentType extends Node {
+ /**
+ * The name of DTD; i.e., the name immediately following the
+ * DOCTYPE keyword.
+ */
+ public String getName();
+
+ /**
+ * A NamedNodeMap containing the general entities, both
+ * external and internal, declared in the DTD. Parameter entities are
+ * not contained. Duplicates are discarded. For example in:
+ *
<!DOCTYPE + * ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar + * "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz"> + * ]> <ex/>+ * the interface provides access to
foo
+ * and the first declaration of bar but not the second
+ * declaration of bar or baz. Every node in
+ * this map also implements the Entity interface.
+ * entities cannot be altered in any way.
+ */
+ public NamedNodeMap getEntities();
+
+ /**
+ * A NamedNodeMap containing the notations declared in the
+ * DTD. Duplicates are discarded. Every node in this map also implements
+ * the Notation interface.
+ * notations cannot be altered in any way.
+ */
+ public NamedNodeMap getNotations();
+
+ /**
+ * The public identifier of the external subset.
+ * @since DOM Level 2
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier of the external subset. This may be an absolute
+ * URI or not.
+ * @since DOM Level 2
+ */
+ public String getSystemId();
+
+ /**
+ * The internal subset as a string, or null if there is none.
+ * This is does not contain the delimiting square brackets.
+ * Note: The actual content returned depends on how much
+ * information is available to the implementation. This may vary
+ * depending on various parameters, including the XML processor used to
+ * build the document.
+ * @since DOM Level 2
+ */
+ public String getInternalSubset();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java
new file mode 100644
index 00000000000..6a7f7e3d0c7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java
@@ -0,0 +1,439 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The Element interface represents an element in an HTML or XML
+ * document. Elements may have attributes associated with them; since the
+ * Element interface inherits from Node, the
+ * generic Node interface attribute attributes may
+ * be used to retrieve the set of all attributes for an element. There are
+ * methods on the Element interface to retrieve either an
+ * Attr object by name or an attribute value by name. In XML,
+ * where an attribute value may contain entity references, an
+ * Attr object should be retrieved to examine the possibly
+ * fairly complex sub-tree representing the attribute value. On the other
+ * hand, in HTML, where all attributes have simple string values, methods to
+ * directly access an attribute value can safely be used as a convenience.
+ *
Note: In DOM Level 2, the method normalize is
+ * inherited from the Node interface where it was moved.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Element extends Node {
+ /**
+ * The name of the element. If Node.localName is different
+ * from null, this attribute is a qualified name. For
+ * example, in:
+ *
<elementExample id="demo"> ... + * </elementExample> ,+ *
tagName has the value
+ * "elementExample". Note that this is case-preserving in
+ * XML, as are all of the operations of the DOM. The HTML DOM returns
+ * the tagName of an HTML element in the canonical
+ * uppercase form, regardless of the case in the source HTML document.
+ */
+ public String getTagName();
+
+ /**
+ * Retrieves an attribute value by name.
+ * @param name The name of the attribute to retrieve.
+ * @return The Attr value as a string, or the empty string
+ * if that attribute does not have a specified or default value.
+ */
+ public String getAttribute(String name);
+
+ /**
+ * Adds a new attribute. If an attribute with that name is already present
+ * in the element, its value is changed to be that of the value
+ * parameter. This value is a simple string; it is not parsed as it is
+ * being set. So any markup (such as syntax to be recognized as an
+ * entity reference) is treated as literal text, and needs to be
+ * appropriately escaped by the implementation when it is written out.
+ * In order to assign an attribute value that contains entity
+ * references, the user must create an Attr node plus any
+ * Text and EntityReference nodes, build the
+ * appropriate subtree, and use setAttributeNode to assign
+ * it as the value of an attribute.
+ * setAttributeNS method.
+ * @param name The name of the attribute to create or alter.
+ * @param value Value to set in string form.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ * Document.normalizeDocument() to guarantee this
+ * information is up-to-date.
+ * removeAttributeNS method.
+ * @param name The name of the attribute to remove.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void removeAttribute(String name)
+ throws DOMException;
+
+ /**
+ * Retrieves an attribute node by name.
+ * getAttributeNodeNS method.
+ * @param name The name (nodeName) of the attribute to
+ * retrieve.
+ * @return The Attr node with the specified name (
+ * nodeName) or null if there is no such
+ * attribute.
+ */
+ public Attr getAttributeNode(String name);
+
+ /**
+ * Adds a new attribute node. If an attribute with that name (
+ * nodeName) is already present in the element, it is
+ * replaced by the new one. Replacing an attribute node by itself has no
+ * effect.
+ * setAttributeNodeNS method.
+ * @param newAttr The Attr node to add to the attribute list.
+ * @return If the newAttr attribute replaces an existing
+ * attribute, the replaced Attr node is returned,
+ * otherwise null is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a
+ * different document than the one that created the element.
+ * newAttr is already an
+ * attribute of another Element object. The DOM user must
+ * explicitly clone Attr nodes to re-use them in other
+ * elements.
+ */
+ public Attr setAttributeNode(Attr newAttr)
+ throws DOMException;
+
+ /**
+ * Removes the specified attribute node. If a default value for the
+ * removed Attr node is defined in the DTD, a new node
+ * immediately appears with the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ * The implementation may handle default values from other schemas
+ * similarly but applications should use
+ * Document.normalizeDocument() to guarantee this
+ * information is up-to-date.
+ * @param oldAttr The Attr node to remove from the attribute
+ * list.
+ * @return The Attr node that was removed.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * oldAttr is not an attribute
+ * of the element.
+ */
+ public Attr removeAttributeNode(Attr oldAttr)
+ throws DOMException;
+
+ /**
+ * Returns a NodeList of all descendant Elements
+ * with a given tag name, in document order.
+ * @param name The name of the tag to match on. The special value "*"
+ * matches all tags.
+ * @return A list of matching Element nodes.
+ */
+ public NodeList getElementsByTagName(String name);
+
+ /**
+ * Retrieves an attribute value by local name and namespace URI.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to retrieve.
+ * @param localName The local name of the attribute to retrieve.
+ * @return The Attr value as a string, or the empty string
+ * if that attribute does not have a specified or default value.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public String getAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a new attribute. If an attribute with the same local name and
+ * namespace URI is already present on the element, its prefix is
+ * changed to be the prefix part of the qualifiedName, and
+ * its value is changed to be the value parameter. This
+ * value is a simple string; it is not parsed as it is being set. So any
+ * markup (such as syntax to be recognized as an entity reference) is
+ * treated as literal text, and needs to be appropriately escaped by the
+ * implementation when it is written out. In order to assign an
+ * attribute value that contains entity references, the user must create
+ * an Attr node plus any Text and
+ * EntityReference nodes, build the appropriate subtree,
+ * and use setAttributeNodeNS or
+ * setAttributeNode to assign it as the value of an
+ * attribute.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to create or
+ * alter.
+ * @param qualifiedName The qualified name of the attribute to create or
+ * alter.
+ * @param value The value to set in string form.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to the XML version in use specified in the
+ * Document.xmlVersion attribute.
+ * qualifiedName is
+ * malformed per the Namespaces in XML specification, if the
+ * qualifiedName has a prefix and the
+ * namespaceURI is null, if the
+ * qualifiedName has a prefix that is "xml" and the
+ * namespaceURI is different from "
+ * http://www.w3.org/XML/1998/namespace", if the qualifiedName or its prefix is "xmlns" and the
+ * namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns".
+ * "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public void setAttributeNS(String namespaceURI,
+ String qualifiedName,
+ String value)
+ throws DOMException;
+
+ /**
+ * Removes an attribute by local name and namespace URI. If a default
+ * value for the removed attribute is defined in the DTD, a new
+ * attribute immediately appears with the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ * The implementation may handle default values from other schemas
+ * similarly but applications should use
+ * Document.normalizeDocument() to guarantee this
+ * information is up-to-date.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to remove.
+ * @param localName The local name of the attribute to remove.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public void removeAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Retrieves an Attr node by local name and namespace URI.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to retrieve.
+ * @param localName The local name of the attribute to retrieve.
+ * @return The Attr node with the specified attribute local
+ * name and namespace URI or null if there is no such
+ * attribute.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Attr getAttributeNodeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a new attribute. If an attribute with that local name and that
+ * namespace URI is already present in the element, it is replaced by
+ * the new one. Replacing an attribute node by itself has no effect.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param newAttr The Attr node to add to the attribute list.
+ * @return If the newAttr attribute replaces an existing
+ * attribute with the same local name and namespace URI, the replaced
+ * Attr node is returned, otherwise null is
+ * returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if newAttr was created from a
+ * different document than the one that created the element.
+ * newAttr is already an
+ * attribute of another Element object. The DOM user must
+ * explicitly clone Attr nodes to re-use them in other
+ * elements.
+ * "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Attr setAttributeNodeNS(Attr newAttr)
+ throws DOMException;
+
+ /**
+ * Returns a NodeList of all the descendant
+ * Elements with a given local name and namespace URI in
+ * document order.
+ * @param namespaceURI The namespace URI of the elements to match on. The
+ * special value "*" matches all namespaces.
+ * @param localName The local name of the elements to match on. The
+ * special value "*" matches all local names.
+ * @return A new NodeList object containing all the matched
+ * Elements.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public NodeList getElementsByTagNameNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Returns true when an attribute with a given name is
+ * specified on this element or has a default value, false
+ * otherwise.
+ * @param name The name of the attribute to look for.
+ * @return true if an attribute with the given name is
+ * specified on this element or has a default value, false
+ * otherwise.
+ * @since DOM Level 2
+ */
+ public boolean hasAttribute(String name);
+
+ /**
+ * Returns true when an attribute with a given local name and
+ * namespace URI is specified on this element or has a default value,
+ * false otherwise.
+ * null as the
+ * namespaceURI parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to look for.
+ * @param localName The local name of the attribute to look for.
+ * @return true if an attribute with the given local name
+ * and namespace URI is specified or has a default value on this
+ * element, false otherwise.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed
+ * through the Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public boolean hasAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * The type information associated with this element.
+ * @since DOM Level 3
+ */
+ public TypeInfo getSchemaTypeInfo();
+
+ /**
+ * If the parameter isId is true, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of Attr.isId and the behavior
+ * of Document.getElementById, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * Attr.schemaTypeInfo of the specified Attr
+ * node. Use the value false for the parameter
+ * isId to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * setIdAttributeNS method.
+ * @param name The name of the attribute.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * isId is true, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of Attr.isId and the behavior
+ * of Document.getElementById, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * Attr.schemaTypeInfo of the specified Attr
+ * node. Use the value false for the parameter
+ * isId to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * @param namespaceURI The namespace URI of the attribute.
+ * @param localName The local name of the attribute.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * isId is true, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of Attr.isId and the behavior
+ * of Document.getElementById, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * Attr.schemaTypeInfo of the specified Attr
+ * node. Use the value false for the parameter
+ * isId to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * @param idAttr The attribute node.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * The nodeName attribute that is inherited from
+ * Node contains the name of the entity.
+ *
An XML processor may choose to completely expand entities before the
+ * structure model is passed to the DOM; in this case there will be no
+ * EntityReference nodes in the document tree.
+ *
XML does not mandate that a non-validating XML processor read and
+ * process entity declarations made in the external subset or declared in
+ * parameter entities. This means that parsed entities declared in the
+ * external subset need not be expanded by some classes of applications, and
+ * that the replacement text of the entity may not be available. When the
+ * replacement text is available, the corresponding Entity node's child list
+ * represents the structure of that replacement value. Otherwise, the child
+ * list is empty.
+ *
DOM Level 3 does not support editing Entity nodes; if a
+ * user wants to make changes to the contents of an Entity,
+ * every related EntityReference node has to be replaced in the
+ * structure model by a clone of the Entity's contents, and
+ * then the desired changes must be made to each of those clones instead.
+ * Entity nodes and all their descendants are readonly.
+ *
An Entity node does not have any parent.
+ *
Note: If the entity contains an unbound namespace prefix, the
+ * namespaceURI of the corresponding node in the
+ * Entity node subtree is null. The same is true
+ * for EntityReference nodes that refer to this entity, when
+ * they are created using the createEntityReference method of
+ * the Document interface.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Entity extends Node {
+ /**
+ * The public identifier associated with the entity if specified, and
+ * null otherwise.
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier associated with the entity if specified, and
+ * null otherwise. This may be an absolute URI or not.
+ */
+ public String getSystemId();
+
+ /**
+ * For unparsed entities, the name of the notation for the entity. For
+ * parsed entities, this is null.
+ */
+ public String getNotationName();
+
+ /**
+ * An attribute specifying the encoding used for this entity at the time
+ * of parsing, when it is an external parsed entity. This is
+ * null if it an entity from the internal subset or if it
+ * is not known.
+ * @since DOM Level 3
+ */
+ public String getInputEncoding();
+
+ /**
+ * An attribute specifying, as part of the text declaration, the encoding
+ * of this entity, when it is an external parsed entity. This is
+ * null otherwise.
+ * @since DOM Level 3
+ */
+ public String getXmlEncoding();
+
+ /**
+ * An attribute specifying, as part of the text declaration, the version
+ * number of this entity, when it is an external parsed entity. This is
+ * null otherwise.
+ * @since DOM Level 3
+ */
+ public String getXmlVersion();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java
new file mode 100644
index 00000000000..b42b0913bc8
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * EntityReference nodes may be used to represent an entity
+ * reference in the tree. Note that character references and references to
+ * predefined entities are considered to be expanded by the HTML or XML
+ * processor so that characters are represented by their Unicode equivalent
+ * rather than by an entity reference. Moreover, the XML processor may
+ * completely expand references to entities while building the
+ * Document, instead of providing EntityReference
+ * nodes. If it does provide such nodes, then for an
+ * EntityReference node that represents a reference to a known
+ * entity an Entity exists, and the subtree of the
+ * EntityReference node is a copy of the Entity
+ * node subtree. However, the latter may not be true when an entity contains
+ * an unbound namespace prefix. In such a case, because the namespace prefix
+ * resolution depends on where the entity reference is, the descendants of
+ * the EntityReference node may be bound to different namespace
+ * URIs. When an EntityReference node represents a reference to
+ * an unknown entity, the node has no children and its replacement value,
+ * when used by Attr.value for example, is empty.
+ *
As for Entity nodes, EntityReference nodes and
+ * all their descendants are readonly.
+ *
Note: EntityReference nodes may cause element
+ * content and attribute value normalization problems when, such as in XML
+ * 1.0 and XML Schema, the normalization is performed after entity reference
+ * are expanded.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface EntityReference extends Node {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java
new file mode 100644
index 00000000000..10caa90f6a0
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The NameList interface provides the abstraction of an ordered
+ * collection of parallel pairs of name and namespace values (which could be
+ * null values), without defining or constraining how this collection is
+ * implemented. The items in the NameList are accessible via an
+ * integral index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface NameList {
+ /**
+ * Returns the indexth name item in the collection.
+ * @param index Index into the collection.
+ * @return The name at the indexth position in the
+ * NameList, or null if there is no name for
+ * the specified index or if the index is out of range.
+ */
+ public String getName(int index);
+
+ /**
+ * Returns the indexth namespaceURI item in the collection.
+ * @param index Index into the collection.
+ * @return The namespace URI at the indexth position in the
+ * NameList, or null if there is no name for
+ * the specified index or if the index is out of range.
+ */
+ public String getNamespaceURI(int index);
+
+ /**
+ * The number of pairs (name and namespaceURI) in the list. The range of
+ * valid child node indices is 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Test if a name is part of this NameList.
+ * @param str The name to look for.
+ * @return true if the name has been found,
+ * false otherwise.
+ */
+ public boolean contains(String str);
+
+ /**
+ * Test if the pair namespaceURI/name is part of this
+ * NameList.
+ * @param namespaceURI The namespace URI to look for.
+ * @param name The name to look for.
+ * @return true if the pair namespaceURI/name has been
+ * found, false otherwise.
+ */
+ public boolean containsNS(String namespaceURI,
+ String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java
new file mode 100644
index 00000000000..ad1e67bcdeb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * Objects implementing the NamedNodeMap interface are used to
+ * represent collections of nodes that can be accessed by name. Note that
+ * NamedNodeMap does not inherit from NodeList;
+ * NamedNodeMaps are not maintained in any particular order.
+ * Objects contained in an object implementing NamedNodeMap may
+ * also be accessed by an ordinal index, but this is simply to allow
+ * convenient enumeration of the contents of a NamedNodeMap,
+ * and does not imply that the DOM specifies an order to these Nodes.
+ *
NamedNodeMap objects in the DOM are live.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface NamedNodeMap {
+ /**
+ * Retrieves a node specified by name.
+ * @param name The nodeName of a node to retrieve.
+ * @return A Node (of any type) with the specified
+ * nodeName, or null if it does not identify
+ * any node in this map.
+ */
+ public Node getNamedItem(String name);
+
+ /**
+ * Adds a node using its nodeName attribute. If a node with
+ * that name is already present in this map, it is replaced by the new
+ * one. Replacing a node by itself has no effect.
+ *
As the nodeName attribute is used to derive the name
+ * which the node must be stored under, multiple nodes of certain types
+ * (those that have a "special" string value) cannot be stored as the
+ * names would clash. This is seen as preferable to allowing nodes to be
+ * aliased.
+ * @param arg A node to store in this map. The node will later be
+ * accessible using the value of its nodeName attribute.
+ * @return If the new Node replaces an existing node the
+ * replaced Node is returned, otherwise null
+ * is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if arg was created from a
+ * different document than the one that created this map.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ *
INUSE_ATTRIBUTE_ERR: Raised if arg is an
+ * Attr that is already an attribute of another
+ * Element object. The DOM user must explicitly clone
+ * Attr nodes to re-use them in other elements.
+ *
HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
+ * doesn't belong in this NamedNodeMap. Examples would include trying
+ * to insert something other than an Attr node into an Element's map
+ * of attributes, or a non-Entity node into the DocumentType's map of
+ * Entities.
+ */
+ public Node setNamedItem(Node arg)
+ throws DOMException;
+
+ /**
+ * Removes a node specified by name. When this map contains the attributes
+ * attached to an element, if the removed attribute is known to have a
+ * default value, an attribute immediately appears containing the
+ * default value as well as the corresponding namespace URI, local name,
+ * and prefix when applicable.
+ * @param name The nodeName of the node to remove.
+ * @return The node removed from this map if a node with such a name
+ * exists.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if there is no node named name in
+ * this map.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ */
+ public Node removeNamedItem(String name)
+ throws DOMException;
+
+ /**
+ * Returns the indexth item in the map. If index
+ * is greater than or equal to the number of nodes in this map, this
+ * returns null.
+ * @param index Index into this map.
+ * @return The node at the indexth position in the map, or
+ * null if that is not a valid index.
+ */
+ public Node item(int index);
+
+ /**
+ * The number of nodes in this map. The range of valid child node indices
+ * is 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Retrieves a node specified by local name and namespace URI.
+ *
Per [XML Namespaces]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the node to retrieve.
+ * @param localName The local name of the node to retrieve.
+ * @return A Node (of any type) with the specified local
+ * name and namespace URI, or null if they do not
+ * identify any node in this map.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Node getNamedItemNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a node using its namespaceURI and
+ * localName. If a node with that namespace URI and that
+ * local name is already present in this map, it is replaced by the new
+ * one. Replacing a node by itself has no effect.
+ *
Per [XML Namespaces]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param arg A node to store in this map. The node will later be
+ * accessible using the value of its namespaceURI and
+ * localName attributes.
+ * @return If the new Node replaces an existing node the
+ * replaced Node is returned, otherwise null
+ * is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if arg was created from a
+ * different document than the one that created this map.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ *
INUSE_ATTRIBUTE_ERR: Raised if arg is an
+ * Attr that is already an attribute of another
+ * Element object. The DOM user must explicitly clone
+ * Attr nodes to re-use them in other elements.
+ *
HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
+ * doesn't belong in this NamedNodeMap. Examples would include trying
+ * to insert something other than an Attr node into an Element's map
+ * of attributes, or a non-Entity node into the DocumentType's map of
+ * Entities.
+ *
NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Node setNamedItemNS(Node arg)
+ throws DOMException;
+
+ /**
+ * Removes a node specified by local name and namespace URI. A removed
+ * attribute may be known to have a default value when this map contains
+ * the attributes attached to an element, as returned by the attributes
+ * attribute of the Node interface. If so, an attribute
+ * immediately appears containing the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ *
Per [XML Namespaces]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the node to remove.
+ * @param localName The local name of the node to remove.
+ * @return The node removed from this map if a node with such a local
+ * name and namespace URI exists.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if there is no node with the specified
+ * namespaceURI and localName in this map.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ *
NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [HTML 4.01]).
+ * @since DOM Level 2
+ */
+ public Node removeNamedItemNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java
new file mode 100644
index 00000000000..989d49a2ea0
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java
@@ -0,0 +1,900 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The Node interface is the primary datatype for the entire
+ * Document Object Model. It represents a single node in the document tree.
+ * While all objects implementing the Node interface expose
+ * methods for dealing with children, not all objects implementing the
+ * Node interface may have children. For example,
+ * Text nodes may not have children, and adding children to
+ * such nodes results in a DOMException being raised.
+ *
The attributes nodeName, nodeValue and
+ * attributes are included as a mechanism to get at node
+ * information without casting down to the specific derived interface. In
+ * cases where there is no obvious mapping of these attributes for a
+ * specific nodeType (e.g., nodeValue for an
+ * Element or attributes for a Comment
+ * ), this returns null. Note that the specialized interfaces
+ * may contain additional and more convenient mechanisms to get and set the
+ * relevant information.
+ *
The values of nodeName,
+ * nodeValue, and attributes vary according to the
+ * node type as follows:
+ *
| Interface | + *nodeName | + *nodeValue | + *attributes | + *
|---|---|---|---|
+ * Attr |
+ * same as Attr.name |
+ * same as
+ * Attr.value |
+ * null |
+ *
CDATASection |
+ *
+ * "#cdata-section" |
+ * same as CharacterData.data, the
+ * content of the CDATA Section |
+ * null |
+ *
Comment |
+ *
+ * "#comment" |
+ * same as CharacterData.data, the
+ * content of the comment |
+ * null |
+ *
Document |
+ *
+ * "#document" |
+ * null |
+ * null |
+ *
+ * DocumentFragment |
+ * "#document-fragment" |
+ *
+ * null |
+ * null |
+ *
DocumentType |
+ * same as
+ * DocumentType.name |
+ * null |
+ * null |
+ *
+ * Element |
+ * same as Element.tagName |
+ * null |
+ *
+ * NamedNodeMap |
+ *
Entity |
+ * entity name | + *null |
+ *
+ * null |
+ *
EntityReference |
+ * name of entity referenced | + *
+ * null |
+ * null |
+ *
Notation |
+ * notation name | + *
+ * null |
+ * null |
+ *
ProcessingInstruction |
+ * same
+ * as ProcessingInstruction.target |
+ * same as
+ * ProcessingInstruction.data |
+ * null |
+ *
Text |
+ *
+ * "#text" |
+ * same as CharacterData.data, the content
+ * of the text node |
+ * null |
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Node {
+ // NodeType
+ /**
+ * The node is an Element.
+ */
+ public static final short ELEMENT_NODE = 1;
+ /**
+ * The node is an Attr.
+ */
+ public static final short ATTRIBUTE_NODE = 2;
+ /**
+ * The node is a Text node.
+ */
+ public static final short TEXT_NODE = 3;
+ /**
+ * The node is a CDATASection.
+ */
+ public static final short CDATA_SECTION_NODE = 4;
+ /**
+ * The node is an EntityReference.
+ */
+ public static final short ENTITY_REFERENCE_NODE = 5;
+ /**
+ * The node is an Entity.
+ */
+ public static final short ENTITY_NODE = 6;
+ /**
+ * The node is a ProcessingInstruction.
+ */
+ public static final short PROCESSING_INSTRUCTION_NODE = 7;
+ /**
+ * The node is a Comment.
+ */
+ public static final short COMMENT_NODE = 8;
+ /**
+ * The node is a Document.
+ */
+ public static final short DOCUMENT_NODE = 9;
+ /**
+ * The node is a DocumentType.
+ */
+ public static final short DOCUMENT_TYPE_NODE = 10;
+ /**
+ * The node is a DocumentFragment.
+ */
+ public static final short DOCUMENT_FRAGMENT_NODE = 11;
+ /**
+ * The node is a Notation.
+ */
+ public static final short NOTATION_NODE = 12;
+
+ /**
+ * The name of this node, depending on its type; see the table above.
+ */
+ public String getNodeName();
+
+ /**
+ * The value of this node, depending on its type; see the table above.
+ * When it is defined to be null, setting it has no effect,
+ * including if the node is read-only.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+ * fit in a DOMString variable on the implementation
+ * platform.
+ */
+ public String getNodeValue()
+ throws DOMException;
+ /**
+ * The value of this node, depending on its type; see the table above.
+ * When it is defined to be null, setting it has no effect,
+ * including if the node is read-only.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if
+ * it is not defined to be null.
+ */
+ public void setNodeValue(String nodeValue)
+ throws DOMException;
+
+ /**
+ * A code representing the type of the underlying object, as defined above.
+ */
+ public short getNodeType();
+
+ /**
+ * The parent of this node. All nodes, except Attr,
+ * Document, DocumentFragment,
+ * Entity, and Notation may have a parent.
+ * However, if a node has just been created and not yet added to the
+ * tree, or if it has been removed from the tree, this is
+ * null.
+ */
+ public Node getParentNode();
+
+ /**
+ * A NodeList that contains all children of this node. If
+ * there are no children, this is a NodeList containing no
+ * nodes.
+ */
+ public NodeList getChildNodes();
+
+ /**
+ * The first child of this node. If there is no such node, this returns
+ * null.
+ */
+ public Node getFirstChild();
+
+ /**
+ * The last child of this node. If there is no such node, this returns
+ * null.
+ */
+ public Node getLastChild();
+
+ /**
+ * The node immediately preceding this node. If there is no such node,
+ * this returns null.
+ */
+ public Node getPreviousSibling();
+
+ /**
+ * The node immediately following this node. If there is no such node,
+ * this returns null.
+ */
+ public Node getNextSibling();
+
+ /**
+ * A NamedNodeMap containing the attributes of this node (if
+ * it is an Element) or null otherwise.
+ */
+ public NamedNodeMap getAttributes();
+
+ /**
+ * The Document object associated with this node. This is
+ * also the Document object used to create new nodes. When
+ * this node is a Document or a DocumentType
+ * which is not used with any Document yet, this is
+ * null.
+ * @version DOM Level 2
+ */
+ public Document getOwnerDocument();
+
+ /**
+ * Inserts the node newChild before the existing child node
+ * refChild. If refChild is null,
+ * insert newChild at the end of the list of children.
+ *
If newChild is a DocumentFragment object,
+ * all of its children are inserted, in the same order, before
+ * refChild. If the newChild is already in the
+ * tree, it is first removed.
+ *
Note: Inserting a node before itself is implementation
+ * dependent.
+ * @param newChild The node to insert.
+ * @param refChild The reference node, i.e., the node before which the
+ * new node must be inserted.
+ * @return The node being inserted.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the newChild node, or if
+ * the node to insert is one of this node's ancestors or this node
+ * itself, or if this node is of type Document and the
+ * DOM application attempts to insert a second
+ * DocumentType or Element node.
+ *
WRONG_DOCUMENT_ERR: Raised if newChild was created
+ * from a different document than the one that created this node.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or
+ * if the parent of the node being inserted is readonly.
+ *
NOT_FOUND_ERR: Raised if refChild is not a child of
+ * this node.
+ *
NOT_SUPPORTED_ERR: if this node is of type Document,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the insertion of a DocumentType or
+ * Element node.
+ * @version DOM Level 3
+ */
+ public Node insertBefore(Node newChild,
+ Node refChild)
+ throws DOMException;
+
+ /**
+ * Replaces the child node oldChild with newChild
+ * in the list of children, and returns the oldChild node.
+ *
If newChild is a DocumentFragment object,
+ * oldChild is replaced by all of the
+ * DocumentFragment children, which are inserted in the
+ * same order. If the newChild is already in the tree, it
+ * is first removed.
+ *
Note: Replacing a node with itself is implementation
+ * dependent.
+ * @param newChild The new node to put in the child list.
+ * @param oldChild The node being replaced in the list.
+ * @return The node replaced.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the newChild node, or if
+ * the node to put in is one of this node's ancestors or this node
+ * itself, or if this node is of type Document and the
+ * result of the replacement operation would add a second
+ * DocumentType or Element on the
+ * Document node.
+ *
WRONG_DOCUMENT_ERR: Raised if newChild was created
+ * from a different document than the one that created this node.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of
+ * the new node is readonly.
+ *
NOT_FOUND_ERR: Raised if oldChild is not a child of
+ * this node.
+ *
NOT_SUPPORTED_ERR: if this node is of type Document,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the replacement of the DocumentType child or
+ * Element child.
+ * @version DOM Level 3
+ */
+ public Node replaceChild(Node newChild,
+ Node oldChild)
+ throws DOMException;
+
+ /**
+ * Removes the child node indicated by oldChild from the list
+ * of children, and returns it.
+ * @param oldChild The node being removed.
+ * @return The node removed.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ *
NOT_FOUND_ERR: Raised if oldChild is not a child of
+ * this node.
+ *
NOT_SUPPORTED_ERR: if this node is of type Document,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the removal of the DocumentType child or the
+ * Element child.
+ * @version DOM Level 3
+ */
+ public Node removeChild(Node oldChild)
+ throws DOMException;
+
+ /**
+ * Adds the node newChild to the end of the list of children
+ * of this node. If the newChild is already in the tree, it
+ * is first removed.
+ * @param newChild The node to add.If it is a
+ * DocumentFragment object, the entire contents of the
+ * document fragment are moved into the child list of this node
+ * @return The node added.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the newChild node, or if
+ * the node to append is one of this node's ancestors or this node
+ * itself, or if this node is of type Document and the
+ * DOM application attempts to append a second
+ * DocumentType or Element node.
+ *
WRONG_DOCUMENT_ERR: Raised if newChild was created
+ * from a different document than the one that created this node.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or
+ * if the previous parent of the node being inserted is readonly.
+ *
NOT_SUPPORTED_ERR: if the newChild node is a child
+ * of the Document node, this exception might be raised
+ * if the DOM implementation doesn't support the removal of the
+ * DocumentType child or Element child.
+ * @version DOM Level 3
+ */
+ public Node appendChild(Node newChild)
+ throws DOMException;
+
+ /**
+ * Returns whether this node has any children.
+ * @return Returns true if this node has any children,
+ * false otherwise.
+ */
+ public boolean hasChildNodes();
+
+ /**
+ * Returns a duplicate of this node, i.e., serves as a generic copy
+ * constructor for nodes. The duplicate node has no parent (
+ * parentNode is null) and no user data. User
+ * data associated to the imported node is not carried over. However, if
+ * any UserDataHandlers has been specified along with the
+ * associated data these handlers will be called with the appropriate
+ * parameters before this method returns.
+ *
Cloning an Element copies all attributes and their
+ * values, including those generated by the XML processor to represent
+ * defaulted attributes, but this method does not copy any children it
+ * contains unless it is a deep clone. This includes text contained in
+ * an the Element since the text is contained in a child
+ * Text node. Cloning an Attr directly, as
+ * opposed to be cloned as part of an Element cloning
+ * operation, returns a specified attribute (specified is
+ * true). Cloning an Attr always clones its
+ * children, since they represent its value, no matter whether this is a
+ * deep clone or not. Cloning an EntityReference
+ * automatically constructs its subtree if a corresponding
+ * Entity is available, no matter whether this is a deep
+ * clone or not. Cloning any other type of node simply returns a copy of
+ * this node.
+ *
Note that cloning an immutable subtree results in a mutable copy,
+ * but the children of an EntityReference clone are readonly
+ * . In addition, clones of unspecified Attr nodes are
+ * specified. And, cloning Document,
+ * DocumentType, Entity, and
+ * Notation nodes is implementation dependent.
+ * @param deep If true, recursively clone the subtree under
+ * the specified node; if false, clone only the node
+ * itself (and its attributes, if it is an Element).
+ * @return The duplicate node.
+ */
+ public Node cloneNode(boolean deep);
+
+ /**
+ * Puts all Text nodes in the full depth of the sub-tree
+ * underneath this Node, including attribute nodes, into a
+ * "normal" form where only structure (e.g., elements, comments,
+ * processing instructions, CDATA sections, and entity references)
+ * separates Text nodes, i.e., there are neither adjacent
+ * Text nodes nor empty Text nodes. This can
+ * be used to ensure that the DOM view of a document is the same as if
+ * it were saved and re-loaded, and is useful when operations (such as
+ * XPointer [XPointer]
+ * lookups) that depend on a particular document tree structure are to
+ * be used. If the parameter "normalize-characters" of the
+ * DOMConfiguration object attached to the
+ * Node.ownerDocument is true, this method
+ * will also fully normalize the characters of the Text
+ * nodes.
+ *
Note: In cases where the document contains
+ * CDATASections, the normalize operation alone may not be
+ * sufficient, since XPointers do not differentiate between
+ * Text nodes and CDATASection nodes.
+ * @version DOM Level 3
+ */
+ public void normalize();
+
+ /**
+ * Tests whether the DOM implementation implements a specific feature and
+ * that feature is supported by this node, as specified in .
+ * @param feature The name of the feature to test.
+ * @param version This is the version number of the feature to test.
+ * @return Returns true if the specified feature is
+ * supported on this node, false otherwise.
+ * @since DOM Level 2
+ */
+ public boolean isSupported(String feature,
+ String version);
+
+ /**
+ * The namespace URI of this node, or null if it is
+ * unspecified (see ).
+ *
This is not a computed value that is the result of a namespace
+ * lookup based on an examination of the namespace declarations in
+ * scope. It is merely the namespace URI given at creation time.
+ *
For nodes of any type other than ELEMENT_NODE and
+ * ATTRIBUTE_NODE and nodes created with a DOM Level 1
+ * method, such as Document.createElement(), this is always
+ * null.
+ *
Note: Per the Namespaces in XML Specification [XML Namespaces]
+ * an attribute does not inherit its namespace from the element it is
+ * attached to. If an attribute is not explicitly given a namespace, it
+ * simply has no namespace.
+ * @since DOM Level 2
+ */
+ public String getNamespaceURI();
+
+ /**
+ * The namespace prefix of this node, or null if it is
+ * unspecified. When it is defined to be null, setting it
+ * has no effect, including if the node is read-only.
+ *
Note that setting this attribute, when permitted, changes the
+ * nodeName attribute, which holds the qualified name, as
+ * well as the tagName and name attributes of
+ * the Element and Attr interfaces, when
+ * applicable.
+ *
Setting the prefix to null makes it unspecified,
+ * setting it to an empty string is implementation dependent.
+ *
Note also that changing the prefix of an attribute that is known to
+ * have a default value, does not make a new attribute with the default
+ * value and the original prefix appear, since the
+ * namespaceURI and localName do not change.
+ *
For nodes of any type other than ELEMENT_NODE and
+ * ATTRIBUTE_NODE and nodes created with a DOM Level 1
+ * method, such as createElement from the
+ * Document interface, this is always null.
+ * @since DOM Level 2
+ */
+ public String getPrefix();
+ /**
+ * The namespace prefix of this node, or null if it is
+ * unspecified. When it is defined to be null, setting it
+ * has no effect, including if the node is read-only.
+ *
Note that setting this attribute, when permitted, changes the
+ * nodeName attribute, which holds the qualified name, as
+ * well as the tagName and name attributes of
+ * the Element and Attr interfaces, when
+ * applicable.
+ *
Setting the prefix to null makes it unspecified,
+ * setting it to an empty string is implementation dependent.
+ *
Note also that changing the prefix of an attribute that is known to
+ * have a default value, does not make a new attribute with the default
+ * value and the original prefix appear, since the
+ * namespaceURI and localName do not change.
+ *
For nodes of any type other than ELEMENT_NODE and
+ * ATTRIBUTE_NODE and nodes created with a DOM Level 1
+ * method, such as createElement from the
+ * Document interface, this is always null.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified prefix contains an
+ * illegal character according to the XML version in use specified in
+ * the Document.xmlVersion attribute.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ *
NAMESPACE_ERR: Raised if the specified prefix is
+ * malformed per the Namespaces in XML specification, if the
+ * namespaceURI of this node is null, if the
+ * specified prefix is "xml" and the namespaceURI of this
+ * node is different from "
+ * http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and
+ * the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of
+ * this node is "xmlns" [XML Namespaces]
+ * .
+ * @since DOM Level 2
+ */
+ public void setPrefix(String prefix)
+ throws DOMException;
+
+ /**
+ * Returns the local part of the qualified name of this node.
+ *
For nodes of any type other than ELEMENT_NODE and
+ * ATTRIBUTE_NODE and nodes created with a DOM Level 1
+ * method, such as Document.createElement(), this is always
+ * null.
+ * @since DOM Level 2
+ */
+ public String getLocalName();
+
+ /**
+ * Returns whether this node (if it is an element) has any attributes.
+ * @return Returns true if this node has any attributes,
+ * false otherwise.
+ * @since DOM Level 2
+ */
+ public boolean hasAttributes();
+
+ /**
+ * The absolute base URI of this node or null if the
+ * implementation wasn't able to obtain an absolute URI. This value is
+ * computed as described in . However, when the Document
+ * supports the feature "HTML" [DOM Level 2 HTML]
+ * , the base URI is computed using first the value of the href
+ * attribute of the HTML BASE element if any, and the value of the
+ * documentURI attribute from the Document
+ * interface otherwise.
+ * @since DOM Level 3
+ */
+ public String getBaseURI();
+
+ // DocumentPosition
+ /**
+ * The two nodes are disconnected. Order between disconnected nodes is
+ * always implementation-specific.
+ */
+ public static final short DOCUMENT_POSITION_DISCONNECTED = 0x01;
+ /**
+ * The second node precedes the reference node.
+ */
+ public static final short DOCUMENT_POSITION_PRECEDING = 0x02;
+ /**
+ * The node follows the reference node.
+ */
+ public static final short DOCUMENT_POSITION_FOLLOWING = 0x04;
+ /**
+ * The node contains the reference node. A node which contains is always
+ * preceding, too.
+ */
+ public static final short DOCUMENT_POSITION_CONTAINS = 0x08;
+ /**
+ * The node is contained by the reference node. A node which is contained
+ * is always following, too.
+ */
+ public static final short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+ /**
+ * The determination of preceding versus following is
+ * implementation-specific.
+ */
+ public static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+
+ /**
+ * Compares the reference node, i.e. the node on which this method is
+ * being called, with a node, i.e. the one passed as a parameter, with
+ * regard to their position in the document and according to the
+ * document order.
+ * @param other The node to compare against the reference node.
+ * @return Returns how the node is positioned relatively to the reference
+ * node.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: when the compared nodes are from different DOM
+ * implementations that do not coordinate to return consistent
+ * implementation-specific results.
+ * @since DOM Level 3
+ */
+ public short compareDocumentPosition(Node other)
+ throws DOMException;
+
+ /**
+ * This attribute returns the text content of this node and its
+ * descendants. When it is defined to be null, setting it
+ * has no effect. On setting, any possible children this node may have
+ * are removed and, if it the new string is not empty or
+ * null, replaced by a single Text node
+ * containing the string this attribute is set to.
+ *
On getting, no serialization is performed, the returned string
+ * does not contain any markup. No whitespace normalization is performed
+ * and the returned string does not contain the white spaces in element
+ * content (see the attribute
+ * Text.isElementContentWhitespace). Similarly, on setting,
+ * no parsing is performed either, the input string is taken as pure
+ * textual content.
+ *
The string returned is made of the text content of this node
+ * depending on its type, as defined below:
+ *
| Node type | + *Content | + *
|---|---|
| + * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, + * DOCUMENT_FRAGMENT_NODE | + *concatenation of the textContent
+ * attribute value of every child node, excluding COMMENT_NODE and
+ * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
+ * node has no children. |
+ *
| TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, + * PROCESSING_INSTRUCTION_NODE | + *nodeValue |
+ *
| DOCUMENT_NODE, + * DOCUMENT_TYPE_NODE, NOTATION_NODE | + *null | + *
DOMString variable on the implementation
+ * platform.
+ * @since DOM Level 3
+ */
+ public String getTextContent()
+ throws DOMException;
+ /**
+ * This attribute returns the text content of this node and its
+ * descendants. When it is defined to be null, setting it
+ * has no effect. On setting, any possible children this node may have
+ * are removed and, if it the new string is not empty or
+ * null, replaced by a single Text node
+ * containing the string this attribute is set to.
+ * Text.isElementContentWhitespace). Similarly, on setting,
+ * no parsing is performed either, the input string is taken as pure
+ * textual content.
+ * | Node type | + *Content | + *
|---|---|
| + * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, + * DOCUMENT_FRAGMENT_NODE | + *concatenation of the textContent
+ * attribute value of every child node, excluding COMMENT_NODE and
+ * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
+ * node has no children. |
+ *
| TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, + * PROCESSING_INSTRUCTION_NODE | + *nodeValue |
+ *
| DOCUMENT_NODE, + * DOCUMENT_TYPE_NODE, NOTATION_NODE | + *null | + *
Node references returned by the implementation reference
+ * the same object. When two Node references are references
+ * to the same object, even if through a proxy, the references may be
+ * used completely interchangeably, such that all attributes have the
+ * same values and calling the same DOM method on either reference
+ * always has exactly the same effect.
+ * @param other The node to test against.
+ * @return Returns true if the nodes are the same,
+ * false otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isSameNode(Node other);
+
+ /**
+ * Look up the prefix associated to the given namespace URI, starting from
+ * this node. The default namespace declarations are ignored by this
+ * method.
+ * null if none is found. If more than one prefix are
+ * associated to the namespace prefix, the returned namespace prefix
+ * is implementation dependent.
+ * @since DOM Level 3
+ */
+ public String lookupPrefix(String namespaceURI);
+
+ /**
+ * This method checks if the specified namespaceURI is the
+ * default namespace or not.
+ * @param namespaceURI The namespace URI to look for.
+ * @return Returns true if the specified
+ * namespaceURI is the default namespace,
+ * false otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isDefaultNamespace(String namespaceURI);
+
+ /**
+ * Look up the namespace URI associated to the given prefix, starting from
+ * this node.
+ * null, the method will return the default namespace URI
+ * if any.
+ * @return Returns the associated namespace URI or null if
+ * none is found.
+ * @since DOM Level 3
+ */
+ public String lookupNamespaceURI(String prefix);
+
+ /**
+ * Tests whether two nodes are equal.
+ * Node.isSameNode(). All nodes that are the
+ * same will also be equal, though the reverse may not be true.
+ * nodeName, localName,
+ * namespaceURI, prefix, nodeValue
+ * . This is: they are both null, or they have the same
+ * length and are character for character identical.
+ * attributes NamedNodeMaps are equal. This
+ * is: they are both null, or they have the same length and
+ * for each node that exists in one map there is a node that exists in
+ * the other map and is equal, although not necessarily at the same
+ * index.
+ * childNodes NodeLists are equal.
+ * This is: they are both null, or they have the same
+ * length and contain equal nodes at the same index. Note that
+ * normalization can affect equality; to avoid this, nodes should be
+ * normalized before being compared.
+ * DocumentType nodes to be equal, the following
+ * conditions must also be satisfied:
+ * publicId, systemId,
+ * internalSubset.
+ * entities
+ * NamedNodeMaps are equal.
+ * notations
+ * NamedNodeMaps are equal.
+ * ownerDocument, baseURI, and
+ * parentNode attributes, the specified
+ * attribute for Attr nodes, the schemaTypeInfo
+ * attribute for Attr and Element nodes, the
+ * Text.isElementContentWhitespace attribute for
+ * Text nodes, as well as any user data or event listeners
+ * registered on the nodes.
+ * Note: As a general rule, anything not mentioned in the
+ * description above is not significant in consideration of equality
+ * checking. Note that future versions of this specification may take
+ * into account more attributes and implementations conform to this
+ * specification are expected to be updated accordingly.
+ * @param arg The node to compare equality with.
+ * @return Returns true if the nodes are equal,
+ * false otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isEqualNode(Node arg);
+
+ /**
+ * This method returns a specialized object which implements the
+ * specialized APIs of the specified feature and version, as specified
+ * in . The specialized object may also be obtained by using
+ * binding-specific casting methods but is not necessarily expected to,
+ * as discussed in . This method also allow the implementation to
+ * provide specialized objects which do not support the Node
+ * interface.
+ * @param feature The name of the feature requested. Note that any plus
+ * sign "+" prepended to the name of the feature will be ignored since
+ * it is not significant in the context of this method.
+ * @param version This is the version number of the feature to test.
+ * @return Returns an object which implements the specialized APIs of
+ * the specified feature and version, if any, or null if
+ * there is no object which implements interfaces associated with that
+ * feature. If the DOMObject returned by this method
+ * implements the Node interface, it must delegate to the
+ * primary core Node and not return results inconsistent
+ * with the primary core Node such as attributes,
+ * childNodes, etc.
+ * @since DOM Level 3
+ */
+ public Object getFeature(String feature,
+ String version);
+
+ /**
+ * Associate an object to a key on this node. The object can later be
+ * retrieved from this node by calling getUserData with the
+ * same key.
+ * @param key The key to associate the object to.
+ * @param data The object to associate to the given key, or
+ * null to remove any existing association to that key.
+ * @param handler The handler to associate to that key, or
+ * null.
+ * @return Returns the DOMUserData previously associated to
+ * the given key on this node, or null if there was none.
+ * @since DOM Level 3
+ */
+ public Object setUserData(String key,
+ Object data,
+ UserDataHandler handler);
+
+ /**
+ * Retrieves the object associated to a key on a this node. The object
+ * must first have been set to this node by calling
+ * setUserData with the same key.
+ * @param key The key the object is associated to.
+ * @return Returns the DOMUserData associated to the given
+ * key on this node, or null if there was none.
+ * @since DOM Level 3
+ */
+ public Object getUserData(String key);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java
new file mode 100644
index 00000000000..e4204ec974c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The NodeList interface provides the abstraction of an ordered
+ * collection of nodes, without defining or constraining how this collection
+ * is implemented. NodeList objects in the DOM are live.
+ *
The items in the NodeList are accessible via an integral
+ * index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface NodeList {
+ /**
+ * Returns the indexth item in the collection. If
+ * index is greater than or equal to the number of nodes in
+ * the list, this returns null.
+ * @param index Index into the collection.
+ * @return The node at the indexth position in the
+ * NodeList, or null if that is not a valid
+ * index.
+ */
+ public Node item(int index);
+
+ /**
+ * The number of nodes in the list. The range of valid child node indices
+ * is 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java
new file mode 100644
index 00000000000..3739f928443
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface represents a notation declared in the DTD. A notation either
+ * declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification [XML 1.0]), or is
+ * used for formal declaration of processing instruction targets (see section 2.6 of the XML 1.0 specification [XML 1.0]). The
+ * nodeName attribute inherited from Node is set
+ * to the declared name of the notation.
+ *
The DOM Core does not support editing Notation nodes; they
+ * are therefore readonly.
+ *
A Notation node does not have any parent.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Notation extends Node {
+ /**
+ * The public identifier of this notation. If the public identifier was
+ * not specified, this is null.
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier of this notation. If the system identifier was
+ * not specified, this is null. This may be an absolute URI
+ * or not.
+ */
+ public String getSystemId();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java
new file mode 100644
index 00000000000..0b6825f104c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The ProcessingInstruction interface represents a "processing
+ * instruction", used in XML as a way to keep processor-specific information
+ * in the text of the document.
+ *
No lexical check is done on the content of a processing instruction and
+ * it is therefore possible to have the character sequence
+ * "?>" in the content, which is illegal a processing
+ * instruction per section 2.6 of [XML 1.0]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface ProcessingInstruction extends Node {
+ /**
+ * The target of this processing instruction. XML defines this as being
+ * the first token following the markup that begins the processing
+ * instruction.
+ */
+ public String getTarget();
+
+ /**
+ * The content of this processing instruction. This is from the first non
+ * white space character after the target to the character immediately
+ * preceding the ?>.
+ */
+ public String getData();
+ /**
+ * The content of this processing instruction. This is from the first non
+ * white space character after the target to the character immediately
+ * preceding the ?>.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setData(String data)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java
new file mode 100644
index 00000000000..9c294a4a488
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The Text interface inherits from CharacterData
+ * and represents the textual content (termed character data in XML) of an Element or Attr. If there is no
+ * markup inside an element's content, the text is contained in a single
+ * object implementing the Text interface that is the only
+ * child of the element. If there is markup, it is parsed into the
+ * information items (elements, comments, etc.) and Text nodes
+ * that form the list of children of the element.
+ *
When a document is first made available via the DOM, there is only one
+ * Text node for each block of text. Users may create adjacent
+ * Text nodes that represent the contents of a given element
+ * without any intervening markup, but should be aware that there is no way
+ * to represent the separations between these nodes in XML or HTML, so they
+ * will not (in general) persist between DOM editing sessions. The
+ * Node.normalize() method merges any such adjacent
+ * Text objects into a single node for each block of text.
+ *
No lexical check is done on the content of a Text node
+ * and, depending on its position in the document, some characters must be
+ * escaped during serialization using character references; e.g. the
+ * characters "<&" if the textual content is part of an element or of
+ * an attribute, the character sequence "]]>" when part of an element,
+ * the quotation mark character " or the apostrophe character ' when part of
+ * an attribute.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ */
+public interface Text extends CharacterData {
+ /**
+ * Breaks this node into two nodes at the specified offset,
+ * keeping both in the tree as siblings. After being split, this node
+ * will contain all the content up to the offset point. A
+ * new node of the same type, which contains all the content at and
+ * after the offset point, is returned. If the original
+ * node had a parent node, the new node is inserted as the next sibling
+ * of the original node. When the offset is equal to the
+ * length of this node, the new node has no data.
+ * @param offset The 16-bit unit offset at which to split, starting from
+ * 0.
+ * @return The new node, of the same type as this node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+ * than the number of 16-bit units in data.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public Text splitText(int offset)
+ throws DOMException;
+
+ /**
+ * Returns whether this text node contains
+ * element content whitespace, often abusively called "ignorable whitespace". The text node is
+ * determined to contain whitespace in element content during the load
+ * of the document or if validation occurs while using
+ * Document.normalizeDocument().
+ * @since DOM Level 3
+ */
+ public boolean isElementContentWhitespace();
+
+ /**
+ * Returns all text of Text nodes logically-adjacent text
+ * nodes to this node, concatenated in document order.
+ *
For instance, in the example below wholeText on the
+ * Text node that contains "bar" returns "barfoo", while on
+ * the Text node that contains "foo" it returns "barfoo".
+ * @since DOM Level 3
+ */
+ public String getWholeText();
+
+ /**
+ * Replaces the text of the current node and all logically-adjacent text
+ * nodes with the specified text. All logically-adjacent text nodes are
+ * removed including the current node unless it was the recipient of the
+ * replacement text.
+ *
This method returns the node which received the replacement text.
+ * The returned node is:
+ *
null, when the replacement text is
+ * the empty string;
+ * Text node of the same type (
+ * Text or CDATASection) as the current node
+ * inserted at the location of the replacement.
+ * replaceWholeText on the Text node that
+ * contains "bar" with "yo" in argument results in the following:
+ * EntityReference, the EntityReference must
+ * be removed instead of the read-only nodes. If any
+ * EntityReference to be removed has descendants that are
+ * not EntityReference, Text, or
+ * CDATASection nodes, the replaceWholeText
+ * method must fail before performing any modification of the document,
+ * raising a DOMException with the code
+ * NO_MODIFICATION_ALLOWED_ERR.
+ * replaceWholeText on the Text node that
+ * contains "bar" fails, because the EntityReference node
+ * "ent" contains an Element node which cannot be removed.
+ * @param content The content of the replacing Text node.
+ * @return The Text node created with the specified content.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the Text
+ * nodes being replaced is readonly.
+ * @since DOM Level 3
+ */
+ public Text replaceWholeText(String content)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java
new file mode 100644
index 00000000000..054f9907245
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java
@@ -0,0 +1,185 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The TypeInfo interface represents a type referenced from
+ * Element or Attr nodes, specified in the schemas
+ * associated with the document. The type is a pair of a namespace URI and
+ * name properties, and depends on the document's schema.
+ * If the document's schema is an XML DTD [XML 1.0], the values + * are computed as follows: + *
Attr node, typeNamespace is
+ * "http://www.w3.org/TR/REC-xml" and typeName
+ * represents the [attribute type] property in the [XML Information Set]
+ * . If there is no declaration for the attribute, typeNamespace
+ * and typeName are null.
+ * Element node, typeNamespace
+ * and typeName are null.
+ * If the document's schema is an XML Schema [XML Schema Part 1] + * , the values are computed as follows using the post-schema-validation + * infoset contributions (also called PSVI contributions): + *
null.
+ * Note: At the time of writing, the XML Schema specification does + * not require exposing the declared type. Thus, DOM implementations might + * choose not to provide type information if validity is not valid. + *
Note: Other schema languages are outside the scope of the W3C
+ * and therefore should define how to represent their type systems using
+ * TypeInfo.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface TypeInfo {
+ /**
+ * The name of a type declared for the associated element or attribute,
+ * or null if unknown.
+ */
+ public String getTypeName();
+
+ /**
+ * The namespace of the type declared for the associated element or
+ * attribute or null if the element does not have
+ * declaration or if no namespace information is available.
+ */
+ public String getTypeNamespace();
+
+ // DerivationMethods
+ /**
+ * If the document's schema is an XML Schema [XML Schema Part 1]
+ * , this constant represents the derivation by
+ * restriction if complex types are involved, or a
+ * restriction if simple types are involved.
+ *
The reference type definition is derived by restriction from the
+ * other type definition if the other type definition is the same as the
+ * reference type definition, or if the other type definition can be
+ * reached recursively following the {base type definition} property
+ * from the reference type definition, and all the derivation methods involved are restriction.
+ */
+ public static final int DERIVATION_RESTRICTION = 0x00000001;
+ /**
+ * If the document's schema is an XML Schema [XML Schema Part 1]
+ * , this constant represents the derivation by
+ * extension.
+ *
The reference type definition is derived by extension from the
+ * other type definition if the other type definition can be reached
+ * recursively following the {base type definition} property from the
+ * reference type definition, and at least one of the derivation methods involved is an extension.
+ */
+ public static final int DERIVATION_EXTENSION = 0x00000002;
+ /**
+ * If the document's schema is an XML Schema [XML Schema Part 1]
+ * , this constant represents the
+ * union if simple types are involved.
+ *
The reference type definition is derived by union from the other
+ * type definition if there exists two type definitions T1 and T2 such
+ * as the reference type definition is derived from T1 by
+ * DERIVATION_RESTRICTION or
+ * DERIVATION_EXTENSION, T2 is derived from the other type
+ * definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be
+ * the same as the reference type definition, and T2 could be the same
+ * as the other type definition.
+ */
+ public static final int DERIVATION_UNION = 0x00000004;
+ /**
+ * If the document's schema is an XML Schema [XML Schema Part 1]
+ * , this constant represents the list.
+ *
The reference type definition is derived by list from the other
+ * type definition if there exists two type definitions T1 and T2 such
+ * as the reference type definition is derived from T1 by
+ * DERIVATION_RESTRICTION or
+ * DERIVATION_EXTENSION, T2 is derived from the other type
+ * definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as
+ * the reference type definition, and T2 could be the same as the other
+ * type definition.
+ */
+ public static final int DERIVATION_LIST = 0x00000008;
+
+ /**
+ * This method returns if there is a derivation between the reference
+ * type definition, i.e. the TypeInfo on which the method
+ * is being called, and the other type definition, i.e. the one passed
+ * as parameters.
+ * @param typeNamespaceArg the namespace of the other type definition.
+ * @param typeNameArg the name of the other type definition.
+ * @param derivationMethod the type of derivation and conditions applied
+ * between two types, as described in the list of constants provided
+ * in this interface.
+ * @return If the document's schema is a DTD or no schema is associated
+ * with the document, this method will always return false
+ * . If the document's schema is an XML Schema, the method will
+ * true if the reference type definition is derived from
+ * the other type definition according to the derivation parameter. If
+ * the value of the parameter is 0 (no bit is set to
+ * 1 for the derivationMethod parameter),
+ * the method will return true if the other type
+ * definition can be reached by recursing any combination of {base
+ * type definition}, {item type definition}, or {member type
+ * definitions} from the reference type definition.
+ */
+ public boolean isDerivedFrom(String typeNamespaceArg,
+ String typeNameArg,
+ int derivationMethod);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java
new file mode 100644
index 00000000000..a16ea7308c2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * When associating an object to a key on a node using
+ * Node.setUserData() the application can provide a handler
+ * that gets called when the node the object is associated to is being
+ * cloned, imported, or renamed. This can be used by the application to
+ * implement various behaviors regarding the data it associates to the DOM
+ * nodes. This interface defines that handler.
+ *
See also the Document Object Model (DOM) Level 3 Core Specification.
+ * @since DOM Level 3
+ */
+public interface UserDataHandler {
+ // OperationType
+ /**
+ * The node is cloned, using Node.cloneNode().
+ */
+ public static final short NODE_CLONED = 1;
+ /**
+ * The node is imported, using Document.importNode().
+ */
+ public static final short NODE_IMPORTED = 2;
+ /**
+ * The node is deleted.
+ *
Note: This may not be supported or may not be reliable in
+ * certain environments, such as Java, where the implementation has no
+ * real control over when objects are actually deleted.
+ */
+ public static final short NODE_DELETED = 3;
+ /**
+ * The node is renamed, using Document.renameNode().
+ */
+ public static final short NODE_RENAMED = 4;
+ /**
+ * The node is adopted, using Document.adoptNode().
+ */
+ public static final short NODE_ADOPTED = 5;
+
+ /**
+ * This method is called whenever the node for which this handler is
+ * registered is imported or cloned.
+ *
DOM applications must not raise exceptions in a
+ * UserDataHandler. The effect of throwing exceptions from
+ * the handler is DOM implementation dependent.
+ * @param operation Specifies the type of operation that is being
+ * performed on the node.
+ * @param key Specifies the key for which this handler is being called.
+ * @param data Specifies the data for which this handler is being called.
+ * @param src Specifies the node being cloned, adopted, imported, or
+ * renamed. This is null when the node is being deleted.
+ * @param dst Specifies the node newly created if any, or
+ * null.
+ */
+ public void handle(short operation,
+ String key,
+ Object data,
+ Node src,
+ Node dst);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java
new file mode 100644
index 00000000000..be73f396bd8
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java
@@ -0,0 +1,387 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+
+package org.w3c.dom.bootstrap;
+
+import java.util.StringTokenizer;
+import java.util.Vector;
+import org.w3c.dom.DOMImplementationSource;
+import org.w3c.dom.DOMImplementationList;
+import org.w3c.dom.DOMImplementation;
+import java.io.InputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * A factory that enables applications to obtain instances of
+ * DOMImplementation.
+ *
+ *
+ * Example: + *
+ * + *
+ * // get an instance of the DOMImplementation registry
+ * DOMImplementationRegistry registry =
+ * DOMImplementationRegistry.newInstance();
+ * // get a DOM implementation the Level 3 XML module
+ * DOMImplementation domImpl =
+ * registry.getDOMImplementation("XML 3.0");
+ *
+ *
+ * + * This provides an application with an implementation-independent starting + * point. DOM implementations may modify this class to meet new security + * standards or to provide *additional* fallbacks for the list of + * DOMImplementationSources. + *
+ * + * @see DOMImplementation + * @see DOMImplementationSource + * @since DOM Level 3 + */ +public final class DOMImplementationRegistry { + /** + * The system property to specify the + * DOMImplementationSource class names. + */ + public static final String PROPERTY = + "org.w3c.dom.DOMImplementationSourceList"; + + /** + * Default columns per line. + */ + private static final int DEFAULT_LINE_LENGTH = 80; + + /** + * The list of DOMImplementationSources. + */ + private Vector sources; + + /** + * Private constructor. + * @param srcs Vector List of DOMImplementationSources + */ + private DOMImplementationRegistry(final Vector srcs) { + sources = srcs; + } + + /** + * Obtain a new instance of aDOMImplementationRegistry.
+ *
+
+ * The DOMImplementationRegistry is initialized by the
+ * application or the implementation, depending on the context, by
+ * first checking the value of the Java system property
+ * org.w3c.dom.DOMImplementationSourceList and
+ * the the service provider whose contents are at
+ * "META_INF/services/org.w3c.dom.DOMImplementationSourceList"
+ * The value of this property is a white-space separated list of
+ * names of availables classes implementing the
+ * DOMImplementationSource interface. Each class listed
+ * in the class name list is instantiated and any exceptions
+ * encountered are thrown to the application.
+ *
+ * @return an initialized instance of DOMImplementationRegistry
+ * @throws ClassNotFoundException
+ * If any specified class can not be found
+ * @throws InstantiationException
+ * If any specified class is an interface or abstract class
+ * @throws IllegalAccessException
+ * If the default constructor of a specified class is not accessible
+ * @throws ClassCastException
+ * If any specified class does not implement
+ * DOMImplementationSource
+ */
+ public static DOMImplementationRegistry newInstance()
+ throws
+ ClassNotFoundException,
+ InstantiationException,
+ IllegalAccessException,
+ ClassCastException {
+ Vector sources = new Vector();
+
+ ClassLoader classLoader = getClassLoader();
+ // fetch system property:
+ String p = getSystemProperty(PROPERTY);
+
+ //
+ // if property is not specified then use contents of
+ // META_INF/org.w3c.dom.DOMImplementationSourceList from classpath
+ if (p == null) {
+ p = getServiceValue(classLoader);
+ }
+ if (p == null) {
+ //
+ // DOM Implementations can modify here to add *additional* fallback
+ // mechanisms to access a list of default DOMImplementationSources.
+ p = "gnu.xml.dom.ImplementationSource";
+ }
+ if (p != null) {
+ StringTokenizer st = new StringTokenizer(p);
+ while (st.hasMoreTokens()) {
+ String sourceName = st.nextToken();
+ // Use context class loader, falling back to Class.forName
+ // if and only if this fails...
+ Class sourceClass = null;
+ if (classLoader != null) {
+ sourceClass = classLoader.loadClass(sourceName);
+ } else {
+ sourceClass = Class.forName(sourceName);
+ }
+ DOMImplementationSource source =
+ (DOMImplementationSource) sourceClass.newInstance();
+ sources.addElement(source);
+ }
+ }
+ return new DOMImplementationRegistry(sources);
+ }
+
+ /**
+ * Return the first implementation that has the desired
+ * features, or null if none is found.
+ *
+ * @param features
+ * A string that specifies which features are required. This is
+ * a space separated list in which each feature is specified by
+ * its name optionally followed by a space and a version number.
+ * This is something like: "XML 1.0 Traversal +Events 2.0"
+ * @return An implementation that has the desired features,
+ * or null if none found.
+ */
+ public DOMImplementation getDOMImplementation(final String features) {
+ int size = sources.size();
+ String name = null;
+ for (int i = 0; i < size; i++) {
+ DOMImplementationSource source =
+ (DOMImplementationSource) sources.elementAt(i);
+ DOMImplementation impl = source.getDOMImplementation(features);
+ if (impl != null) {
+ return impl;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return a list of implementations that support the
+ * desired features.
+ *
+ * @param features
+ * A string that specifies which features are required. This is
+ * a space separated list in which each feature is specified by
+ * its name optionally followed by a space and a version number.
+ * This is something like: "XML 1.0 Traversal +Events 2.0"
+ * @return A list of DOMImplementations that support the desired features.
+ */
+ public DOMImplementationList getDOMImplementationList(final String features) {
+ final Vector implementations = new Vector();
+ int size = sources.size();
+ for (int i = 0; i < size; i++) {
+ DOMImplementationSource source =
+ (DOMImplementationSource) sources.elementAt(i);
+ DOMImplementationList impls =
+ source.getDOMImplementationList(features);
+ for (int j = 0; j < impls.getLength(); j++) {
+ DOMImplementation impl = impls.item(j);
+ implementations.addElement(impl);
+ }
+ }
+ return new DOMImplementationList() {
+ public DOMImplementation item(final int index) {
+ if (index >= 0 && index < implementations.size()) {
+ try {
+ return (DOMImplementation)
+ implementations.elementAt(index);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public int getLength() {
+ return implementations.size();
+ }
+ };
+ }
+
+ /**
+ * Register an implementation.
+ *
+ * @param s The source to be registered, may not be null
+ */
+ public void addSource(final DOMImplementationSource s) {
+ if (s == null) {
+ throw new NullPointerException();
+ }
+ if (!sources.contains(s)) {
+ sources.addElement(s);
+ }
+ }
+
+ /**
+ *
+ * Gets a class loader.
+ *
+ * @return A class loader, possibly null
+ */
+ private static ClassLoader getClassLoader() {
+ try {
+ ClassLoader contextClassLoader = getContextClassLoader();
+
+ if (contextClassLoader != null) {
+ return contextClassLoader;
+ }
+ } catch (Exception e) {
+ // Assume that the DOM application is in a JRE 1.1, use the
+ // current ClassLoader
+ return DOMImplementationRegistry.class.getClassLoader();
+ }
+ return DOMImplementationRegistry.class.getClassLoader();
+ }
+
+ /**
+ * This method attempts to return the first line of the resource
+ * META_INF/services/org.w3c.dom.DOMImplementationSourceList
+ * from the provided ClassLoader.
+ *
+ * @param classLoader classLoader, may not be null.
+ * @return first line of resource, or null
+ */
+ private static String getServiceValue(final ClassLoader classLoader) {
+ String serviceId = "META-INF/services/" + PROPERTY;
+ // try to find services in CLASSPATH
+ try {
+ InputStream is = getResourceAsStream(classLoader, serviceId);
+
+ if (is != null) {
+ BufferedReader rd;
+ try {
+ rd =
+ new BufferedReader(new InputStreamReader(is, "UTF-8"),
+ DEFAULT_LINE_LENGTH);
+ } catch (java.io.UnsupportedEncodingException e) {
+ rd =
+ new BufferedReader(new InputStreamReader(is),
+ DEFAULT_LINE_LENGTH);
+ }
+ String serviceValue = rd.readLine();
+ rd.close();
+ if (serviceValue != null && serviceValue.length() > 0) {
+ return serviceValue;
+ }
+ }
+ } catch (Exception ex) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * A simple JRE (Java Runtime Environment) 1.1 test
+ *
+ * @return true if JRE 1.1
+ */
+ private static boolean isJRE11() {
+ try {
+ Class c = Class.forName("java.security.AccessController");
+ // java.security.AccessController existed since 1.2 so, if no
+ // exception was thrown, the DOM application is running in a JRE
+ // 1.2 or higher
+ return false;
+ } catch (Exception ex) {
+ // ignore
+ }
+ return true;
+ }
+
+ /**
+ * This method returns the ContextClassLoader or null if
+ * running in a JRE 1.1
+ *
+ * @return The Context Classloader
+ */
+ private static ClassLoader getContextClassLoader() {
+ return isJRE11()
+ ? null
+ : (ClassLoader)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ ClassLoader classLoader = null;
+ try {
+ classLoader =
+ Thread.currentThread().getContextClassLoader();
+ } catch (SecurityException ex) {
+ }
+ return classLoader;
+ }
+ });
+ }
+
+ /**
+ * This method returns the system property indicated by the specified name
+ * after checking access control privileges. For a JRE 1.1, this check is
+ * not done.
+ *
+ * @param name the name of the system property
+ * @return the system property
+ */
+ private static String getSystemProperty(final String name) {
+ return isJRE11()
+ ? (String) System.getProperty(name)
+ : (String) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return System.getProperty(name);
+ }
+ });
+ }
+
+ /**
+ * This method returns an Inputstream for the reading resource
+ * META_INF/services/org.w3c.dom.DOMImplementationSourceList after checking
+ * access control privileges. For a JRE 1.1, this check is not done.
+ *
+ * @param classLoader classLoader
+ * @param name the resource
+ * @return an Inputstream for the resource specified
+ */
+ private static InputStream getResourceAsStream(final ClassLoader classLoader,
+ final String name) {
+ if (isJRE11()) {
+ InputStream ris;
+ if (classLoader == null) {
+ ris = ClassLoader.getSystemResourceAsStream(name);
+ } else {
+ ris = classLoader.getResourceAsStream(name);
+ }
+ return ris;
+ } else {
+ return (InputStream)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ InputStream ris;
+ if (classLoader == null) {
+ ris =
+ ClassLoader.getSystemResourceAsStream(name);
+ } else {
+ ris = classLoader.getResourceAsStream(name);
+ }
+ return ris;
+ }
+ });
+ }
+ }
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java
new file mode 100644
index 00000000000..89ccf5048ef
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java
@@ -0,0 +1,1777 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSS2Properties interface represents a convenience
+ * mechanism for retrieving and setting properties within a
+ * CSSStyleDeclaration. The attributes of this interface
+ * correspond to all the properties specified in CSS2. Getting an attribute
+ * of this interface is equivalent to calling the
+ * getPropertyValue method of the
+ * CSSStyleDeclaration interface. Setting an attribute of this
+ * interface is equivalent to calling the setProperty method of
+ * the CSSStyleDeclaration interface.
+ * A conformant implementation of the CSS module is not required to
+ * implement the CSS2Properties interface. If an implementation
+ * does implement this interface, the expectation is that language-specific
+ * methods can be used to cast from an instance of the
+ * CSSStyleDeclaration interface to the
+ * CSS2Properties interface.
+ *
If an implementation does implement this interface, it is expected to
+ * understand the specific syntax of the shorthand properties, and apply
+ * their semantics; when the margin property is set, for
+ * example, the marginTop, marginRight,
+ * marginBottom and marginLeft properties are
+ * actually being set by the underlying implementation.
+ *
When dealing with CSS "shorthand" properties, the shorthand properties + * should be decomposed into their component longhand properties as + * appropriate, and when querying for their value, the form returned should + * be the shortest form exactly equivalent to the declarations made in the + * ruleset. However, if there is no shorthand declaration that could be + * added to the ruleset without changing in any way the rules already + * declared in the ruleset (i.e., by adding longhand rules that were + * previously not declared in the ruleset), then the empty string should be + * returned for the shorthand property. + *
For example, querying for the font property should not
+ * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt
+ * Arial, sans-serif" suffices. (The normals are initial values, and are
+ * implied by use of the longhand property.)
+ *
If the values for all the longhand properties that compose a particular
+ * string are the initial values, then a string consisting of all the
+ * initial values should be returned (e.g. a border-width value
+ * of "medium" should be returned as such, not as "").
+ *
For some shorthand properties that take missing values from other
+ * sides, such as the margin, padding, and
+ * border-[width|style|color] properties, the minimum number of
+ * sides possible should be used; i.e., "0px 10px" will be returned instead
+ * of "0px 10px 0px 10px".
+ *
If the value of a shorthand property can not be decomposed into its
+ * component longhand properties, as is the case for the font
+ * property with a value of "menu", querying for the values of the component
+ * longhand properties should return the empty string.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSS2Properties {
+ /**
+ * See the azimuth property definition in CSS2.
+ */
+ public String getAzimuth();
+ /**
+ * See the azimuth property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setAzimuth(String azimuth)
+ throws DOMException;
+
+ /**
+ * See the background property definition in CSS2.
+ */
+ public String getBackground();
+ /**
+ * See the background property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackground(String background)
+ throws DOMException;
+
+ /**
+ * See the background-attachment property definition in CSS2.
+ */
+ public String getBackgroundAttachment();
+ /**
+ * See the background-attachment property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundAttachment(String backgroundAttachment)
+ throws DOMException;
+
+ /**
+ * See the background-color property definition in CSS2.
+ */
+ public String getBackgroundColor();
+ /**
+ * See the background-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundColor(String backgroundColor)
+ throws DOMException;
+
+ /**
+ * See the background-image property definition in CSS2.
+ */
+ public String getBackgroundImage();
+ /**
+ * See the background-image property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundImage(String backgroundImage)
+ throws DOMException;
+
+ /**
+ * See the background-position property definition in CSS2.
+ */
+ public String getBackgroundPosition();
+ /**
+ * See the background-position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundPosition(String backgroundPosition)
+ throws DOMException;
+
+ /**
+ * See the background-repeat property definition in CSS2.
+ */
+ public String getBackgroundRepeat();
+ /**
+ * See the background-repeat property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundRepeat(String backgroundRepeat)
+ throws DOMException;
+
+ /**
+ * See the border property definition in CSS2.
+ */
+ public String getBorder();
+ /**
+ * See the border property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorder(String border)
+ throws DOMException;
+
+ /**
+ * See the border-collapse property definition in CSS2.
+ */
+ public String getBorderCollapse();
+ /**
+ * See the border-collapse property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderCollapse(String borderCollapse)
+ throws DOMException;
+
+ /**
+ * See the border-color property definition in CSS2.
+ */
+ public String getBorderColor();
+ /**
+ * See the border-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderColor(String borderColor)
+ throws DOMException;
+
+ /**
+ * See the border-spacing property definition in CSS2.
+ */
+ public String getBorderSpacing();
+ /**
+ * See the border-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderSpacing(String borderSpacing)
+ throws DOMException;
+
+ /**
+ * See the border-style property definition in CSS2.
+ */
+ public String getBorderStyle();
+ /**
+ * See the border-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderStyle(String borderStyle)
+ throws DOMException;
+
+ /**
+ * See the border-top property definition in CSS2.
+ */
+ public String getBorderTop();
+ /**
+ * See the border-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTop(String borderTop)
+ throws DOMException;
+
+ /**
+ * See the border-right property definition in CSS2.
+ */
+ public String getBorderRight();
+ /**
+ * See the border-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRight(String borderRight)
+ throws DOMException;
+
+ /**
+ * See the border-bottom property definition in CSS2.
+ */
+ public String getBorderBottom();
+ /**
+ * See the border-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottom(String borderBottom)
+ throws DOMException;
+
+ /**
+ * See the border-left property definition in CSS2.
+ */
+ public String getBorderLeft();
+ /**
+ * See the border-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeft(String borderLeft)
+ throws DOMException;
+
+ /**
+ * See the border-top-color property definition in CSS2.
+ */
+ public String getBorderTopColor();
+ /**
+ * See the border-top-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopColor(String borderTopColor)
+ throws DOMException;
+
+ /**
+ * See the border-right-color property definition in CSS2.
+ */
+ public String getBorderRightColor();
+ /**
+ * See the border-right-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightColor(String borderRightColor)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-color property definition in CSS2.
+ */
+ public String getBorderBottomColor();
+ /**
+ * See the border-bottom-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomColor(String borderBottomColor)
+ throws DOMException;
+
+ /**
+ * See the border-left-color property definition in CSS2.
+ */
+ public String getBorderLeftColor();
+ /**
+ * See the border-left-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftColor(String borderLeftColor)
+ throws DOMException;
+
+ /**
+ * See the border-top-style property definition in CSS2.
+ */
+ public String getBorderTopStyle();
+ /**
+ * See the border-top-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopStyle(String borderTopStyle)
+ throws DOMException;
+
+ /**
+ * See the border-right-style property definition in CSS2.
+ */
+ public String getBorderRightStyle();
+ /**
+ * See the border-right-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightStyle(String borderRightStyle)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-style property definition in CSS2.
+ */
+ public String getBorderBottomStyle();
+ /**
+ * See the border-bottom-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomStyle(String borderBottomStyle)
+ throws DOMException;
+
+ /**
+ * See the border-left-style property definition in CSS2.
+ */
+ public String getBorderLeftStyle();
+ /**
+ * See the border-left-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftStyle(String borderLeftStyle)
+ throws DOMException;
+
+ /**
+ * See the border-top-width property definition in CSS2.
+ */
+ public String getBorderTopWidth();
+ /**
+ * See the border-top-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopWidth(String borderTopWidth)
+ throws DOMException;
+
+ /**
+ * See the border-right-width property definition in CSS2.
+ */
+ public String getBorderRightWidth();
+ /**
+ * See the border-right-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightWidth(String borderRightWidth)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-width property definition in CSS2.
+ */
+ public String getBorderBottomWidth();
+ /**
+ * See the border-bottom-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomWidth(String borderBottomWidth)
+ throws DOMException;
+
+ /**
+ * See the border-left-width property definition in CSS2.
+ */
+ public String getBorderLeftWidth();
+ /**
+ * See the border-left-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftWidth(String borderLeftWidth)
+ throws DOMException;
+
+ /**
+ * See the border-width property definition in CSS2.
+ */
+ public String getBorderWidth();
+ /**
+ * See the border-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderWidth(String borderWidth)
+ throws DOMException;
+
+ /**
+ * See the bottom property definition in CSS2.
+ */
+ public String getBottom();
+ /**
+ * See the bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBottom(String bottom)
+ throws DOMException;
+
+ /**
+ * See the caption-side property definition in CSS2.
+ */
+ public String getCaptionSide();
+ /**
+ * See the caption-side property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCaptionSide(String captionSide)
+ throws DOMException;
+
+ /**
+ * See the clear property definition in CSS2.
+ */
+ public String getClear();
+ /**
+ * See the clear property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setClear(String clear)
+ throws DOMException;
+
+ /**
+ * See the clip property definition in CSS2.
+ */
+ public String getClip();
+ /**
+ * See the clip property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setClip(String clip)
+ throws DOMException;
+
+ /**
+ * See the color property definition in CSS2.
+ */
+ public String getColor();
+ /**
+ * See the color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setColor(String color)
+ throws DOMException;
+
+ /**
+ * See the content property definition in CSS2.
+ */
+ public String getContent();
+ /**
+ * See the content property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setContent(String content)
+ throws DOMException;
+
+ /**
+ * See the counter-increment property definition in CSS2.
+ */
+ public String getCounterIncrement();
+ /**
+ * See the counter-increment property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCounterIncrement(String counterIncrement)
+ throws DOMException;
+
+ /**
+ * See the counter-reset property definition in CSS2.
+ */
+ public String getCounterReset();
+ /**
+ * See the counter-reset property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCounterReset(String counterReset)
+ throws DOMException;
+
+ /**
+ * See the cue property definition in CSS2.
+ */
+ public String getCue();
+ /**
+ * See the cue property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCue(String cue)
+ throws DOMException;
+
+ /**
+ * See the cue-after property definition in CSS2.
+ */
+ public String getCueAfter();
+ /**
+ * See the cue-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCueAfter(String cueAfter)
+ throws DOMException;
+
+ /**
+ * See the cue-before property definition in CSS2.
+ */
+ public String getCueBefore();
+ /**
+ * See the cue-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCueBefore(String cueBefore)
+ throws DOMException;
+
+ /**
+ * See the cursor property definition in CSS2.
+ */
+ public String getCursor();
+ /**
+ * See the cursor property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCursor(String cursor)
+ throws DOMException;
+
+ /**
+ * See the direction property definition in CSS2.
+ */
+ public String getDirection();
+ /**
+ * See the direction property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setDirection(String direction)
+ throws DOMException;
+
+ /**
+ * See the display property definition in CSS2.
+ */
+ public String getDisplay();
+ /**
+ * See the display property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setDisplay(String display)
+ throws DOMException;
+
+ /**
+ * See the elevation property definition in CSS2.
+ */
+ public String getElevation();
+ /**
+ * See the elevation property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setElevation(String elevation)
+ throws DOMException;
+
+ /**
+ * See the empty-cells property definition in CSS2.
+ */
+ public String getEmptyCells();
+ /**
+ * See the empty-cells property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setEmptyCells(String emptyCells)
+ throws DOMException;
+
+ /**
+ * See the float property definition in CSS2.
+ */
+ public String getCssFloat();
+ /**
+ * See the float property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCssFloat(String cssFloat)
+ throws DOMException;
+
+ /**
+ * See the font property definition in CSS2.
+ */
+ public String getFont();
+ /**
+ * See the font property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFont(String font)
+ throws DOMException;
+
+ /**
+ * See the font-family property definition in CSS2.
+ */
+ public String getFontFamily();
+ /**
+ * See the font-family property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontFamily(String fontFamily)
+ throws DOMException;
+
+ /**
+ * See the font-size property definition in CSS2.
+ */
+ public String getFontSize();
+ /**
+ * See the font-size property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontSize(String fontSize)
+ throws DOMException;
+
+ /**
+ * See the font-size-adjust property definition in CSS2.
+ */
+ public String getFontSizeAdjust();
+ /**
+ * See the font-size-adjust property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontSizeAdjust(String fontSizeAdjust)
+ throws DOMException;
+
+ /**
+ * See the font-stretch property definition in CSS2.
+ */
+ public String getFontStretch();
+ /**
+ * See the font-stretch property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontStretch(String fontStretch)
+ throws DOMException;
+
+ /**
+ * See the font-style property definition in CSS2.
+ */
+ public String getFontStyle();
+ /**
+ * See the font-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontStyle(String fontStyle)
+ throws DOMException;
+
+ /**
+ * See the font-variant property definition in CSS2.
+ */
+ public String getFontVariant();
+ /**
+ * See the font-variant property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontVariant(String fontVariant)
+ throws DOMException;
+
+ /**
+ * See the font-weight property definition in CSS2.
+ */
+ public String getFontWeight();
+ /**
+ * See the font-weight property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontWeight(String fontWeight)
+ throws DOMException;
+
+ /**
+ * See the height property definition in CSS2.
+ */
+ public String getHeight();
+ /**
+ * See the height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setHeight(String height)
+ throws DOMException;
+
+ /**
+ * See the left property definition in CSS2.
+ */
+ public String getLeft();
+ /**
+ * See the left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLeft(String left)
+ throws DOMException;
+
+ /**
+ * See the letter-spacing property definition in CSS2.
+ */
+ public String getLetterSpacing();
+ /**
+ * See the letter-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLetterSpacing(String letterSpacing)
+ throws DOMException;
+
+ /**
+ * See the line-height property definition in CSS2.
+ */
+ public String getLineHeight();
+ /**
+ * See the line-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLineHeight(String lineHeight)
+ throws DOMException;
+
+ /**
+ * See the list-style property definition in CSS2.
+ */
+ public String getListStyle();
+ /**
+ * See the list-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyle(String listStyle)
+ throws DOMException;
+
+ /**
+ * See the list-style-image property definition in CSS2.
+ */
+ public String getListStyleImage();
+ /**
+ * See the list-style-image property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyleImage(String listStyleImage)
+ throws DOMException;
+
+ /**
+ * See the list-style-position property definition in CSS2.
+ */
+ public String getListStylePosition();
+ /**
+ * See the list-style-position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStylePosition(String listStylePosition)
+ throws DOMException;
+
+ /**
+ * See the list-style-type property definition in CSS2.
+ */
+ public String getListStyleType();
+ /**
+ * See the list-style-type property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyleType(String listStyleType)
+ throws DOMException;
+
+ /**
+ * See the margin property definition in CSS2.
+ */
+ public String getMargin();
+ /**
+ * See the margin property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMargin(String margin)
+ throws DOMException;
+
+ /**
+ * See the margin-top property definition in CSS2.
+ */
+ public String getMarginTop();
+ /**
+ * See the margin-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginTop(String marginTop)
+ throws DOMException;
+
+ /**
+ * See the margin-right property definition in CSS2.
+ */
+ public String getMarginRight();
+ /**
+ * See the margin-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginRight(String marginRight)
+ throws DOMException;
+
+ /**
+ * See the margin-bottom property definition in CSS2.
+ */
+ public String getMarginBottom();
+ /**
+ * See the margin-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginBottom(String marginBottom)
+ throws DOMException;
+
+ /**
+ * See the margin-left property definition in CSS2.
+ */
+ public String getMarginLeft();
+ /**
+ * See the margin-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginLeft(String marginLeft)
+ throws DOMException;
+
+ /**
+ * See the marker-offset property definition in CSS2.
+ */
+ public String getMarkerOffset();
+ /**
+ * See the marker-offset property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarkerOffset(String markerOffset)
+ throws DOMException;
+
+ /**
+ * See the marks property definition in CSS2.
+ */
+ public String getMarks();
+ /**
+ * See the marks property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarks(String marks)
+ throws DOMException;
+
+ /**
+ * See the max-height property definition in CSS2.
+ */
+ public String getMaxHeight();
+ /**
+ * See the max-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMaxHeight(String maxHeight)
+ throws DOMException;
+
+ /**
+ * See the max-width property definition in CSS2.
+ */
+ public String getMaxWidth();
+ /**
+ * See the max-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMaxWidth(String maxWidth)
+ throws DOMException;
+
+ /**
+ * See the min-height property definition in CSS2.
+ */
+ public String getMinHeight();
+ /**
+ * See the min-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMinHeight(String minHeight)
+ throws DOMException;
+
+ /**
+ * See the min-width property definition in CSS2.
+ */
+ public String getMinWidth();
+ /**
+ * See the min-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMinWidth(String minWidth)
+ throws DOMException;
+
+ /**
+ * See the orphans property definition in CSS2.
+ */
+ public String getOrphans();
+ /**
+ * See the orphans property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOrphans(String orphans)
+ throws DOMException;
+
+ /**
+ * See the outline property definition in CSS2.
+ */
+ public String getOutline();
+ /**
+ * See the outline property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutline(String outline)
+ throws DOMException;
+
+ /**
+ * See the outline-color property definition in CSS2.
+ */
+ public String getOutlineColor();
+ /**
+ * See the outline-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineColor(String outlineColor)
+ throws DOMException;
+
+ /**
+ * See the outline-style property definition in CSS2.
+ */
+ public String getOutlineStyle();
+ /**
+ * See the outline-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineStyle(String outlineStyle)
+ throws DOMException;
+
+ /**
+ * See the outline-width property definition in CSS2.
+ */
+ public String getOutlineWidth();
+ /**
+ * See the outline-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineWidth(String outlineWidth)
+ throws DOMException;
+
+ /**
+ * See the overflow property definition in CSS2.
+ */
+ public String getOverflow();
+ /**
+ * See the overflow property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOverflow(String overflow)
+ throws DOMException;
+
+ /**
+ * See the padding property definition in CSS2.
+ */
+ public String getPadding();
+ /**
+ * See the padding property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPadding(String padding)
+ throws DOMException;
+
+ /**
+ * See the padding-top property definition in CSS2.
+ */
+ public String getPaddingTop();
+ /**
+ * See the padding-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingTop(String paddingTop)
+ throws DOMException;
+
+ /**
+ * See the padding-right property definition in CSS2.
+ */
+ public String getPaddingRight();
+ /**
+ * See the padding-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingRight(String paddingRight)
+ throws DOMException;
+
+ /**
+ * See the padding-bottom property definition in CSS2.
+ */
+ public String getPaddingBottom();
+ /**
+ * See the padding-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingBottom(String paddingBottom)
+ throws DOMException;
+
+ /**
+ * See the padding-left property definition in CSS2.
+ */
+ public String getPaddingLeft();
+ /**
+ * See the padding-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingLeft(String paddingLeft)
+ throws DOMException;
+
+ /**
+ * See the page property definition in CSS2.
+ */
+ public String getPage();
+ /**
+ * See the page property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPage(String page)
+ throws DOMException;
+
+ /**
+ * See the page-break-after property definition in CSS2.
+ */
+ public String getPageBreakAfter();
+ /**
+ * See the page-break-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakAfter(String pageBreakAfter)
+ throws DOMException;
+
+ /**
+ * See the page-break-before property definition in CSS2.
+ */
+ public String getPageBreakBefore();
+ /**
+ * See the page-break-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakBefore(String pageBreakBefore)
+ throws DOMException;
+
+ /**
+ * See the page-break-inside property definition in CSS2.
+ */
+ public String getPageBreakInside();
+ /**
+ * See the page-break-inside property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakInside(String pageBreakInside)
+ throws DOMException;
+
+ /**
+ * See the pause property definition in CSS2.
+ */
+ public String getPause();
+ /**
+ * See the pause property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPause(String pause)
+ throws DOMException;
+
+ /**
+ * See the pause-after property definition in CSS2.
+ */
+ public String getPauseAfter();
+ /**
+ * See the pause-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPauseAfter(String pauseAfter)
+ throws DOMException;
+
+ /**
+ * See the pause-before property definition in CSS2.
+ */
+ public String getPauseBefore();
+ /**
+ * See the pause-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPauseBefore(String pauseBefore)
+ throws DOMException;
+
+ /**
+ * See the pitch property definition in CSS2.
+ */
+ public String getPitch();
+ /**
+ * See the pitch property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPitch(String pitch)
+ throws DOMException;
+
+ /**
+ * See the pitch-range property definition in CSS2.
+ */
+ public String getPitchRange();
+ /**
+ * See the pitch-range property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPitchRange(String pitchRange)
+ throws DOMException;
+
+ /**
+ * See the play-during property definition in CSS2.
+ */
+ public String getPlayDuring();
+ /**
+ * See the play-during property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPlayDuring(String playDuring)
+ throws DOMException;
+
+ /**
+ * See the position property definition in CSS2.
+ */
+ public String getPosition();
+ /**
+ * See the position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPosition(String position)
+ throws DOMException;
+
+ /**
+ * See the quotes property definition in CSS2.
+ */
+ public String getQuotes();
+ /**
+ * See the quotes property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setQuotes(String quotes)
+ throws DOMException;
+
+ /**
+ * See the richness property definition in CSS2.
+ */
+ public String getRichness();
+ /**
+ * See the richness property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setRichness(String richness)
+ throws DOMException;
+
+ /**
+ * See the right property definition in CSS2.
+ */
+ public String getRight();
+ /**
+ * See the right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setRight(String right)
+ throws DOMException;
+
+ /**
+ * See the size property definition in CSS2.
+ */
+ public String getSize();
+ /**
+ * See the size property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSize(String size)
+ throws DOMException;
+
+ /**
+ * See the speak property definition in CSS2.
+ */
+ public String getSpeak();
+ /**
+ * See the speak property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeak(String speak)
+ throws DOMException;
+
+ /**
+ * See the speak-header property definition in CSS2.
+ */
+ public String getSpeakHeader();
+ /**
+ * See the speak-header property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakHeader(String speakHeader)
+ throws DOMException;
+
+ /**
+ * See the speak-numeral property definition in CSS2.
+ */
+ public String getSpeakNumeral();
+ /**
+ * See the speak-numeral property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakNumeral(String speakNumeral)
+ throws DOMException;
+
+ /**
+ * See the speak-punctuation property definition in CSS2.
+ */
+ public String getSpeakPunctuation();
+ /**
+ * See the speak-punctuation property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakPunctuation(String speakPunctuation)
+ throws DOMException;
+
+ /**
+ * See the speech-rate property definition in CSS2.
+ */
+ public String getSpeechRate();
+ /**
+ * See the speech-rate property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeechRate(String speechRate)
+ throws DOMException;
+
+ /**
+ * See the stress property definition in CSS2.
+ */
+ public String getStress();
+ /**
+ * See the stress property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setStress(String stress)
+ throws DOMException;
+
+ /**
+ * See the table-layout property definition in CSS2.
+ */
+ public String getTableLayout();
+ /**
+ * See the table-layout property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTableLayout(String tableLayout)
+ throws DOMException;
+
+ /**
+ * See the text-align property definition in CSS2.
+ */
+ public String getTextAlign();
+ /**
+ * See the text-align property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextAlign(String textAlign)
+ throws DOMException;
+
+ /**
+ * See the text-decoration property definition in CSS2.
+ */
+ public String getTextDecoration();
+ /**
+ * See the text-decoration property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextDecoration(String textDecoration)
+ throws DOMException;
+
+ /**
+ * See the text-indent property definition in CSS2.
+ */
+ public String getTextIndent();
+ /**
+ * See the text-indent property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextIndent(String textIndent)
+ throws DOMException;
+
+ /**
+ * See the text-shadow property definition in CSS2.
+ */
+ public String getTextShadow();
+ /**
+ * See the text-shadow property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextShadow(String textShadow)
+ throws DOMException;
+
+ /**
+ * See the text-transform property definition in CSS2.
+ */
+ public String getTextTransform();
+ /**
+ * See the text-transform property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextTransform(String textTransform)
+ throws DOMException;
+
+ /**
+ * See the top property definition in CSS2.
+ */
+ public String getTop();
+ /**
+ * See the top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTop(String top)
+ throws DOMException;
+
+ /**
+ * See the unicode-bidi property definition in CSS2.
+ */
+ public String getUnicodeBidi();
+ /**
+ * See the unicode-bidi property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setUnicodeBidi(String unicodeBidi)
+ throws DOMException;
+
+ /**
+ * See the vertical-align property definition in CSS2.
+ */
+ public String getVerticalAlign();
+ /**
+ * See the vertical-align property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVerticalAlign(String verticalAlign)
+ throws DOMException;
+
+ /**
+ * See the visibility property definition in CSS2.
+ */
+ public String getVisibility();
+ /**
+ * See the visibility property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVisibility(String visibility)
+ throws DOMException;
+
+ /**
+ * See the voice-family property definition in CSS2.
+ */
+ public String getVoiceFamily();
+ /**
+ * See the voice-family property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVoiceFamily(String voiceFamily)
+ throws DOMException;
+
+ /**
+ * See the volume property definition in CSS2.
+ */
+ public String getVolume();
+ /**
+ * See the volume property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVolume(String volume)
+ throws DOMException;
+
+ /**
+ * See the white-space property definition in CSS2.
+ */
+ public String getWhiteSpace();
+ /**
+ * See the white-space property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWhiteSpace(String whiteSpace)
+ throws DOMException;
+
+ /**
+ * See the widows property definition in CSS2.
+ */
+ public String getWidows();
+ /**
+ * See the widows property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWidows(String widows)
+ throws DOMException;
+
+ /**
+ * See the width property definition in CSS2.
+ */
+ public String getWidth();
+ /**
+ * See the width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWidth(String width)
+ throws DOMException;
+
+ /**
+ * See the word-spacing property definition in CSS2.
+ */
+ public String getWordSpacing();
+ /**
+ * See the word-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWordSpacing(String wordSpacing)
+ throws DOMException;
+
+ /**
+ * See the z-index property definition in CSS2.
+ */
+ public String getZIndex();
+ /**
+ * See the z-index property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setZIndex(String zIndex)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java
new file mode 100644
index 00000000000..8c0defa4753
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSCharsetRule interface represents a @charset rule in a
+ * CSS style sheet. The value of the encoding attribute does
+ * not affect the encoding of text data in the DOM objects; this encoding is
+ * always UTF-16. After a stylesheet is loaded, the value of the
+ * encoding attribute is the value found in the
+ * @charset rule. If there was no @charset in the
+ * original document, then no CSSCharsetRule is created. The
+ * value of the encoding attribute may also be used as a hint
+ * for the encoding used on serialization of the style sheet.
+ *
The value of the @charset rule (and therefore of the
+ * CSSCharsetRule) may not correspond to the encoding the
+ * document actually came in; character encoding information e.g. in an HTTP
+ * header, has priority (see CSS document representation) but this is not
+ * reflected in the CSSCharsetRule.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSCharsetRule extends CSSRule {
+ /**
+ * The encoding information used in this @charset rule.
+ */
+ public String getEncoding();
+ /**
+ * The encoding information used in this @charset rule.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified encoding value has a syntax error
+ * and is unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
+ * readonly.
+ */
+ public void setEncoding(String encoding)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java
new file mode 100644
index 00000000000..a1795706118
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The CSSFontFaceRule interface represents a @font-face rule in
+ * a CSS style sheet. The @font-face rule is used to hold a set
+ * of font descriptions.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSFontFaceRule extends CSSRule {
+ /**
+ * The declaration-block of this rule.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java
new file mode 100644
index 00000000000..e18ad569bcb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ * The CSSImportRule interface represents a @import rule within
+ * a CSS style sheet. The @import rule is used to import style
+ * rules from other style sheets.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSImportRule extends CSSRule {
+ /**
+ * The location of the style sheet to be imported. The attribute will not
+ * contain the "url(...)" specifier around the URI.
+ */
+ public String getHref();
+
+ /**
+ * A list of media types for which this style sheet may be used.
+ */
+ public MediaList getMedia();
+
+ /**
+ * The style sheet referred to by this rule, if it has been loaded. The
+ * value of this attribute is null if the style sheet has
+ * not yet been loaded or if it will not be loaded (e.g. if the style
+ * sheet is for a media type not supported by the user agent).
+ */
+ public CSSStyleSheet getStyleSheet();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java
new file mode 100644
index 00000000000..68a73045ede
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ * The CSSMediaRule interface represents a @media rule in a CSS
+ * style sheet. A @media rule can be used to delimit style
+ * rules for specific media types.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSMediaRule extends CSSRule {
+ /**
+ * A list of media types for this rule.
+ */
+ public MediaList getMedia();
+
+ /**
+ * A list of all CSS rules contained within the media block.
+ */
+ public CSSRuleList getCssRules();
+
+ /**
+ * Used to insert a new rule into the media block.
+ * @param rule The parsable text representing the rule. For rule sets
+ * this contains both the selector and the style declaration. For
+ * at-rules, this specifies both the at-identifier and the rule
+ * content.
+ * @param index The index within the media block's rule collection of
+ * the rule before which to insert the specified rule. If the
+ * specified index is equal to the length of the media blocks's rule
+ * collection, the rule will be added to the end of the media block.
+ * @return The index within the media block's rule collection of the
+ * newly inserted rule.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+ * specified index, e.g., if an @import rule is inserted
+ * after a standard rule set or other at-rule.
+ *
INDEX_SIZE_ERR: Raised if the specified index is not a valid
+ * insertion point.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+ * readonly.
+ *
SYNTAX_ERR: Raised if the specified rule has a syntax error and
+ * is unparsable.
+ */
+ public int insertRule(String rule,
+ int index)
+ throws DOMException;
+
+ /**
+ * Used to delete a rule from the media block.
+ * @param index The index within the media block's rule collection of
+ * the rule to remove.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+ * a rule in the media rule list.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+ * readonly.
+ */
+ public void deleteRule(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java
new file mode 100644
index 00000000000..538626a97e9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSPageRule interface represents a @page rule within a
+ * CSS style sheet. The @page rule is used to specify the
+ * dimensions, orientation, margins, etc. of a page box for paged media.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSPageRule extends CSSRule {
+ /**
+ * The parsable textual representation of the page selector for the rule.
+ */
+ public String getSelectorText();
+ /**
+ * The parsable textual representation of the page selector for the rule.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+ */
+ public void setSelectorText(String selectorText)
+ throws DOMException;
+
+ /**
+ * The declaration-block of this rule.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java
new file mode 100644
index 00000000000..4131d26cda3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSPrimitiveValue interface represents a single CSS value
+ * . This interface may be used to determine the value of a specific style
+ * property currently set in a block or to set a specific style property
+ * explicitly within the block. An instance of this interface might be
+ * obtained from the getPropertyCSSValue method of the
+ * CSSStyleDeclaration interface. A
+ * CSSPrimitiveValue object only occurs in a context of a CSS
+ * property.
+ *
Conversions are allowed between absolute values (from millimeters to
+ * centimeters, from degrees to radians, and so on) but not between relative
+ * values. (For example, a pixel value cannot be converted to a centimeter
+ * value.) Percentage values can't be converted since they are relative to
+ * the parent value (or another property value). There is one exception for
+ * color percentage values: since a color percentage value is relative to
+ * the range 0-255, a color percentage value can be converted to a number;
+ * (see also the RGBColor interface).
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSPrimitiveValue extends CSSValue {
+ // UnitTypes
+ /**
+ * The value is not a recognized CSS2 value. The value can only be
+ * obtained by using the cssText attribute.
+ */
+ public static final short CSS_UNKNOWN = 0;
+ /**
+ * The value is a simple number. The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_NUMBER = 1;
+ /**
+ * The value is a percentage. The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_PERCENTAGE = 2;
+ /**
+ * The value is a length (ems). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_EMS = 3;
+ /**
+ * The value is a length (exs). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_EXS = 4;
+ /**
+ * The value is a length (px). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_PX = 5;
+ /**
+ * The value is a length (cm). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_CM = 6;
+ /**
+ * The value is a length (mm). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_MM = 7;
+ /**
+ * The value is a length (in). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_IN = 8;
+ /**
+ * The value is a length (pt). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_PT = 9;
+ /**
+ * The value is a length (pc). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_PC = 10;
+ /**
+ * The value is an angle (deg). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_DEG = 11;
+ /**
+ * The value is an angle (rad). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_RAD = 12;
+ /**
+ * The value is an angle (grad). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_GRAD = 13;
+ /**
+ * The value is a time (ms). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_MS = 14;
+ /**
+ * The value is a time (s). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_S = 15;
+ /**
+ * The value is a frequency (Hz). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_HZ = 16;
+ /**
+ * The value is a frequency (kHz). The value can be obtained by using the
+ * getFloatValue method.
+ */
+ public static final short CSS_KHZ = 17;
+ /**
+ * The value is a number with an unknown dimension. The value can be
+ * obtained by using the getFloatValue method.
+ */
+ public static final short CSS_DIMENSION = 18;
+ /**
+ * The value is a STRING. The value can be obtained by using the
+ * getStringValue method.
+ */
+ public static final short CSS_STRING = 19;
+ /**
+ * The value is a URI. The value can be obtained by using the
+ * getStringValue method.
+ */
+ public static final short CSS_URI = 20;
+ /**
+ * The value is an identifier. The value can be obtained by using the
+ * getStringValue method.
+ */
+ public static final short CSS_IDENT = 21;
+ /**
+ * The value is a attribute function. The value can be obtained by using
+ * the getStringValue method.
+ */
+ public static final short CSS_ATTR = 22;
+ /**
+ * The value is a counter or counters function. The value can be obtained
+ * by using the getCounterValue method.
+ */
+ public static final short CSS_COUNTER = 23;
+ /**
+ * The value is a rect function. The value can be obtained by using the
+ * getRectValue method.
+ */
+ public static final short CSS_RECT = 24;
+ /**
+ * The value is a RGB color. The value can be obtained by using the
+ * getRGBColorValue method.
+ */
+ public static final short CSS_RGBCOLOR = 25;
+
+ /**
+ * The type of the value as defined by the constants specified above.
+ */
+ public short getPrimitiveType();
+
+ /**
+ * A method to set the float value with a specified unit. If the property
+ * attached with this value can not accept the specified unit or the
+ * float value, the value will be unchanged and a
+ * DOMException will be raised.
+ * @param unitType A unit code as defined above. The unit code can only
+ * be a float unit type (i.e. CSS_NUMBER,
+ * CSS_PERCENTAGE, CSS_EMS,
+ * CSS_EXS, CSS_PX, CSS_CM,
+ * CSS_MM, CSS_IN, CSS_PT,
+ * CSS_PC, CSS_DEG, CSS_RAD,
+ * CSS_GRAD, CSS_MS, CSS_S,
+ * CSS_HZ, CSS_KHZ,
+ * CSS_DIMENSION).
+ * @param floatValue The new float value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the attached property doesn't support
+ * the float value or the unit type.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFloatValue(short unitType,
+ float floatValue)
+ throws DOMException;
+
+ /**
+ * This method is used to get a float value in a specified unit. If this
+ * CSS value doesn't contain a float value or can't be converted into
+ * the specified unit, a DOMException is raised.
+ * @param unitType A unit code to get the float value. The unit code can
+ * only be a float unit type (i.e. CSS_NUMBER,
+ * CSS_PERCENTAGE, CSS_EMS,
+ * CSS_EXS, CSS_PX, CSS_CM,
+ * CSS_MM, CSS_IN, CSS_PT,
+ * CSS_PC, CSS_DEG, CSS_RAD,
+ * CSS_GRAD, CSS_MS, CSS_S,
+ * CSS_HZ, CSS_KHZ,
+ * CSS_DIMENSION).
+ * @return The float value in the specified unit.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float
+ * value or if the float value can't be converted into the specified
+ * unit.
+ */
+ public float getFloatValue(short unitType)
+ throws DOMException;
+
+ /**
+ * A method to set the string value with the specified unit. If the
+ * property attached to this value can't accept the specified unit or
+ * the string value, the value will be unchanged and a
+ * DOMException will be raised.
+ * @param stringType A string code as defined above. The string code can
+ * only be a string unit type (i.e. CSS_STRING,
+ * CSS_URI, CSS_IDENT, and
+ * CSS_ATTR).
+ * @param stringValue The new string value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+ * value or if the string value can't be converted into the specified
+ * unit.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setStringValue(short stringType,
+ String stringValue)
+ throws DOMException;
+
+ /**
+ * This method is used to get the string value. If the CSS value doesn't
+ * contain a string value, a DOMException is raised. Some
+ * properties (like 'font-family' or 'voice-family') convert a
+ * whitespace separated list of idents to a string.
+ * @return The string value in the current unit. The current
+ * primitiveType can only be a string unit type (i.e.
+ * CSS_STRING, CSS_URI,
+ * CSS_IDENT and CSS_ATTR).
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+ * value.
+ */
+ public String getStringValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the Counter value. If this CSS value
+ * doesn't contain a counter value, a DOMException is
+ * raised. Modification to the corresponding style property can be
+ * achieved using the Counter interface.
+ * @return The Counter value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
+ * Counter value (e.g. this is not CSS_COUNTER).
+ */
+ public Counter getCounterValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the Rect value. If this CSS value doesn't
+ * contain a rect value, a DOMException is raised.
+ * Modification to the corresponding style property can be achieved
+ * using the Rect interface.
+ * @return The Rect value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect
+ * value. (e.g. this is not CSS_RECT).
+ */
+ public Rect getRectValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the RGB color. If this CSS value doesn't
+ * contain a RGB color value, a DOMException is raised.
+ * Modification to the corresponding style property can be achieved
+ * using the RGBColor interface.
+ * @return the RGB color value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the attached property can't return a
+ * RGB color value (e.g. this is not CSS_RGBCOLOR).
+ */
+ public RGBColor getRGBColorValue()
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java
new file mode 100644
index 00000000000..788f946eca5
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSRule interface is the abstract base interface for any
+ * type of CSS statement. This includes both rule sets and at-rules. An
+ * implementation is expected to preserve all rules specified in a CSS style
+ * sheet, even if the rule is not recognized by the parser. Unrecognized
+ * rules are represented using the CSSUnknownRule interface.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSRule {
+ // RuleType
+ /**
+ * The rule is a CSSUnknownRule.
+ */
+ public static final short UNKNOWN_RULE = 0;
+ /**
+ * The rule is a CSSStyleRule.
+ */
+ public static final short STYLE_RULE = 1;
+ /**
+ * The rule is a CSSCharsetRule.
+ */
+ public static final short CHARSET_RULE = 2;
+ /**
+ * The rule is a CSSImportRule.
+ */
+ public static final short IMPORT_RULE = 3;
+ /**
+ * The rule is a CSSMediaRule.
+ */
+ public static final short MEDIA_RULE = 4;
+ /**
+ * The rule is a CSSFontFaceRule.
+ */
+ public static final short FONT_FACE_RULE = 5;
+ /**
+ * The rule is a CSSPageRule.
+ */
+ public static final short PAGE_RULE = 6;
+
+ /**
+ * The type of the rule, as defined above. The expectation is that
+ * binding-specific casting methods can be used to cast down from an
+ * instance of the CSSRule interface to the specific
+ * derived interface implied by the type.
+ */
+ public short getType();
+
+ /**
+ * The parsable textual representation of the rule. This reflects the
+ * current state of the rule and not its initial value.
+ */
+ public String getCssText();
+ /**
+ * The parsable textual representation of the rule. This reflects the
+ * current state of the rule and not its initial value.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ *
INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+ * value represents a different type of rule than the current one.
+ *
HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
+ * this point in the style sheet.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * The style sheet that contains this rule.
+ */
+ public CSSStyleSheet getParentStyleSheet();
+
+ /**
+ * If this rule is contained inside another rule (e.g. a style rule
+ * inside an @media block), this is the containing rule. If this rule is
+ * not nested inside any other rules, this returns null.
+ */
+ public CSSRule getParentRule();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java
new file mode 100644
index 00000000000..41c2c68377c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The CSSRuleList interface provides the abstraction of an
+ * ordered collection of CSS rules.
+ *
The items in the CSSRuleList are accessible via an
+ * integral index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSRuleList {
+ /**
+ * The number of CSSRules in the list. The range of valid
+ * child rule indices is 0 to length-1
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a CSS rule by ordinal index. The order in this
+ * collection represents the order of the rules in the CSS style sheet.
+ * If index is greater than or equal to the number of rules in the list,
+ * this returns null.
+ * @param index Index into the collection
+ * @return The style rule at the index position in the
+ * CSSRuleList, or null if that is not a
+ * valid index.
+ */
+ public CSSRule item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java
new file mode 100644
index 00000000000..e5e346b0a71
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSStyleDeclaration interface represents a single CSS
+ * declaration block. This interface may be used to determine the style
+ * properties currently set in a block or to set style properties explicitly
+ * within the block.
+ *
While an implementation may not recognize all CSS properties within a
+ * CSS declaration block, it is expected to provide access to all specified
+ * properties in the style sheet through the CSSStyleDeclaration
+ * interface. Furthermore, implementations that support a specific level of
+ * CSS should correctly handle CSS shorthand properties for that level. For
+ * a further discussion of shorthand properties, see the
+ * CSS2Properties interface.
+ *
This interface is also used to provide a read-only access to the
+ * computed values of an element. See also the ViewCSS
+ * interface. The CSS Object Model doesn't provide an access to the
+ * specified or actual values of the CSS cascade.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSStyleDeclaration {
+ /**
+ * The parsable textual representation of the declaration block
+ * (excluding the surrounding curly braces). Setting this attribute will
+ * result in the parsing of the new value and resetting of all the
+ * properties in the declaration block including the removal or addition
+ * of properties.
+ */
+ public String getCssText();
+ /**
+ * The parsable textual representation of the declaration block
+ * (excluding the surrounding curly braces). Setting this attribute will
+ * result in the parsing of the new value and resetting of all the
+ * properties in the declaration block including the removal or addition
+ * of properties.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+ * readonly or a property is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * Used to retrieve the value of a CSS property if it has been explicitly
+ * set within this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns the empty string if the
+ * property has not been set.
+ */
+ public String getPropertyValue(String propertyName);
+
+ /**
+ * Used to retrieve the object representation of the value of a CSS
+ * property if it has been explicitly set within this declaration block.
+ * This method returns null if the property is a shorthand
+ * property. Shorthand property values can only be accessed and modified
+ * as strings, using the getPropertyValue and
+ * setProperty methods.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns null if the
+ * property has not been set.
+ */
+ public CSSValue getPropertyCSSValue(String propertyName);
+
+ /**
+ * Used to remove a CSS property if it has been explicitly set within
+ * this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns the empty string if the
+ * property has not been set or the property name does not correspond
+ * to a known CSS property.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly
+ * or the property is readonly.
+ */
+ public String removeProperty(String propertyName)
+ throws DOMException;
+
+ /**
+ * Used to retrieve the priority of a CSS property (e.g. the
+ * "important" qualifier) if the priority has been
+ * explicitly set in this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return A string representing the priority (e.g.
+ * "important") if the property has been explicitly set
+ * in this declaration block and has a priority specified. The empty
+ * string otherwise.
+ */
+ public String getPropertyPriority(String propertyName);
+
+ /**
+ * Used to set a property value and priority within this declaration
+ * block. setProperty permits to modify a property or add a
+ * new one in the declaration block. Any call to this method may modify
+ * the order of properties in the item method.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @param value The new value of the property.
+ * @param priority The new priority of the property (e.g.
+ * "important") or the empty string if none.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified value has a syntax error and is
+ * unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+ * readonly or the property is readonly.
+ */
+ public void setProperty(String propertyName,
+ String value,
+ String priority)
+ throws DOMException;
+
+ /**
+ * The number of properties that have been explicitly set in this
+ * declaration block. The range of valid indices is 0 to length-1
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve the properties that have been explicitly set in this
+ * declaration block. The order of the properties retrieved using this
+ * method does not have to be the order in which they were set. This
+ * method can be used to iterate over all properties in this declaration
+ * block.
+ * @param index Index of the property name to retrieve.
+ * @return The name of the property at this ordinal position. The empty
+ * string if no property exists at this position.
+ */
+ public String item(int index);
+
+ /**
+ * The CSS rule that contains this declaration block or null
+ * if this CSSStyleDeclaration is not attached to a
+ * CSSRule.
+ */
+ public CSSRule getParentRule();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java
new file mode 100644
index 00000000000..626f3224b4c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSStyleRule interface represents a single rule set in a
+ * CSS style sheet.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSStyleRule extends CSSRule {
+ /**
+ * The textual representation of the selector for the rule set. The
+ * implementation may have stripped out insignificant whitespace while
+ * parsing the selector.
+ */
+ public String getSelectorText();
+ /**
+ * The textual representation of the selector for the rule set. The
+ * implementation may have stripped out insignificant whitespace while
+ * parsing the selector.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+ */
+ public void setSelectorText(String selectorText)
+ throws DOMException;
+
+ /**
+ * The declaration-block of this rule set.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java
new file mode 100644
index 00000000000..b529e5db089
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.StyleSheet;
+
+/**
+ * The CSSStyleSheet interface is a concrete interface used to
+ * represent a CSS style sheet i.e., a style sheet whose content type is
+ * "text/css".
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSStyleSheet extends StyleSheet {
+ /**
+ * If this style sheet comes from an @import rule, the
+ * ownerRule attribute will contain the
+ * CSSImportRule. In that case, the ownerNode
+ * attribute in the StyleSheet interface will be
+ * null. If the style sheet comes from an element or a
+ * processing instruction, the ownerRule attribute will be
+ * null and the ownerNode attribute will
+ * contain the Node.
+ */
+ public CSSRule getOwnerRule();
+
+ /**
+ * The list of all CSS rules contained within the style sheet. This
+ * includes both rule sets and at-rules.
+ */
+ public CSSRuleList getCssRules();
+
+ /**
+ * Used to insert a new rule into the style sheet. The new rule now
+ * becomes part of the cascade.
+ * @param rule The parsable text representing the rule. For rule sets
+ * this contains both the selector and the style declaration. For
+ * at-rules, this specifies both the at-identifier and the rule
+ * content.
+ * @param index The index within the style sheet's rule list of the rule
+ * before which to insert the specified rule. If the specified index
+ * is equal to the length of the style sheet's rule collection, the
+ * rule will be added to the end of the style sheet.
+ * @return The index within the style sheet's rule collection of the
+ * newly inserted rule.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+ * specified index e.g. if an @import rule is inserted
+ * after a standard rule set or other at-rule.
+ *
INDEX_SIZE_ERR: Raised if the specified index is not a valid
+ * insertion point.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+ * readonly.
+ *
SYNTAX_ERR: Raised if the specified rule has a syntax error and
+ * is unparsable.
+ */
+ public int insertRule(String rule,
+ int index)
+ throws DOMException;
+
+ /**
+ * Used to delete a rule from the style sheet.
+ * @param index The index within the style sheet's rule list of the rule
+ * to remove.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+ * a rule in the style sheet's rule list.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+ * readonly.
+ */
+ public void deleteRule(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java
new file mode 100644
index 00000000000..763d5f1b61f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The CSSUnknownRule interface represents an at-rule not
+ * supported by this user agent.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSUnknownRule extends CSSRule {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java
new file mode 100644
index 00000000000..0285bcc7721
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The CSSValue interface represents a simple or a complex
+ * value. A CSSValue object only occurs in a context of a CSS
+ * property.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSValue {
+ // UnitTypes
+ /**
+ * The value is inherited and the cssText contains "inherit".
+ */
+ public static final short CSS_INHERIT = 0;
+ /**
+ * The value is a primitive value and an instance of the
+ * CSSPrimitiveValue interface can be obtained by using
+ * binding-specific casting methods on this instance of the
+ * CSSValue interface.
+ */
+ public static final short CSS_PRIMITIVE_VALUE = 1;
+ /**
+ * The value is a CSSValue list and an instance of the
+ * CSSValueList interface can be obtained by using
+ * binding-specific casting methods on this instance of the
+ * CSSValue interface.
+ */
+ public static final short CSS_VALUE_LIST = 2;
+ /**
+ * The value is a custom value.
+ */
+ public static final short CSS_CUSTOM = 3;
+
+ /**
+ * A string representation of the current value.
+ */
+ public String getCssText();
+ /**
+ * A string representation of the current value.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error (according to the attached property) or is unparsable.
+ *
INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+ * value represents a different type of values than the values allowed
+ * by the CSS property.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * A code defining the type of the value as defined above.
+ */
+ public short getCssValueType();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java
new file mode 100644
index 00000000000..bf15bb3ebfd
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The CSSValueList interface provides the abstraction of an
+ * ordered collection of CSS values.
+ *
Some properties allow an empty list into their syntax. In that case,
+ * these properties take the none identifier. So, an empty list
+ * means that the property has the value none.
+ *
The items in the CSSValueList are accessible via an
+ * integral index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface CSSValueList extends CSSValue {
+ /**
+ * The number of CSSValues in the list. The range of valid
+ * values of the indices is 0 to length-1
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a CSSValue by ordinal index. The order in
+ * this collection represents the order of the values in the CSS style
+ * property. If index is greater than or equal to the number of values
+ * in the list, this returns null.
+ * @param index Index into the collection.
+ * @return The CSSValue at the index position
+ * in the CSSValueList, or null if that is
+ * not a valid index.
+ */
+ public CSSValue item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java
new file mode 100644
index 00000000000..8cd4967b32d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The Counter interface is used to represent any counter or
+ * counters function value. This interface reflects the values in the
+ * underlying style property.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface Counter {
+ /**
+ * This attribute is used for the identifier of the counter.
+ */
+ public String getIdentifier();
+
+ /**
+ * This attribute is used for the style of the list.
+ */
+ public String getListStyle();
+
+ /**
+ * This attribute is used for the separator of the nested counters.
+ */
+ public String getSeparator();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java
new file mode 100644
index 00000000000..65c97291ef4
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.DOMException;
+
+/**
+ * This interface allows the DOM user to create a CSSStyleSheet
+ * outside the context of a document. There is no way to associate the new
+ * CSSStyleSheet with a document in DOM Level 2.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface DOMImplementationCSS extends DOMImplementation {
+ /**
+ * Creates a new CSSStyleSheet.
+ * @param title The advisory title. See also the section.
+ * @param media The comma-separated list of media associated with the
+ * new style sheet. See also the section.
+ * @return A new CSS style sheet.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified media string value has a syntax
+ * error and is unparsable.
+ */
+ public CSSStyleSheet createCSSStyleSheet(String title,
+ String media)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java
new file mode 100644
index 00000000000..8fe93c79a7e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.stylesheets.DocumentStyle;
+
+/**
+ * This interface represents a document with a CSS view.
+ *
The getOverrideStyle method provides a mechanism through
+ * which a DOM author could effect immediate change to the style of an
+ * element without modifying the explicitly linked style sheets of a
+ * document or the inline style of elements in the style sheets. This style
+ * sheet comes after the author style sheet in the cascade algorithm and is
+ * called override style sheet. The override style sheet takes precedence
+ * over author style sheets. An "!important" declaration still takes
+ * precedence over a normal declaration. Override, author, and user style
+ * sheets all may contain "!important" declarations. User "!important" rules
+ * take precedence over both override and author "!important" rules, and
+ * override "!important" rules take precedence over author "!important"
+ * rules.
+ *
The expectation is that an instance of the DocumentCSS
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the Document interface.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentCSS extends DocumentStyle {
+ /**
+ * This method is used to retrieve the override style declaration for a
+ * specified element and a specified pseudo-element.
+ * @param elt The element whose style is to be modified. This parameter
+ * cannot be null.
+ * @param pseudoElt The pseudo-element or null if none.
+ * @return The override style declaration.
+ */
+ public CSSStyleDeclaration getOverrideStyle(Element elt,
+ String pseudoElt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java
new file mode 100644
index 00000000000..98b60bf9ddf
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * Inline style information attached to elements is exposed through the
+ * style attribute. This represents the contents of the STYLE
+ * attribute for HTML elements (or elements in other schemas or DTDs which
+ * use the STYLE attribute in the same way). The expectation is that an
+ * instance of the ElementCSSInlineStyle interface can be obtained by using
+ * binding-specific casting methods on an instance of the Element interface
+ * when the element supports inline CSS style informations.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface ElementCSSInlineStyle {
+ /**
+ * The style attribute.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java
new file mode 100644
index 00000000000..cd5daa56703
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The RGBColor interface is used to represent any RGB color
+ * value. This interface reflects the values in the underlying style
+ * property. Hence, modifications made to the CSSPrimitiveValue
+ * objects modify the style property.
+ *
A specified RGB color is not clipped (even if the number is outside the + * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the + * device. + *
Even if a style sheet can only contain an integer for a color value, + * the internal storage of this integer is a float, and this can be used as + * a float in the specified or the computed style. + *
A color percentage value can always be converted to a number and vice + * versa. + *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface RGBColor {
+ /**
+ * This attribute is used for the red value of the RGB color.
+ */
+ public CSSPrimitiveValue getRed();
+
+ /**
+ * This attribute is used for the green value of the RGB color.
+ */
+ public CSSPrimitiveValue getGreen();
+
+ /**
+ * This attribute is used for the blue value of the RGB color.
+ */
+ public CSSPrimitiveValue getBlue();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java
new file mode 100644
index 00000000000..f5efb1084d9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The Rect interface is used to represent any rect value. This
+ * interface reflects the values in the underlying style property. Hence,
+ * modifications made to the CSSPrimitiveValue objects modify
+ * the style property.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface Rect {
+ /**
+ * This attribute is used for the top of the rect.
+ */
+ public CSSPrimitiveValue getTop();
+
+ /**
+ * This attribute is used for the right of the rect.
+ */
+ public CSSPrimitiveValue getRight();
+
+ /**
+ * This attribute is used for the bottom of the rect.
+ */
+ public CSSPrimitiveValue getBottom();
+
+ /**
+ * This attribute is used for the left of the rect.
+ */
+ public CSSPrimitiveValue getLeft();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java
new file mode 100644
index 00000000000..76b585a54d2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * This interface represents a CSS view. The getComputedStyle
+ * method provides a read only access to the computed values of an element.
+ *
The expectation is that an instance of the ViewCSS
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the AbstractView interface.
+ *
Since a computed style is related to an Element node, if
+ * this element is removed from the document, the associated
+ * CSSStyleDeclaration and CSSValue related to
+ * this declaration are no longer valid.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface ViewCSS extends AbstractView {
+ /**
+ * This method is used to get the computed style as it is defined in [CSS2].
+ * @param elt The element whose style is to be computed. This parameter
+ * cannot be null.
+ * @param pseudoElt The pseudo-element or null if none.
+ * @return The computed style. The CSSStyleDeclaration is
+ * read-only and contains only absolute values.
+ */
+ public CSSStyleDeclaration getComputedStyle(Element elt,
+ String pseudoElt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java
new file mode 100644
index 00000000000..76644bc5a3d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The DocumentEvent interface provides a mechanism by which the
+ * user can create an Event of a type supported by the implementation. It is
+ * expected that the DocumentEvent interface will be
+ * implemented on the same object which implements the Document
+ * interface in an implementation which supports the Event model.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentEvent {
+ /**
+ *
+ * @param eventType The eventType parameter specifies the
+ * type of Event interface to be created. If the
+ * Event interface specified is supported by the
+ * implementation this method will return a new Event of
+ * the interface type requested. If the Event is to be
+ * dispatched via the dispatchEvent method the
+ * appropriate event init method must be called after creation in
+ * order to initialize the Event's values. As an example,
+ * a user wishing to synthesize some kind of UIEvent
+ * would call createEvent with the parameter "UIEvents".
+ * The initUIEvent method could then be called on the
+ * newly created UIEvent to set the specific type of
+ * UIEvent to be dispatched and set its context information.The
+ * createEvent method is used in creating
+ * Events when it is either inconvenient or unnecessary
+ * for the user to create an Event themselves. In cases
+ * where the implementation provided Event is
+ * insufficient, users may supply their own Event
+ * implementations for use with the dispatchEvent method.
+ * @return The newly created Event
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the implementation does not support the
+ * type of Event interface requested
+ */
+ public Event createEvent(String eventType)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java
new file mode 100644
index 00000000000..14a9239ed76
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The Event interface is used to provide contextual information
+ * about an event to the handler processing the event. An object which
+ * implements the Event interface is generally passed as the
+ * first parameter to an event handler. More specific context information is
+ * passed to event handlers by deriving additional interfaces from
+ * Event which contain information directly relating to the
+ * type of event they accompany. These derived interfaces are also
+ * implemented by the object passed to the event listener.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface Event {
+ // PhaseType
+ /**
+ * The current event phase is the capturing phase.
+ */
+ public static final short CAPTURING_PHASE = 1;
+ /**
+ * The event is currently being evaluated at the target
+ * EventTarget.
+ */
+ public static final short AT_TARGET = 2;
+ /**
+ * The current event phase is the bubbling phase.
+ */
+ public static final short BUBBLING_PHASE = 3;
+
+ /**
+ * The name of the event (case-insensitive). The name must be an XML name.
+ */
+ public String getType();
+
+ /**
+ * Used to indicate the EventTarget to which the event was
+ * originally dispatched.
+ */
+ public EventTarget getTarget();
+
+ /**
+ * Used to indicate the EventTarget whose
+ * EventListeners are currently being processed. This is
+ * particularly useful during capturing and bubbling.
+ */
+ public EventTarget getCurrentTarget();
+
+ /**
+ * Used to indicate which phase of event flow is currently being
+ * evaluated.
+ */
+ public short getEventPhase();
+
+ /**
+ * Used to indicate whether or not an event is a bubbling event. If the
+ * event can bubble the value is true, else the value is false.
+ */
+ public boolean getBubbles();
+
+ /**
+ * Used to indicate whether or not an event can have its default action
+ * prevented. If the default action can be prevented the value is true,
+ * else the value is false.
+ */
+ public boolean getCancelable();
+
+ /**
+ * Used to specify the time (in milliseconds relative to the epoch) at
+ * which the event was created. Due to the fact that some systems may
+ * not provide this information the value of timeStamp may
+ * be not available for all events. When not available, a value of 0
+ * will be returned. Examples of epoch time are the time of the system
+ * start or 0:0:0 UTC 1st January 1970.
+ */
+ public long getTimeStamp();
+
+ /**
+ * The stopPropagation method is used prevent further
+ * propagation of an event during event flow. If this method is called
+ * by any EventListener the event will cease propagating
+ * through the tree. The event will complete dispatch to all listeners
+ * on the current EventTarget before event flow stops. This
+ * method may be used during any stage of event flow.
+ */
+ public void stopPropagation();
+
+ /**
+ * If an event is cancelable, the preventDefault method is
+ * used to signify that the event is to be canceled, meaning any default
+ * action normally taken by the implementation as a result of the event
+ * will not occur. If, during any stage of event flow, the
+ * preventDefault method is called the event is canceled.
+ * Any default action associated with the event will not occur. Calling
+ * this method for a non-cancelable event has no effect. Once
+ * preventDefault has been called it will remain in effect
+ * throughout the remainder of the event's propagation. This method may
+ * be used during any stage of event flow.
+ */
+ public void preventDefault();
+
+ /**
+ * The initEvent method is used to initialize the value of an
+ * Event created through the DocumentEvent
+ * interface. This method may only be called before the
+ * Event has been dispatched via the
+ * dispatchEvent method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times the
+ * final invocation takes precedence. If called from a subclass of
+ * Event interface only the values specified in the
+ * initEvent method are modified, all other attributes are
+ * left unchanged.
+ * @param eventTypeArg Specifies the event type. This type may be any
+ * event type currently defined in this specification or a new event
+ * type.. The string must be an XML name. Any new event type must not
+ * begin with any upper, lower, or mixed case version of the string
+ * "DOM". This prefix is reserved for future DOM event sets. It is
+ * also strongly recommended that third parties adding their own
+ * events use their own prefix to avoid confusion and lessen the
+ * probability of conflicts with other new events.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ */
+ public void initEvent(String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java
new file mode 100644
index 00000000000..7a6ff262052
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * Event operations may throw an EventException as specified in
+ * their method descriptions.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public class EventException extends RuntimeException {
+ public EventException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // EventExceptionCode
+ /**
+ * If the Event's type was not specified by initializing the
+ * event before the method was called. Specification of the Event's type
+ * as null or an empty string will also trigger this
+ * exception.
+ */
+ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java
new file mode 100644
index 00000000000..1df80202cea
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The EventListener interface is the primary method for
+ * handling events. Users implement the EventListener interface
+ * and register their listener on an EventTarget using the
+ * AddEventListener method. The users should also remove their
+ * EventListener from its EventTarget after they
+ * have completed using the listener.
+ *
When a Node is copied using the cloneNode
+ * method the EventListeners attached to the source
+ * Node are not attached to the copied Node. If
+ * the user wishes the same EventListeners to be added to the
+ * newly created copy the user must add them manually.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface EventListener {
+ /**
+ * This method is called whenever an event occurs of the type for which
+ * the EventListener interface was registered.
+ * @param evt The Event contains contextual information
+ * about the event. It also contains the stopPropagation
+ * and preventDefault methods which are used in
+ * determining the event's flow and default action.
+ */
+ public void handleEvent(Event evt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java
new file mode 100644
index 00000000000..f07663660fd
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The EventTarget interface is implemented by all
+ * Nodes in an implementation which supports the DOM Event
+ * Model. Therefore, this interface can be obtained by using
+ * binding-specific casting methods on an instance of the Node
+ * interface. The interface allows registration and removal of
+ * EventListeners on an EventTarget and dispatch
+ * of events to that EventTarget.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface EventTarget {
+ /**
+ * This method allows the registration of event listeners on the event
+ * target. If an EventListener is added to an
+ * EventTarget while it is processing an event, it will not
+ * be triggered by the current actions but may be triggered during a
+ * later stage of event flow, such as the bubbling phase.
+ *
If multiple identical EventListeners are registered
+ * on the same EventTarget with the same parameters the
+ * duplicate instances are discarded. They do not cause the
+ * EventListener to be called twice and since they are
+ * discarded they do not need to be removed with the
+ * removeEventListener method.
+ * @param type The event type for which the user is registering
+ * @param listener The listener parameter takes an interface
+ * implemented by the user which contains the methods to be called
+ * when the event occurs.
+ * @param useCapture If true, useCapture indicates that the
+ * user wishes to initiate capture. After initiating capture, all
+ * events of the specified type will be dispatched to the registered
+ * EventListener before being dispatched to any
+ * EventTargets beneath them in the tree. Events which
+ * are bubbling upward through the tree will not trigger an
+ * EventListener designated to use capture.
+ */
+ public void addEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the removal of event listeners from the event
+ * target. If an EventListener is removed from an
+ * EventTarget while it is processing an event, it will not
+ * be triggered by the current actions. EventListeners can
+ * never be invoked after being removed.
+ *
Calling removeEventListener with arguments which do
+ * not identify any currently registered EventListener on
+ * the EventTarget has no effect.
+ * @param type Specifies the event type of the EventListener
+ * being removed.
+ * @param listener The EventListener parameter indicates the
+ * EventListener to be removed.
+ * @param useCapture Specifies whether the EventListener
+ * being removed was registered as a capturing listener or not. If a
+ * listener was registered twice, one with capture and one without,
+ * each must be removed separately. Removal of a capturing listener
+ * does not affect a non-capturing version of the same listener, and
+ * vice versa.
+ */
+ public void removeEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the dispatch of events into the implementations
+ * event model. Events dispatched in this manner will have the same
+ * capturing and bubbling behavior as events dispatched directly by the
+ * implementation. The target of the event is the
+ * EventTarget on which dispatchEvent is
+ * called.
+ * @param evt Specifies the event type, behavior, and contextual
+ * information to be used in processing the event.
+ * @return The return value of dispatchEvent indicates
+ * whether any of the listeners which handled the event called
+ * preventDefault. If preventDefault was
+ * called the value is false, else the value is true.
+ * @exception EventException
+ * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type
+ * was not specified by initializing the event before
+ * dispatchEvent was called. Specification of the
+ * Event's type as null or an empty string
+ * will also trigger this exception.
+ */
+ public boolean dispatchEvent(Event evt)
+ throws EventException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java
new file mode 100644
index 00000000000..be780357a88
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The MouseEvent interface provides specific contextual
+ * information associated with Mouse events.
+ *
The detail attribute inherited from UIEvent
+ * indicates the number of times a mouse button has been pressed and
+ * released over the same screen location during a user action. The
+ * attribute value is 1 when the user begins this action and increments by 1
+ * for each full sequence of pressing and releasing. If the user moves the
+ * mouse between the mousedown and mouseup the value will be set to 0,
+ * indicating that no click is occurring.
+ *
In the case of nested elements mouse events are always targeted at the + * most deeply nested element. Ancestors of the targeted element may use + * bubbling to obtain notification of mouse events which occur within its + * descendent elements. + *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface MouseEvent extends UIEvent {
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenY();
+
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * DOM implementation's client area.
+ */
+ public int getClientX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the DOM
+ * implementation's client area.
+ */
+ public int getClientY();
+
+ /**
+ * Used to indicate whether the 'ctrl' key was depressed during the firing
+ * of the event.
+ */
+ public boolean getCtrlKey();
+
+ /**
+ * Used to indicate whether the 'shift' key was depressed during the
+ * firing of the event.
+ */
+ public boolean getShiftKey();
+
+ /**
+ * Used to indicate whether the 'alt' key was depressed during the firing
+ * of the event. On some platforms this key may map to an alternative
+ * key name.
+ */
+ public boolean getAltKey();
+
+ /**
+ * Used to indicate whether the 'meta' key was depressed during the firing
+ * of the event. On some platforms this key may map to an alternative
+ * key name.
+ */
+ public boolean getMetaKey();
+
+ /**
+ * During mouse events caused by the depression or release of a mouse
+ * button, button is used to indicate which mouse button
+ * changed state. The values for button range from zero to
+ * indicate the left button of the mouse, one to indicate the middle
+ * button if present, and two to indicate the right button. For mice
+ * configured for left handed use in which the button actions are
+ * reversed the values are instead read from right to left.
+ */
+ public short getButton();
+
+ /**
+ * Used to identify a secondary EventTarget related to a UI
+ * event. Currently this attribute is used with the mouseover event to
+ * indicate the EventTarget which the pointing device
+ * exited and with the mouseout event to indicate the
+ * EventTarget which the pointing device entered.
+ */
+ public EventTarget getRelatedTarget();
+
+ /**
+ * The initMouseEvent method is used to initialize the value
+ * of a MouseEvent created through the
+ * DocumentEvent interface. This method may only be called
+ * before the MouseEvent has been dispatched via the
+ * dispatchEvent method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param viewArg Specifies the Event's
+ * AbstractView.
+ * @param detailArg Specifies the Event's mouse click count.
+ * @param screenXArg Specifies the Event's screen x
+ * coordinate
+ * @param screenYArg Specifies the Event's screen y
+ * coordinate
+ * @param clientXArg Specifies the Event's client x
+ * coordinate
+ * @param clientYArg Specifies the Event's client y
+ * coordinate
+ * @param ctrlKeyArg Specifies whether or not control key was depressed
+ * during the Event.
+ * @param altKeyArg Specifies whether or not alt key was depressed during
+ * the Event.
+ * @param shiftKeyArg Specifies whether or not shift key was depressed
+ * during the Event.
+ * @param metaKeyArg Specifies whether or not meta key was depressed
+ * during the Event.
+ * @param buttonArg Specifies the Event's mouse button.
+ * @param relatedTargetArg Specifies the Event's related
+ * EventTarget.
+ */
+ public void initMouseEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ boolean ctrlKeyArg,
+ boolean altKeyArg,
+ boolean shiftKeyArg,
+ boolean metaKeyArg,
+ short buttonArg,
+ EventTarget relatedTargetArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java
new file mode 100644
index 00000000000..3db40038e93
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.Node;
+
+/**
+ * The MutationEvent interface provides specific contextual
+ * information associated with Mutation events.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface MutationEvent extends Event {
+ // attrChangeType
+ /**
+ * The Attr was modified in place.
+ */
+ public static final short MODIFICATION = 1;
+ /**
+ * The Attr was just added.
+ */
+ public static final short ADDITION = 2;
+ /**
+ * The Attr was just removed.
+ */
+ public static final short REMOVAL = 3;
+
+ /**
+ * relatedNode is used to identify a secondary node related
+ * to a mutation event. For example, if a mutation event is dispatched
+ * to a node indicating that its parent has changed, the
+ * relatedNode is the changed parent. If an event is
+ * instead dispatched to a subtree indicating a node was changed within
+ * it, the relatedNode is the changed node. In the case of
+ * the DOMAttrModified event it indicates the Attr node
+ * which was modified, added, or removed.
+ */
+ public Node getRelatedNode();
+
+ /**
+ * prevValue indicates the previous value of the
+ * Attr node in DOMAttrModified events, and of the
+ * CharacterData node in DOMCharacterDataModified events.
+ */
+ public String getPrevValue();
+
+ /**
+ * newValue indicates the new value of the Attr
+ * node in DOMAttrModified events, and of the CharacterData
+ * node in DOMCharacterDataModified events.
+ */
+ public String getNewValue();
+
+ /**
+ * attrName indicates the name of the changed
+ * Attr node in a DOMAttrModified event.
+ */
+ public String getAttrName();
+
+ /**
+ * attrChange indicates the type of change which triggered
+ * the DOMAttrModified event. The values can be MODIFICATION
+ * , ADDITION, or REMOVAL.
+ */
+ public short getAttrChange();
+
+ /**
+ * The initMutationEvent method is used to initialize the
+ * value of a MutationEvent created through the
+ * DocumentEvent interface. This method may only be called
+ * before the MutationEvent has been dispatched via the
+ * dispatchEvent method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param relatedNodeArg Specifies the Event's related Node.
+ * @param prevValueArg Specifies the Event's
+ * prevValue attribute. This value may be null.
+ * @param newValueArg Specifies the Event's
+ * newValue attribute. This value may be null.
+ * @param attrNameArg Specifies the Event's
+ * attrName attribute. This value may be null.
+ * @param attrChangeArg Specifies the Event's
+ * attrChange attribute
+ */
+ public void initMutationEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java
new file mode 100644
index 00000000000..15affe8791e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The UIEvent interface provides specific contextual information
+ * associated with User Interface events.
+ *
See also the Document Object Model (DOM) Level 2 Events Specification.
+ * @since DOM Level 2
+ */
+public interface UIEvent extends Event {
+ /**
+ * The view attribute identifies the AbstractView
+ * from which the event was generated.
+ */
+ public AbstractView getView();
+
+ /**
+ * Specifies some detail information about the Event,
+ * depending on the type of event.
+ */
+ public int getDetail();
+
+ /**
+ * The initUIEvent method is used to initialize the value of
+ * a UIEvent created through the DocumentEvent
+ * interface. This method may only be called before the
+ * UIEvent has been dispatched via the
+ * dispatchEvent method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param viewArg Specifies the Event's
+ * AbstractView.
+ * @param detailArg Specifies the Event's detail.
+ */
+ public void initUIEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java
new file mode 100644
index 00000000000..eaac35c8a76
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The anchor element. See the A element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLAnchorElement extends HTMLElement {
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public String getCharset();
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public void setCharset(String charset);
+
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also shape for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public String getCoords();
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also shape for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public void setCoords(String coords);
+
+ /**
+ * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute
+ * definition in HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The absolute URI [IETF RFC 2396] of the linked resource. See the href attribute
+ * definition in HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public String getHreflang();
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public void setHreflang(String hreflang);
+
+ /**
+ * Anchor name. See the name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Anchor name. See the name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public String getRel();
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public void setRel(String rel);
+
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public String getRev();
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public void setRev(String rev);
+
+ /**
+ * The shape of the active area. The coordinates are given by
+ * coords. See the shape attribute definition in HTML 4.01.
+ */
+ public String getShape();
+ /**
+ * The shape of the active area. The coordinates are given by
+ * coords. See the shape attribute definition in HTML 4.01.
+ */
+ public void setShape(String shape);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java
new file mode 100644
index 00000000000..f27b51afb7a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * An embedded Java applet. See the APPLET element definition in HTML 4.01.
+ * This element is deprecated in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLAppletElement extends HTMLElement { + /** + * Aligns this object (vertically or horizontally) with respect to its + * surrounding text. See the align attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getAlign(); + /** + * Aligns this object (vertically or horizontally) with respect to its + * surrounding text. See the align attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setAlign(String align); + + /** + * Alternate text for user agents not rendering the normal content of this + * element. See the alt attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getAlt(); + /** + * Alternate text for user agents not rendering the normal content of this + * element. See the alt attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setAlt(String alt); + + /** + * Comma-separated archive list. See the archive attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getArchive(); + /** + * Comma-separated archive list. See the archive attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setArchive(String archive); + + /** + * Applet class file. See the code attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getCode(); + /** + * Applet class file. See the code attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setCode(String code); + + /** + * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getCodeBase(); + /** + * Optional base URI [IETF RFC 2396] for applet. See the codebase attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setCodeBase(String codeBase); + + /** + * Override height. See the height attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getHeight(); + /** + * Override height. See the height attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setHeight(String height); + + /** + * Horizontal space, in pixels, to the left and right of this image, + * applet, or object. See the hspace attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public int getHspace(); + /** + * Horizontal space, in pixels, to the left and right of this image, + * applet, or object. See the hspace attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public void setHspace(int hspace); + + /** + * The name of the applet. See the name attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getName(); + /** + * The name of the applet. See the name attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setName(String name); + + /** + * The value of the "object" attribute. See the object attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public String getObject(); + /** + * The value of the "object" attribute. See the object attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public void setObject(String object); + + /** + * Vertical space, in pixels, above and below this image, applet, or + * object. See the vspace attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public int getVspace(); + /** + * Vertical space, in pixels, above and below this image, applet, or + * object. See the vspace attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public void setVspace(int vspace); + + /** + * Override width. See the width attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getWidth(); + /** + * Override width. See the width attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setWidth(String width); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java new file mode 100644 index 00000000000..75d1dc5cfa9 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Client-side image map area definition. See the AREA element definition in + * HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLAreaElement extends HTMLElement {
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also shape for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public String getCoords();
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also shape for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public void setCoords(String coords);
+
+ /**
+ * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * Specifies that this area is inactive, i.e., has no associated action.
+ * See the nohref attribute definition in HTML 4.01.
+ */
+ public boolean getNoHref();
+ /**
+ * Specifies that this area is inactive, i.e., has no associated action.
+ * See the nohref attribute definition in HTML 4.01.
+ */
+ public void setNoHref(boolean noHref);
+
+ /**
+ * The shape of the active area. The coordinates are given by
+ * coords. See the shape attribute definition in HTML 4.01.
+ */
+ public String getShape();
+ /**
+ * The shape of the active area. The coordinates are given by
+ * coords. See the shape attribute definition in HTML 4.01.
+ */
+ public void setShape(String shape);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java
new file mode 100644
index 00000000000..a865d282d41
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Force a line break. See the BR element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLBRElement extends HTMLElement { + /** + * Control flow of text around floats. See the clear attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getClear(); + /** + * Control flow of text around floats. See the clear attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setClear(String clear); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java new file mode 100644 index 00000000000..7b52dbcc209 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Document base URI [IETF RFC 2396]. See the BASE element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLBaseElement extends HTMLElement { + /** + * The base URI [IETF RFC 2396]. See the href attribute definition in HTML 4.01. + */ + public String getHref(); + /** + * The base URI [IETF RFC 2396]. See the href attribute definition in HTML 4.01. + */ + public void setHref(String href); + + /** + * The default target frame. See the target attribute definition in HTML + * 4.01. + */ + public String getTarget(); + /** + * The default target frame. See the target attribute definition in HTML + * 4.01. + */ + public void setTarget(String target); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java new file mode 100644 index 00000000000..5a3c5c93cee --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Base font. See the BASEFONT element definition in HTML 4.01. This element + * is deprecated in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLBaseFontElement extends HTMLElement { + /** + * Font color. See the color attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getColor(); + /** + * Font color. See the color attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setColor(String color); + + /** + * Font face identifier. See the face attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getFace(); + /** + * Font face identifier. See the face attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setFace(String face); + + /** + * Computed font size. See the size attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public int getSize(); + /** + * Computed font size. See the size attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + * @version DOM Level 2 + */ + public void setSize(int size); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java new file mode 100644 index 00000000000..8898c5de030 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * The HTML document body. This element is always present in the DOM API, even + * if the tags are not present in the source document. See the BODY element + * definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLBodyElement extends HTMLElement { + /** + * Color of active links (after mouse-button down, but before mouse-button + * up). See the alink attribute definition in HTML 4.01. This attribute + * is deprecated in HTML 4.01. + */ + public String getALink(); + /** + * Color of active links (after mouse-button down, but before mouse-button + * up). See the alink attribute definition in HTML 4.01. This attribute + * is deprecated in HTML 4.01. + */ + public void setALink(String aLink); + + /** + * URI [IETF RFC 2396] of the background texture tile image. See the background attribute + * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getBackground(); + /** + * URI [IETF RFC 2396] of the background texture tile image. See the background attribute + * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setBackground(String background); + + /** + * Document background color. See the bgcolor attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getBgColor(); + /** + * Document background color. See the bgcolor attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setBgColor(String bgColor); + + /** + * Color of links that are not active and unvisited. See the link + * attribute definition in HTML 4.01. This attribute is deprecated in + * HTML 4.01. + */ + public String getLink(); + /** + * Color of links that are not active and unvisited. See the link + * attribute definition in HTML 4.01. This attribute is deprecated in + * HTML 4.01. + */ + public void setLink(String link); + + /** + * Document text color. See the text attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getText(); + /** + * Document text color. See the text attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setText(String text); + + /** + * Color of links that have been visited by the user. See the vlink + * attribute definition in HTML 4.01. This attribute is deprecated in + * HTML 4.01. + */ + public String getVLink(); + /** + * Color of links that have been visited by the user. See the vlink + * attribute definition in HTML 4.01. This attribute is deprecated in + * HTML 4.01. + */ + public void setVLink(String vLink); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java new file mode 100644 index 00000000000..7efe1834c26 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Push button. See the BUTTON element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLButtonElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of button (all lower case). See the type attribute definition
+ * in HTML 4.01.
+ */
+ public String getType();
+
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public void setValue(String value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java
new file mode 100644
index 00000000000..6b6751783fe
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Node;
+
+/**
+ * An HTMLCollection is a list of nodes. An individual node may
+ * be accessed by either ordinal index or the node's name or
+ * id attributes. Collections in the HTML DOM are assumed to be
+ * live meaning that they are automatically updated when the underlying
+ * document is changed.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLCollection {
+ /**
+ * This attribute specifies the length or size of the list.
+ */
+ public int getLength();
+
+ /**
+ * This method retrieves a node specified by ordinal index. Nodes are
+ * numbered in tree order (depth-first traversal order).
+ * @param index The index of the node to be fetched. The index origin is
+ * 0.
+ * @return The Node at the corresponding position upon
+ * success. A value of null is returned if the index is
+ * out of range.
+ */
+ public Node item(int index);
+
+ /**
+ * This method retrieves a Node using a name. With [HTML 4.01]
+ * documents, it first searches for a Node with a matching
+ * id attribute. If it doesn't find one, it then searches
+ * for a Node with a matching name attribute,
+ * but only on those elements that are allowed a name attribute. With [XHTML 1.0]
+ * documents, this method only searches for Nodes with a
+ * matching id attribute. This method is case insensitive
+ * in HTML documents and case sensitive in XHTML documents.
+ * @param name The name of the Node to be fetched.
+ * @return The Node with a name or
+ * id attribute whose value corresponds to the specified
+ * string. Upon failure (e.g., no node with this name exists), returns
+ * null.
+ */
+ public Node namedItem(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java
new file mode 100644
index 00000000000..e8a3bb4a064
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Definition list. See the DL element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLDListElement extends HTMLElement { + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public boolean getCompact(); + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setCompact(boolean compact); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java new file mode 100644 index 00000000000..5a405c80432 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Directory list. See the DIR element definition in HTML 4.01. This element + * is deprecated in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLDirectoryElement extends HTMLElement { + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public boolean getCompact(); + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setCompact(boolean compact); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java new file mode 100644 index 00000000000..31107c5f168 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Generic block container. See the DIV element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLDivElement extends HTMLElement {
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java
new file mode 100644
index 00000000000..79ad1b3363f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.DOMException;
+
+/**
+ * An HTMLDocument is the root of the HTML hierarchy and holds
+ * the entire content. Besides providing access to the hierarchy, it also
+ * provides some convenience methods for accessing certain sets of
+ * information from the document.
+ *
The following properties have been deprecated in favor of the
+ * corresponding ones for the BODY element:alinkColorbackground
+ * bgColorfgColorlinkColorvlinkColorIn DOM Level 2, the method
+ * getElementById is inherited from the Document
+ * interface where it was moved to.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLDocument extends Document {
+ /**
+ * The title of a document as specified by the TITLE element
+ * in the head of the document.
+ */
+ public String getTitle();
+ /**
+ * The title of a document as specified by the TITLE element
+ * in the head of the document.
+ */
+ public void setTitle(String title);
+
+ /**
+ * Returns the URI [IETF RFC 2396] of the page that linked to this page. The value is an
+ * empty string if the user navigated to the page directly (not through
+ * a link, but, for example, via a bookmark).
+ */
+ public String getReferrer();
+
+ /**
+ * The domain name of the server that served the document, or
+ * null if the server cannot be identified by a domain
+ * name.
+ */
+ public String getDomain();
+
+ /**
+ * The absolute URI [IETF RFC 2396] of the document.
+ */
+ public String getURL();
+
+ /**
+ * The element that contains the content for the document. In documents
+ * with BODY contents, returns the BODY
+ * element. In frameset documents, this returns the outermost
+ * FRAMESET element.
+ */
+ public HTMLElement getBody();
+ /**
+ * The element that contains the content for the document. In documents
+ * with BODY contents, returns the BODY
+ * element. In frameset documents, this returns the outermost
+ * FRAMESET element.
+ */
+ public void setBody(HTMLElement body);
+
+ /**
+ * A collection of all the IMG elements in a document. The
+ * behavior is limited to IMG elements for backwards
+ * compatibility. As suggested by [HTML 4.01], to include images, authors may use
+ * the OBJECT element or the IMG element.
+ * Therefore, it is recommended not to use this attribute to find the
+ * images in the document but getElementsByTagName with
+ * HTML 4.01 or getElementsByTagNameNS with XHTML 1.0.
+ */
+ public HTMLCollection getImages();
+
+ /**
+ * A collection of all the OBJECT elements that include
+ * applets and APPLET (deprecated) elements in a document.
+ */
+ public HTMLCollection getApplets();
+
+ /**
+ * A collection of all AREA elements and anchor (
+ * A) elements in a document with a value for the
+ * href attribute.
+ */
+ public HTMLCollection getLinks();
+
+ /**
+ * A collection of all the forms of a document.
+ */
+ public HTMLCollection getForms();
+
+ /**
+ * A collection of all the anchor (A) elements in a document
+ * with a value for the name attribute. For reasons of
+ * backward compatibility, the returned set of anchors only contains
+ * those anchors created with the name attribute, not those
+ * created with the id attribute. Note that in [XHTML 1.0], the
+ * name attribute (see section 4.10) has no semantics and
+ * is only present for legacy user agents: the id attribute
+ * is used instead. Users should prefer the iterator mechanisms provided
+ * by [DOM Level 2 Traversal] instead.
+ */
+ public HTMLCollection getAnchors();
+
+ /**
+ * This mutable string attribute denotes persistent state information
+ * that (1) is associated with the current frame or document and (2) is
+ * composed of information described by the cookies
+ * non-terminal of [IETF RFC 2965], Section 4.2.2.
+ *
If no persistent state information is available for the current
+ * frame or document document, then this property's value is an empty
+ * string.
+ *
When this attribute is read, all cookies are returned as a single
+ * string, with each cookie's name-value pair concatenated into a list
+ * of name-value pairs, each list item being separated by a ';'
+ * (semicolon).
+ *
When this attribute is set, the value it is set to should be a
+ * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that
+ * is, it should be a single name-value pair followed by zero or more
+ * cookie attribute values. If no domain attribute is specified, then
+ * the domain attribute for the new value defaults to the host portion
+ * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path
+ * attribute is specified, then the path attribute for the new value
+ * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current
+ * frame or document. If no max-age attribute is specified, then the
+ * max-age attribute for the new value defaults to a user agent defined
+ * value. If a cookie with the specified name is already associated with
+ * the current frame or document, then the new value as well as the new
+ * attributes replace the old value and attributes. If a max-age
+ * attribute of 0 is specified for the new value, then any existing
+ * cookies of the specified name are removed from the cookie storage.
+ * See [IETF RFC 2965] for the semantics of persistent state item attribute value
+ * pairs. The precise nature of a user agent session is not defined by
+ * this specification.
+ */
+ public String getCookie();
+ /**
+ * This mutable string attribute denotes persistent state information
+ * that (1) is associated with the current frame or document and (2) is
+ * composed of information described by the cookies
+ * non-terminal of [IETF RFC 2965], Section 4.2.2.
+ *
If no persistent state information is available for the current
+ * frame or document document, then this property's value is an empty
+ * string.
+ *
When this attribute is read, all cookies are returned as a single
+ * string, with each cookie's name-value pair concatenated into a list
+ * of name-value pairs, each list item being separated by a ';'
+ * (semicolon).
+ *
When this attribute is set, the value it is set to should be a
+ * string that adheres to the cookie non-terminal of [IETF RFC 2965]; that
+ * is, it should be a single name-value pair followed by zero or more
+ * cookie attribute values. If no domain attribute is specified, then
+ * the domain attribute for the new value defaults to the host portion
+ * of an absolute URI [IETF RFC 2396] of the current frame or document. If no path
+ * attribute is specified, then the path attribute for the new value
+ * defaults to the absolute path portion of the URI [IETF RFC 2396] of the current
+ * frame or document. If no max-age attribute is specified, then the
+ * max-age attribute for the new value defaults to a user agent defined
+ * value. If a cookie with the specified name is already associated with
+ * the current frame or document, then the new value as well as the new
+ * attributes replace the old value and attributes. If a max-age
+ * attribute of 0 is specified for the new value, then any existing
+ * cookies of the specified name are removed from the cookie storage.
+ * See [IETF RFC 2965] for the semantics of persistent state item attribute value
+ * pairs. The precise nature of a user agent session is not defined by
+ * this specification.
+ * @exception DOMException
+ * SYNTAX_ERR: If the new value does not adhere to the cookie syntax
+ * specified by [IETF RFC 2965].
+ */
+ public void setCookie(String cookie)
+ throws DOMException;
+
+ /**
+ * Open a document stream for writing. If a document exists in the target,
+ * this method clears it. This method and the ones following allow a
+ * user to add to or replace the structure model of a document using
+ * strings of unparsed HTML. At the time of writing alternate methods
+ * for providing similar functionality for both HTML and XML documents
+ * were being considered (see [DOM Level 3 Load and Save]).
+ */
+ public void open();
+
+ /**
+ * Closes a document stream opened by open() and forces
+ * rendering.
+ */
+ public void close();
+
+ /**
+ * Write a string of text to a document stream opened by
+ * open(). Note that the function will produce a document
+ * which is not necessarily driven by a DTD and therefore might be
+ * produce an invalid result in the context of the document.
+ * @param text The string to be parsed into some structure in the
+ * document structure model.
+ */
+ public void write(String text);
+
+ /**
+ * Write a string of text followed by a newline character to a document
+ * stream opened by open(). Note that the function will
+ * produce a document which is not necessarily driven by a DTD and
+ * therefore might be produce an invalid result in the context of the
+ * document
+ * @param text The string to be parsed into some structure in the
+ * document structure model.
+ */
+ public void writeln(String text);
+
+ /**
+ * With [HTML 4.01] documents, this method returns the (possibly empty) collection
+ * of elements whose name value is given by
+ * elementName. In [XHTML 1.0] documents, this methods only return the
+ * (possibly empty) collection of form controls with matching name. This
+ * method is case sensitive.
+ * @param elementName The name attribute value for an
+ * element.
+ * @return The matching elements.
+ */
+ public NodeList getElementsByName(String elementName);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java
new file mode 100644
index 00000000000..ed37419d3bc
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Element;
+
+/**
+ * All HTML element interfaces derive from this class. Elements that only
+ * expose the HTML core attributes are represented by the base
+ * HTMLElement interface. These elements are as follows:
+ * special: SUB, SUP, SPAN, BDOfont: TT, I, B, U, S, STRIKE, BIG, SMALL
+ * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBRlist:
+ * DD, DTNOFRAMES, NOSCRIPTADDRESS, CENTERThe style attribute
+ * of an HTML element is accessible through the
+ * ElementCSSInlineStyle interface which is defined in the CSS
+ * module [DOM Level 2 Style Sheets and CSS].
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLElement extends Element { + /** + * The element's identifier. See the id attribute definition in HTML 4.01. + */ + public String getId(); + /** + * The element's identifier. See the id attribute definition in HTML 4.01. + */ + public void setId(String id); + + /** + * The element's advisory title. See the title attribute definition in + * HTML 4.01. + */ + public String getTitle(); + /** + * The element's advisory title. See the title attribute definition in + * HTML 4.01. + */ + public void setTitle(String title); + + /** + * Language code defined in RFC 1766. See the lang attribute definition in + * HTML 4.01. + */ + public String getLang(); + /** + * Language code defined in RFC 1766. See the lang attribute definition in + * HTML 4.01. + */ + public void setLang(String lang); + + /** + * Specifies the base direction of directionally neutral text and the + * directionality of tables. See the dir attribute definition in HTML + * 4.01. + */ + public String getDir(); + /** + * Specifies the base direction of directionally neutral text and the + * directionality of tables. See the dir attribute definition in HTML + * 4.01. + */ + public void setDir(String dir); + + /** + * The class attribute of the element. This attribute has been renamed due + * to conflicts with the "class" keyword exposed by many languages. See + * the class attribute definition in HTML 4.01. + */ + public String getClassName(); + /** + * The class attribute of the element. This attribute has been renamed due + * to conflicts with the "class" keyword exposed by many languages. See + * the class attribute definition in HTML 4.01. + */ + public void setClassName(String className); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java new file mode 100644 index 00000000000..c962a567d1b --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Organizes form controls into logical groups. See the FIELDSET element + * definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLFieldSetElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java
new file mode 100644
index 00000000000..8fa25893c35
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Local change to font. See the FONT element definition in HTML 4.01. This
+ * element is deprecated in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLFontElement extends HTMLElement {
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getColor();
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setColor(String color);
+
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getFace();
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setFace(String face);
+
+ /**
+ * Font size. See the size attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getSize();
+ /**
+ * Font size. See the size attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setSize(String size);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java
new file mode 100644
index 00000000000..109f31a57dd
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The FORM element encompasses behavior similar to a collection
+ * and an element. It provides direct access to the contained form controls
+ * as well as the attributes of the form element. See the FORM element
+ * definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLFormElement extends HTMLElement { + /** + * Returns a collection of all form control elements in the form. + */ + public HTMLCollection getElements(); + + /** + * The number of form controls in the form. + */ + public int getLength(); + + /** + * Names the form. + */ + public String getName(); + /** + * Names the form. + */ + public void setName(String name); + + /** + * List of character sets supported by the server. See the accept-charset + * attribute definition in HTML 4.01. + */ + public String getAcceptCharset(); + /** + * List of character sets supported by the server. See the accept-charset + * attribute definition in HTML 4.01. + */ + public void setAcceptCharset(String acceptCharset); + + /** + * Server-side form handler. See the action attribute definition in HTML + * 4.01. + */ + public String getAction(); + /** + * Server-side form handler. See the action attribute definition in HTML + * 4.01. + */ + public void setAction(String action); + + /** + * The content type of the submitted form, generally + * "application/x-www-form-urlencoded". See the enctype attribute + * definition in HTML 4.01. The onsubmit even handler is not guaranteed + * to be triggered when invoking this method. The behavior is + * inconsistent for historical reasons and authors should not rely on a + * particular one. + */ + public String getEnctype(); + /** + * The content type of the submitted form, generally + * "application/x-www-form-urlencoded". See the enctype attribute + * definition in HTML 4.01. The onsubmit even handler is not guaranteed + * to be triggered when invoking this method. The behavior is + * inconsistent for historical reasons and authors should not rely on a + * particular one. + */ + public void setEnctype(String enctype); + + /** + * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition + * in HTML 4.01. + */ + public String getMethod(); + /** + * HTTP method [IETF RFC 2616] used to submit form. See the method attribute definition + * in HTML 4.01. + */ + public void setMethod(String method); + + /** + * Frame to render the resource in. See the target attribute definition in + * HTML 4.01. + */ + public String getTarget(); + /** + * Frame to render the resource in. See the target attribute definition in + * HTML 4.01. + */ + public void setTarget(String target); + + /** + * Submits the form. It performs the same action as a submit button. + */ + public void submit(); + + /** + * Restores a form element's default values. It performs the same action + * as a reset button. + */ + public void reset(); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java new file mode 100644 index 00000000000..d6100815f5a --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +import org.w3c.dom.Document; + +/** + * Create a frame. See the FRAME element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLFrameElement extends HTMLElement {
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public String getFrameBorder();
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public void setFrameBorder(String frameBorder);
+
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public String getMarginHeight();
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public void setMarginHeight(String marginHeight);
+
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public String getMarginWidth();
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public void setMarginWidth(String marginWidth);
+
+ /**
+ * The frame name (object of the target attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The frame name (object of the target attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * When true, forbid user from resizing frame. See the noresize attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getNoResize();
+ /**
+ * When true, forbid user from resizing frame. See the noresize attribute
+ * definition in HTML 4.01.
+ */
+ public void setNoResize(boolean noResize);
+
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public String getScrolling();
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public void setScrolling(String scrolling);
+
+ /**
+ * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * The document this frame contains, if there is any and it is available,
+ * or null otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java
new file mode 100644
index 00000000000..4e5d75bde1b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Create a grid of frames. See the FRAMESET element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLFrameSetElement extends HTMLElement { + /** + * The number of columns of frames in the frameset. See the cols attribute + * definition in HTML 4.01. + */ + public String getCols(); + /** + * The number of columns of frames in the frameset. See the cols attribute + * definition in HTML 4.01. + */ + public void setCols(String cols); + + /** + * The number of rows of frames in the frameset. See the rows attribute + * definition in HTML 4.01. + */ + public String getRows(); + /** + * The number of rows of frames in the frameset. See the rows attribute + * definition in HTML 4.01. + */ + public void setRows(String rows); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java new file mode 100644 index 00000000000..b09ec0f3fb1 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Create a horizontal rule. See the HR element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLHRElement extends HTMLElement { + /** + * Align the rule on the page. See the align attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getAlign(); + /** + * Align the rule on the page. See the align attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setAlign(String align); + + /** + * Indicates to the user agent that there should be no shading in the + * rendering of this element. See the noshade attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public boolean getNoShade(); + /** + * Indicates to the user agent that there should be no shading in the + * rendering of this element. See the noshade attribute definition in + * HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setNoShade(boolean noShade); + + /** + * The height of the rule. See the size attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getSize(); + /** + * The height of the rule. See the size attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setSize(String size); + + /** + * The width of the rule. See the width attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public String getWidth(); + /** + * The width of the rule. See the width attribute definition in HTML 4.01. + * This attribute is deprecated in HTML 4.01. + */ + public void setWidth(String width); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java new file mode 100644 index 00000000000..c4550a50711 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Document head information. See the HEAD element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLHeadElement extends HTMLElement {
+ /**
+ * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute
+ * definition in HTML 4.01.
+ */
+ public String getProfile();
+ /**
+ * URI [IETF RFC 2396] designating a metadata profile. See the profile attribute
+ * definition in HTML 4.01.
+ */
+ public void setProfile(String profile);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java
new file mode 100644
index 00000000000..149752507e3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * For the H1 to H6 elements. See the H1 element
+ * definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLHeadingElement extends HTMLElement { + /** + * Horizontal text alignment. See the align attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getAlign(); + /** + * Horizontal text alignment. See the align attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setAlign(String align); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java new file mode 100644 index 00000000000..5ba30fe3177 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Root of an HTML document. See the HTML element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLHtmlElement extends HTMLElement { + /** + * Version information about the document's DTD. See the version attribute + * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public String getVersion(); + /** + * Version information about the document's DTD. See the version attribute + * definition in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setVersion(String version); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java new file mode 100644 index 00000000000..7cac12f89e5 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +import org.w3c.dom.Document; + +/** + * Inline subwindows. See the IFRAME element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLIFrameElement extends HTMLElement {
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public String getFrameBorder();
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public void setFrameBorder(String frameBorder);
+
+ /**
+ * Frame height. See the height attribute definition in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Frame height. See the height attribute definition in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public String getMarginHeight();
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public void setMarginHeight(String marginHeight);
+
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public String getMarginWidth();
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public void setMarginWidth(String marginWidth);
+
+ /**
+ * The frame name (object of the target attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The frame name (object of the target attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public String getScrolling();
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public void setScrolling(String scrolling);
+
+ /**
+ * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * A URI [IETF RFC 2396] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Frame width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Frame width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * The document this frame contains, if there is any and it is available,
+ * or null otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java
new file mode 100644
index 00000000000..8e8142184d4
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Embedded image. See the IMG element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLImageElement extends HTMLElement {
+ /**
+ * The name of the element (for backwards compatibility).
+ */
+ public String getName();
+ /**
+ * The name of the element (for backwards compatibility).
+ */
+ public void setName(String name);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * Width of border around image. See the border attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the
+ * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1]
+ * .
+ */
+ public String getBorder();
+ /**
+ * Width of border around image. See the border attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the
+ * type of this attribute was DOMString in DOM Level 1 HTML [DOM Level 1]
+ * .
+ */
+ public void setBorder(String border);
+
+ /**
+ * Height of the image in pixels. See the height attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public int getHeight();
+ /**
+ * Height of the image in pixels. See the height attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public void setHeight(int height);
+
+ /**
+ * Horizontal space to the left and right of this image in pixels. See the
+ * hspace attribute definition in HTML 4.01. This attribute is
+ * deprecated in HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public int getHspace();
+ /**
+ * Horizontal space to the left and right of this image in pixels. See the
+ * hspace attribute definition in HTML 4.01. This attribute is
+ * deprecated in HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public void setHspace(int hspace);
+
+ /**
+ * Use server-side image map. See the ismap attribute definition in HTML
+ * 4.01.
+ */
+ public boolean getIsMap();
+ /**
+ * Use server-side image map. See the ismap attribute definition in HTML
+ * 4.01.
+ */
+ public void setIsMap(boolean isMap);
+
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [IETF RFC 2396] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * URI [IETF RFC 2396] designating the source of this image. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * URI [IETF RFC 2396] designating the source of this image. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * Vertical space above and below this image in pixels. See the vspace
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01. Note that the type of this attribute was "DOMString" in
+ * DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public int getVspace();
+ /**
+ * Vertical space above and below this image in pixels. See the vspace
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01. Note that the type of this attribute was "DOMString" in
+ * DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public void setVspace(int vspace);
+
+ /**
+ * The width of the image in pixels. See the width attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public int getWidth();
+ /**
+ * The width of the image in pixels. See the width attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * DOMString in DOM Level 1 HTML [DOM Level 1].
+ * @version DOM Level 2
+ */
+ public void setWidth(int width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java
new file mode 100644
index 00000000000..b0d0d9d091b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Form control.Depending upon the environment in which the page is being
+ * viewed, the value property may be read-only for the file upload input
+ * type. For the "password" input type, the actual value returned may be
+ * masked to prevent unauthorized use. See the INPUT element definition in [HTML 4.01].
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLInputElement extends HTMLElement {
+ /**
+ * When the type attribute of the element has the value
+ * "text", "file" or "password", this represents the HTML value
+ * attribute of the element. The value of this attribute does not change
+ * if the contents of the corresponding form control, in an interactive
+ * user agent, changes. See the value attribute definition in HTML 4.01.
+ */
+ public String getDefaultValue();
+ /**
+ * When the type attribute of the element has the value
+ * "text", "file" or "password", this represents the HTML value
+ * attribute of the element. The value of this attribute does not change
+ * if the contents of the corresponding form control, in an interactive
+ * user agent, changes. See the value attribute definition in HTML 4.01.
+ */
+ public void setDefaultValue(String defaultValue);
+
+ /**
+ * When type has the value "radio" or "checkbox", this
+ * represents the HTML checked attribute of the element. The value of
+ * this attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the checked
+ * attribute definition in HTML 4.01.
+ */
+ public boolean getDefaultChecked();
+ /**
+ * When type has the value "radio" or "checkbox", this
+ * represents the HTML checked attribute of the element. The value of
+ * this attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the checked
+ * attribute definition in HTML 4.01.
+ */
+ public void setDefaultChecked(boolean defaultChecked);
+
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A comma-separated list of content types that a server processing this
+ * form will handle correctly. See the accept attribute definition in
+ * HTML 4.01.
+ */
+ public String getAccept();
+ /**
+ * A comma-separated list of content types that a server processing this
+ * form will handle correctly. See the accept attribute definition in
+ * HTML 4.01.
+ */
+ public void setAccept(String accept);
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * When the type attribute of the element has the value
+ * "radio" or "checkbox", this represents the current state of the form
+ * control, in an interactive user agent. Changes to this attribute
+ * change the state of the form control, but do not change the value of
+ * the HTML checked attribute of the INPUT element.During the handling
+ * of a click event on an input element with a type attribute that has
+ * the value "radio" or "checkbox", some implementations may change the
+ * value of this property before the event is being dispatched in the
+ * document. If the default action of the event is canceled, the value
+ * of the property may be changed back to its original value. This means
+ * that the value of this property during the handling of click events
+ * is implementation dependent.
+ */
+ public boolean getChecked();
+ /**
+ * When the type attribute of the element has the value
+ * "radio" or "checkbox", this represents the current state of the form
+ * control, in an interactive user agent. Changes to this attribute
+ * change the state of the form control, but do not change the value of
+ * the HTML checked attribute of the INPUT element.During the handling
+ * of a click event on an input element with a type attribute that has
+ * the value "radio" or "checkbox", some implementations may change the
+ * value of this property before the event is being dispatched in the
+ * document. If the default action of the event is canceled, the value
+ * of the property may be changed back to its original value. This means
+ * that the value of this property during the handling of click events
+ * is implementation dependent.
+ */
+ public void setChecked(boolean checked);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Maximum number of characters for text fields, when type
+ * has the value "text" or "password". See the maxlength attribute
+ * definition in HTML 4.01.
+ */
+ public int getMaxLength();
+ /**
+ * Maximum number of characters for text fields, when type
+ * has the value "text" or "password". See the maxlength attribute
+ * definition in HTML 4.01.
+ */
+ public void setMaxLength(int maxLength);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * This control is read-only. Relevant only when type has the
+ * value "text" or "password". See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public boolean getReadOnly();
+ /**
+ * This control is read-only. Relevant only when type has the
+ * value "text" or "password". See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public void setReadOnly(boolean readOnly);
+
+ /**
+ * Size information. The precise meaning is specific to each type of
+ * field. See the size attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public int getSize();
+ /**
+ * Size information. The precise meaning is specific to each type of
+ * field. See the size attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setSize(int size);
+
+ /**
+ * When the type attribute has the value "image", this
+ * attribute specifies the location of the image to be used to decorate
+ * the graphical submit button. See the src attribute definition in HTML
+ * 4.01.
+ */
+ public String getSrc();
+ /**
+ * When the type attribute has the value "image", this
+ * attribute specifies the location of the image to be used to decorate
+ * the graphical submit button. See the src attribute definition in HTML
+ * 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of control created (all lower case). See the type attribute
+ * definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public String getType();
+ /**
+ * The type of control created (all lower case). See the type attribute
+ * definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setType(String type);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * When the type attribute of the element has the value
+ * "text", "file" or "password", this represents the current contents of
+ * the corresponding form control, in an interactive user agent.
+ * Changing this attribute changes the contents of the form control, but
+ * does not change the value of the HTML value attribute of the element.
+ * When the type attribute of the element has the value
+ * "button", "hidden", "submit", "reset", "image", "checkbox" or
+ * "radio", this represents the HTML value attribute of the element. See
+ * the value attribute definition in HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * When the type attribute of the element has the value
+ * "text", "file" or "password", this represents the current contents of
+ * the corresponding form control, in an interactive user agent.
+ * Changing this attribute changes the contents of the form control, but
+ * does not change the value of the HTML value attribute of the element.
+ * When the type attribute of the element has the value
+ * "button", "hidden", "submit", "reset", "image", "checkbox" or
+ * "radio", this represents the HTML value attribute of the element. See
+ * the value attribute definition in HTML 4.01.
+ */
+ public void setValue(String value);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+ /**
+ * Select the contents of the text area. For INPUT elements
+ * whose type attribute has one of the following values:
+ * "text", "file", or "password".
+ */
+ public void select();
+
+ /**
+ * Simulate a mouse-click. For INPUT elements whose
+ * type attribute has one of the following values:
+ * "button", "checkbox", "radio", "reset", or "submit".
+ */
+ public void click();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java
new file mode 100644
index 00000000000..898b9e46a01
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * This element is used for single-line text input. See the ISINDEX element
+ * definition in HTML 4.01. This element is deprecated in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLIsIndexElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * The prompt message. See the prompt attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getPrompt();
+ /**
+ * The prompt message. See the prompt attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setPrompt(String prompt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java
new file mode 100644
index 00000000000..df20c000ac2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * List item. See the LI element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLLIElement extends HTMLElement {
+ /**
+ * List item bullet style. See the type attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * List item bullet style. See the type attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Reset sequence number when used in OL. See the value
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public int getValue();
+ /**
+ * Reset sequence number when used in OL. See the value
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setValue(int value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java
new file mode 100644
index 00000000000..69a104053c2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Form field label text. See the LABEL element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLLabelElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * This attribute links this label with another form control by
+ * id attribute. See the for attribute definition in HTML
+ * 4.01.
+ */
+ public String getHtmlFor();
+ /**
+ * This attribute links this label with another form control by
+ * id attribute. See the for attribute definition in HTML
+ * 4.01.
+ */
+ public void setHtmlFor(String htmlFor);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java
new file mode 100644
index 00000000000..b976d099a6a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Provides a caption for a FIELDSET grouping. See the LEGEND
+ * element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLLegendElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Text alignment relative to FIELDSET. See the align
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Text alignment relative to FIELDSET. See the align
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java
new file mode 100644
index 00000000000..4ed72ca9483
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The LINK element specifies a link to an external resource, and
+ * defines this document's relationship to that resource (or vice versa).
+ * See the LINK element definition in HTML 4.01 (see also the
+ * LinkStyle interface in the StyleSheet module [DOM Level 2 Style Sheets and CSS]).
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLLinkElement extends HTMLElement { + /** + * Enables/disables the link. This is currently only used for style sheet + * links, and may be used to activate or deactivate style sheets. + */ + public boolean getDisabled(); + /** + * Enables/disables the link. This is currently only used for style sheet + * links, and may be used to activate or deactivate style sheets. + */ + public void setDisabled(boolean disabled); + + /** + * The character encoding of the resource being linked to. See the charset + * attribute definition in HTML 4.01. + */ + public String getCharset(); + /** + * The character encoding of the resource being linked to. See the charset + * attribute definition in HTML 4.01. + */ + public void setCharset(String charset); + + /** + * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in + * HTML 4.01. + */ + public String getHref(); + /** + * The URI [IETF RFC 2396] of the linked resource. See the href attribute definition in + * HTML 4.01. + */ + public void setHref(String href); + + /** + * Language code of the linked resource. See the hreflang attribute + * definition in HTML 4.01. + */ + public String getHreflang(); + /** + * Language code of the linked resource. See the hreflang attribute + * definition in HTML 4.01. + */ + public void setHreflang(String hreflang); + + /** + * Designed for use with one or more target media. See the media attribute + * definition in HTML 4.01. + */ + public String getMedia(); + /** + * Designed for use with one or more target media. See the media attribute + * definition in HTML 4.01. + */ + public void setMedia(String media); + + /** + * Forward link type. See the rel attribute definition in HTML 4.01. + */ + public String getRel(); + /** + * Forward link type. See the rel attribute definition in HTML 4.01. + */ + public void setRel(String rel); + + /** + * Reverse link type. See the rev attribute definition in HTML 4.01. + */ + public String getRev(); + /** + * Reverse link type. See the rev attribute definition in HTML 4.01. + */ + public void setRev(String rev); + + /** + * Frame to render the resource in. See the target attribute definition in + * HTML 4.01. + */ + public String getTarget(); + /** + * Frame to render the resource in. See the target attribute definition in + * HTML 4.01. + */ + public void setTarget(String target); + + /** + * Advisory content type. See the type attribute definition in HTML 4.01. + */ + public String getType(); + /** + * Advisory content type. See the type attribute definition in HTML 4.01. + */ + public void setType(String type); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java new file mode 100644 index 00000000000..e413727ab4d --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Client-side image map. See the MAP element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLMapElement extends HTMLElement {
+ /**
+ * The list of areas defined for the image map.
+ */
+ public HTMLCollection getAreas();
+
+ /**
+ * Names the map (for use with usemap). See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Names the map (for use with usemap). See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java
new file mode 100644
index 00000000000..7c8ec62d0eb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Menu list. See the MENU element definition in HTML 4.01. This element is
+ * deprecated in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLMenuElement extends HTMLElement { + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public boolean getCompact(); + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setCompact(boolean compact); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java new file mode 100644 index 00000000000..b6bf05d40c7 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * This contains generic meta-information about the document. See the META + * element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLMetaElement extends HTMLElement { + /** + * Associated information. See the content attribute definition in HTML + * 4.01. + */ + public String getContent(); + /** + * Associated information. See the content attribute definition in HTML + * 4.01. + */ + public void setContent(String content); + + /** + * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in + * HTML 4.01. + */ + public String getHttpEquiv(); + /** + * HTTP response header name [IETF RFC 2616]. See the http-equiv attribute definition in + * HTML 4.01. + */ + public void setHttpEquiv(String httpEquiv); + + /** + * Meta information name. See the name attribute definition in HTML 4.01. + */ + public String getName(); + /** + * Meta information name. See the name attribute definition in HTML 4.01. + */ + public void setName(String name); + + /** + * Select form of content. See the scheme attribute definition in HTML + * 4.01. + */ + public String getScheme(); + /** + * Select form of content. See the scheme attribute definition in HTML + * 4.01. + */ + public void setScheme(String scheme); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java new file mode 100644 index 00000000000..006ba69c4bd --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Notice of modification to part of a document. See the INS and DEL element + * definitions in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLModElement extends HTMLElement { + /** + * A URI [IETF RFC 2396] designating a document that describes the reason for the change. + * See the cite attribute definition in HTML 4.01. + */ + public String getCite(); + /** + * A URI [IETF RFC 2396] designating a document that describes the reason for the change. + * See the cite attribute definition in HTML 4.01. + */ + public void setCite(String cite); + + /** + * The date and time of the change. See the datetime attribute definition + * in HTML 4.01. + */ + public String getDateTime(); + /** + * The date and time of the change. See the datetime attribute definition + * in HTML 4.01. + */ + public void setDateTime(String dateTime); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java new file mode 100644 index 00000000000..13041c8a106 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Ordered list. See the OL element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLOListElement extends HTMLElement { + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public boolean getCompact(); + /** + * Reduce spacing between list items. See the compact attribute definition + * in HTML 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setCompact(boolean compact); + + /** + * Starting sequence number. See the start attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public int getStart(); + /** + * Starting sequence number. See the start attribute definition in HTML + * 4.01. This attribute is deprecated in HTML 4.01. + */ + public void setStart(int start); + + /** + * Numbering style. See the type attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public String getType(); + /** + * Numbering style. See the type attribute definition in HTML 4.01. This + * attribute is deprecated in HTML 4.01. + */ + public void setType(String type); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java new file mode 100644 index 00000000000..11795468d77 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java @@ -0,0 +1,230 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +import org.w3c.dom.Document; + +/** + * Generic embedded object.In principle, all properties on the object element + * are read-write but in some environments some properties may be read-only + * once the underlying object is instantiated. See the OBJECT element + * definition in [HTML 4.01]. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLObjectElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * Applet class file. See the code attribute for
+ * HTMLAppletElement.
+ */
+ public String getCode();
+ /**
+ * Applet class file. See the code attribute for
+ * HTMLAppletElement.
+ */
+ public void setCode(String code);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Space-separated list of archives. See the archive attribute definition
+ * in HTML 4.01.
+ */
+ public String getArchive();
+ /**
+ * Space-separated list of archives. See the archive attribute definition
+ * in HTML 4.01.
+ */
+ public void setArchive(String archive);
+
+ /**
+ * Width of border around the object. See the border attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBorder();
+ /**
+ * Width of border around the object. See the border attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBorder(String border);
+
+ /**
+ * Base URI [IETF RFC 2396] for classid, data, and
+ * archive attributes. See the codebase attribute definition
+ * in HTML 4.01.
+ */
+ public String getCodeBase();
+ /**
+ * Base URI [IETF RFC 2396] for classid, data, and
+ * archive attributes. See the codebase attribute definition
+ * in HTML 4.01.
+ */
+ public void setCodeBase(String codeBase);
+
+ /**
+ * Content type for data downloaded via classid attribute.
+ * See the codetype attribute definition in HTML 4.01.
+ */
+ public String getCodeType();
+ /**
+ * Content type for data downloaded via classid attribute.
+ * See the codetype attribute definition in HTML 4.01.
+ */
+ public void setCodeType(String codeType);
+
+ /**
+ * A URI [IETF RFC 2396] specifying the location of the object's data. See the data
+ * attribute definition in HTML 4.01.
+ */
+ public String getData();
+ /**
+ * A URI [IETF RFC 2396] specifying the location of the object's data. See the data
+ * attribute definition in HTML 4.01.
+ */
+ public void setData(String data);
+
+ /**
+ * Declare (for future reference), but do not instantiate, this object.
+ * See the declare attribute definition in HTML 4.01.
+ */
+ public boolean getDeclare();
+ /**
+ * Declare (for future reference), but do not instantiate, this object.
+ * See the declare attribute definition in HTML 4.01.
+ */
+ public void setDeclare(boolean declare);
+
+ /**
+ * Override height. See the height attribute definition in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Override height. See the height attribute definition in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public int getHspace();
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setHspace(int hspace);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Message to render while loading the object. See the standby attribute
+ * definition in HTML 4.01.
+ */
+ public String getStandby();
+ /**
+ * Message to render while loading the object. See the standby attribute
+ * definition in HTML 4.01.
+ */
+ public void setStandby(String standby);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Content type for data downloaded via data attribute. See
+ * the type attribute definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Content type for data downloaded via data attribute. See
+ * the type attribute definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public int getVspace();
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setVspace(int vspace);
+
+ /**
+ * Override width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Override width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * The document this object contains, if there is any and it is available,
+ * or null otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java
new file mode 100644
index 00000000000..8bd606a7126
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Group options together in logical subdivisions. See the OPTGROUP element
+ * definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLOptGroupElement extends HTMLElement { + /** + * The control is unavailable in this context. See the disabled attribute + * definition in HTML 4.01. + */ + public boolean getDisabled(); + /** + * The control is unavailable in this context. See the disabled attribute + * definition in HTML 4.01. + */ + public void setDisabled(boolean disabled); + + /** + * Assigns a label to this option group. See the label attribute definition + * in HTML 4.01. + */ + public String getLabel(); + /** + * Assigns a label to this option group. See the label attribute definition + * in HTML 4.01. + */ + public void setLabel(String label); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java new file mode 100644 index 00000000000..f3b38a6019c --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * A selectable choice. See the OPTION element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLOptionElement extends HTMLElement {
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * Represents the value of the HTML selected attribute. The value of this
+ * attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the selected
+ * attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public boolean getDefaultSelected();
+ /**
+ * Represents the value of the HTML selected attribute. The value of this
+ * attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the selected
+ * attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setDefaultSelected(boolean defaultSelected);
+
+ /**
+ * The text contained within the option element.
+ */
+ public String getText();
+
+ /**
+ * The index of this OPTION in its parent SELECT
+ * , starting from 0.
+ * @version DOM Level 2
+ */
+ public int getIndex();
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Option label for use in hierarchical menus. See the label attribute
+ * definition in HTML 4.01.
+ */
+ public String getLabel();
+ /**
+ * Option label for use in hierarchical menus. See the label attribute
+ * definition in HTML 4.01.
+ */
+ public void setLabel(String label);
+
+ /**
+ * Represents the current state of the corresponding form control, in an
+ * interactive user agent. Changing this attribute changes the state of
+ * the form control, but does not change the value of the HTML selected
+ * attribute of the element.
+ */
+ public boolean getSelected();
+ /**
+ * Represents the current state of the corresponding form control, in an
+ * interactive user agent. Changing this attribute changes the state of
+ * the form control, but does not change the value of the HTML selected
+ * attribute of the element.
+ */
+ public void setSelected(boolean selected);
+
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public void setValue(String value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java
new file mode 100644
index 00000000000..d70d92d73e2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * An HTMLOptionsCollection is a list of nodes representing HTML
+ * option element. An individual node may be accessed by either ordinal
+ * index or the node's name or id attributes.
+ * Collections in the HTML DOM are assumed to be live meaning that they are
+ * automatically updated when the underlying document is changed.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ * @since DOM Level 2
+ */
+public interface HTMLOptionsCollection {
+ /**
+ * This attribute specifies the length or size of the list.
+ */
+ public int getLength();
+ /**
+ * This attribute specifies the length or size of the list.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: if setting the length is not allowed by the
+ * implementation.
+ */
+ public void setLength(int length)
+ throws DOMException;
+
+ /**
+ * This method retrieves a node specified by ordinal index. Nodes are
+ * numbered in tree order (depth-first traversal order).
+ * @param index The index of the node to be fetched. The index origin is
+ * 0.
+ * @return The Node at the corresponding position upon
+ * success. A value of null is returned if the index is
+ * out of range.
+ */
+ public Node item(int index);
+
+ /**
+ * This method retrieves a Node using a name. It first
+ * searches for a Node with a matching id
+ * attribute. If it doesn't find one, it then searches for a
+ * Node with a matching name attribute, but
+ * only on those elements that are allowed a name attribute. This method
+ * is case insensitive in HTML documents and case sensitive in XHTML
+ * documents.
+ * @param name The name of the Node to be fetched.
+ * @return The Node with a name or
+ * id attribute whose value corresponds to the specified
+ * string. Upon failure (e.g., no node with this name exists), returns
+ * null.
+ */
+ public Node namedItem(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java
new file mode 100644
index 00000000000..1cb8e04203b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Paragraphs. See the P element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLParagraphElement extends HTMLElement {
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java
new file mode 100644
index 00000000000..ecf91c287d3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Parameters fed to the OBJECT element. See the PARAM element
+ * definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLParamElement extends HTMLElement {
+ /**
+ * The name of a run-time parameter. See the name attribute definition in
+ * HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The name of a run-time parameter. See the name attribute definition in
+ * HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Content type for the value attribute when
+ * valuetype has the value "ref". See the type attribute
+ * definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Content type for the value attribute when
+ * valuetype has the value "ref". See the type attribute
+ * definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * The value of a run-time parameter. See the value attribute definition
+ * in HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The value of a run-time parameter. See the value attribute definition
+ * in HTML 4.01.
+ */
+ public void setValue(String value);
+
+ /**
+ * Information about the meaning of the value attribute
+ * value. See the valuetype attribute definition in HTML 4.01.
+ */
+ public String getValueType();
+ /**
+ * Information about the meaning of the value attribute
+ * value. See the valuetype attribute definition in HTML 4.01.
+ */
+ public void setValueType(String valueType);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java
new file mode 100644
index 00000000000..bab7358a730
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Preformatted text. See the PRE element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLPreElement extends HTMLElement {
+ /**
+ * Fixed width for content. See the width attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public int getWidth();
+ /**
+ * Fixed width for content. See the width attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(int width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java
new file mode 100644
index 00000000000..c7cc666f417
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * For the Q and BLOCKQUOTE elements. See the Q
+ * element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLQuoteElement extends HTMLElement { + /** + * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute + * definition in HTML 4.01. + */ + public String getCite(); + /** + * A URI [IETF RFC 2396] designating a source document or message. See the cite attribute + * definition in HTML 4.01. + */ + public void setCite(String cite); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java new file mode 100644 index 00000000000..a35f7ddc1cb --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Script statements. See the SCRIPT element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLScriptElement extends HTMLElement { + /** + * The script content of the element. + */ + public String getText(); + /** + * The script content of the element. + */ + public void setText(String text); + + /** + * Reserved for future use. + */ + public String getHtmlFor(); + /** + * Reserved for future use. + */ + public void setHtmlFor(String htmlFor); + + /** + * Reserved for future use. + */ + public String getEvent(); + /** + * Reserved for future use. + */ + public void setEvent(String event); + + /** + * The character encoding of the linked resource. See the charset + * attribute definition in HTML 4.01. + */ + public String getCharset(); + /** + * The character encoding of the linked resource. See the charset + * attribute definition in HTML 4.01. + */ + public void setCharset(String charset); + + /** + * Indicates that the user agent can defer processing of the script. See + * the defer attribute definition in HTML 4.01. + */ + public boolean getDefer(); + /** + * Indicates that the user agent can defer processing of the script. See + * the defer attribute definition in HTML 4.01. + */ + public void setDefer(boolean defer); + + /** + * URI [IETF RFC 2396] designating an external script. See the src attribute definition + * in HTML 4.01. + */ + public String getSrc(); + /** + * URI [IETF RFC 2396] designating an external script. See the src attribute definition + * in HTML 4.01. + */ + public void setSrc(String src); + + /** + * The content type of the script language. See the type attribute + * definition in HTML 4.01. + */ + public String getType(); + /** + * The content type of the script language. See the type attribute + * definition in HTML 4.01. + */ + public void setType(String type); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java new file mode 100644 index 00000000000..c5d83b05182 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +import org.w3c.dom.DOMException; + +/** + * The select element allows the selection of an option. The contained options + * can be directly accessed through the select element as a collection. See + * the SELECT element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLSelectElement extends HTMLElement {
+ /**
+ * The type of this form control. This is the string "select-multiple"
+ * when the multiple attribute is true and the string
+ * "select-one" when false.
+ */
+ public String getType();
+
+ /**
+ * The ordinal index of the selected option, starting from 0. The value -1
+ * is returned if no element is selected. If multiple options are
+ * selected, the index of the first selected option is returned.
+ */
+ public int getSelectedIndex();
+ /**
+ * The ordinal index of the selected option, starting from 0. The value -1
+ * is returned if no element is selected. If multiple options are
+ * selected, the index of the first selected option is returned.
+ */
+ public void setSelectedIndex(int selectedIndex);
+
+ /**
+ * The current form control value (i.e. the value of the currently
+ * selected option), if multiple options are selected this is the value
+ * of the first selected option.
+ */
+ public String getValue();
+ /**
+ * The current form control value (i.e. the value of the currently
+ * selected option), if multiple options are selected this is the value
+ * of the first selected option.
+ */
+ public void setValue(String value);
+
+ /**
+ * The number of options in this SELECT.
+ * @version DOM Level 2
+ */
+ public int getLength();
+ /**
+ * The number of options in this SELECT.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: if setting the length is not allowed by the
+ * implementation.
+ * @version DOM Level 2
+ */
+ public void setLength(int length)
+ throws DOMException;
+
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * The collection of OPTION elements contained by this
+ * element.
+ * @version DOM Level 2
+ */
+ public HTMLOptionsCollection getOptions();
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * If true, multiple OPTION elements may be selected in this
+ * SELECT. See the multiple attribute definition in HTML
+ * 4.01.
+ */
+ public boolean getMultiple();
+ /**
+ * If true, multiple OPTION elements may be selected in this
+ * SELECT. See the multiple attribute definition in HTML
+ * 4.01.
+ */
+ public void setMultiple(boolean multiple);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Number of visible rows. See the size attribute definition in HTML 4.01.
+ */
+ public int getSize();
+ /**
+ * Number of visible rows. See the size attribute definition in HTML 4.01.
+ */
+ public void setSize(int size);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Add a new element to the collection of OPTION elements for
+ * this SELECT. This method is the equivalent of the
+ * appendChild method of the Node interface if
+ * the before parameter is null. It is
+ * equivalent to the insertBefore method on the parent of
+ * before in all other cases. This method may have no
+ * effect if the new element is not an OPTION or an
+ * OPTGROUP.
+ * @param element The element to add.
+ * @param before The element to insert before, or null for
+ * the tail of the list.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if before is not a descendant of
+ * the SELECT element.
+ */
+ public void add(HTMLElement element,
+ HTMLElement before)
+ throws DOMException;
+
+ /**
+ * Remove an element from the collection of OPTION elements
+ * for this SELECT. Does nothing if no element has the
+ * given index.
+ * @param index The index of the item to remove, starting from 0.
+ */
+ public void remove(int index);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java
new file mode 100644
index 00000000000..148bcda1cf2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Style information. See the STYLE element definition in HTML 4.01, the CSS
+ * module [DOM Level 2 Style Sheets and CSS] and the LinkStyle interface in the StyleSheets
+ * module [DOM Level 2 Style Sheets and CSS].
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLStyleElement extends HTMLElement { + /** + * Enables/disables the style sheet. + */ + public boolean getDisabled(); + /** + * Enables/disables the style sheet. + */ + public void setDisabled(boolean disabled); + + /** + * Designed for use with one or more target media. See the media attribute + * definition in HTML 4.01. + */ + public String getMedia(); + /** + * Designed for use with one or more target media. See the media attribute + * definition in HTML 4.01. + */ + public void setMedia(String media); + + /** + * The content type of the style sheet language. See the type attribute + * definition in HTML 4.01. + */ + public String getType(); + /** + * The content type of the style sheet language. See the type attribute + * definition in HTML 4.01. + */ + public void setType(String type); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java new file mode 100644 index 00000000000..6c0d872e541 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Table caption See the CAPTION element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableCaptionElement extends HTMLElement {
+ /**
+ * Caption alignment with respect to the table. See the align attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Caption alignment with respect to the table. See the align attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java
new file mode 100644
index 00000000000..1e8dc3d4738
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The object used to represent the TH and TD
+ * elements. See the TD element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableCellElement extends HTMLElement {
+ /**
+ * The index of this cell in the row, starting from 0. This index is in
+ * document tree order and not display order.
+ */
+ public int getCellIndex();
+
+ /**
+ * Abbreviation for header cells. See the abbr attribute definition in
+ * HTML 4.01.
+ */
+ public String getAbbr();
+ /**
+ * Abbreviation for header cells. See the abbr attribute definition in
+ * HTML 4.01.
+ */
+ public void setAbbr(String abbr);
+
+ /**
+ * Horizontal alignment of data in cell. See the align attribute definition
+ * in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data in cell. See the align attribute definition
+ * in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Names group of related headers. See the axis attribute definition in
+ * HTML 4.01.
+ */
+ public String getAxis();
+ /**
+ * Names group of related headers. See the axis attribute definition in
+ * HTML 4.01.
+ */
+ public void setAxis(String axis);
+
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Number of columns spanned by cell. See the colspan attribute definition
+ * in HTML 4.01.
+ */
+ public int getColSpan();
+ /**
+ * Number of columns spanned by cell. See the colspan attribute definition
+ * in HTML 4.01.
+ */
+ public void setColSpan(int colSpan);
+
+ /**
+ * List of id attribute values for header cells. See the
+ * headers attribute definition in HTML 4.01.
+ */
+ public String getHeaders();
+ /**
+ * List of id attribute values for header cells. See the
+ * headers attribute definition in HTML 4.01.
+ */
+ public void setHeaders(String headers);
+
+ /**
+ * Cell height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Cell height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * Suppress word wrapping. See the nowrap attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getNoWrap();
+ /**
+ * Suppress word wrapping. See the nowrap attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setNoWrap(boolean noWrap);
+
+ /**
+ * Number of rows spanned by cell. See the rowspan attribute definition in
+ * HTML 4.01.
+ */
+ public int getRowSpan();
+ /**
+ * Number of rows spanned by cell. See the rowspan attribute definition in
+ * HTML 4.01.
+ */
+ public void setRowSpan(int rowSpan);
+
+ /**
+ * Scope covered by header cells. See the scope attribute definition in
+ * HTML 4.01.
+ */
+ public String getScope();
+ /**
+ * Scope covered by header cells. See the scope attribute definition in
+ * HTML 4.01.
+ */
+ public void setScope(String scope);
+
+ /**
+ * Vertical alignment of data in cell. See the valign attribute definition
+ * in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data in cell. See the valign attribute definition
+ * in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Cell width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Cell width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java
new file mode 100644
index 00000000000..85a42ddd2bb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Regroups the COL and COLGROUP elements. See the
+ * COL element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableColElement extends HTMLElement {
+ /**
+ * Horizontal alignment of cell data in column. See the align attribute
+ * definition in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of cell data in column. See the align attribute
+ * definition in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Indicates the number of columns in a group or affected by a grouping.
+ * See the span attribute definition in HTML 4.01.
+ */
+ public int getSpan();
+ /**
+ * Indicates the number of columns in a group or affected by a grouping.
+ * See the span attribute definition in HTML 4.01.
+ */
+ public void setSpan(int span);
+
+ /**
+ * Vertical alignment of cell data in column. See the valign attribute
+ * definition in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of cell data in column. See the valign attribute
+ * definition in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Default column width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Default column width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java
new file mode 100644
index 00000000000..d36b19cfa78
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The create* and delete* methods on the table allow authors to construct and
+ * modify tables. [HTML 4.01] specifies that only one of each of the
+ * CAPTION, THEAD, and TFOOT elements
+ * may exist in a table. Therefore, if one exists, and the createTHead() or
+ * createTFoot() method is called, the method returns the existing THead or
+ * TFoot element. See the TABLE element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableElement extends HTMLElement {
+ /**
+ * Returns the table's CAPTION, or void if none exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableCaptionElement getCaption();
+ /**
+ * Returns the table's CAPTION, or void if none exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a CAPTION.
+ * @version DOM Level 2
+ */
+ public void setCaption(HTMLTableCaptionElement caption)
+ throws DOMException;
+
+ /**
+ * Returns the table's THEAD, or null if none
+ * exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableSectionElement getTHead();
+ /**
+ * Returns the table's THEAD, or null if none
+ * exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a THEAD.
+ * @version DOM Level 2
+ */
+ public void setTHead(HTMLTableSectionElement tHead)
+ throws DOMException;
+
+ /**
+ * Returns the table's TFOOT, or null if none
+ * exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableSectionElement getTFoot();
+ /**
+ * Returns the table's TFOOT, or null if none
+ * exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a TFOOT.
+ * @version DOM Level 2
+ */
+ public void setTFoot(HTMLTableSectionElement tFoot)
+ throws DOMException;
+
+ /**
+ * Returns a collection of all the rows in the table, including all in
+ * THEAD, TFOOT, all TBODY
+ * elements.
+ */
+ public HTMLCollection getRows();
+
+ /**
+ * Returns a collection of the table bodies (including implicit ones).
+ */
+ public HTMLCollection getTBodies();
+
+ /**
+ * Specifies the table's position with respect to the rest of the
+ * document. See the align attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Specifies the table's position with respect to the rest of the
+ * document. See the align attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * The width of the border around the table. See the border attribute
+ * definition in HTML 4.01.
+ */
+ public String getBorder();
+ /**
+ * The width of the border around the table. See the border attribute
+ * definition in HTML 4.01.
+ */
+ public void setBorder(String border);
+
+ /**
+ * Specifies the horizontal and vertical space between cell content and
+ * cell borders. See the cellpadding attribute definition in HTML 4.01.
+ */
+ public String getCellPadding();
+ /**
+ * Specifies the horizontal and vertical space between cell content and
+ * cell borders. See the cellpadding attribute definition in HTML 4.01.
+ */
+ public void setCellPadding(String cellPadding);
+
+ /**
+ * Specifies the horizontal and vertical separation between cells. See the
+ * cellspacing attribute definition in HTML 4.01.
+ */
+ public String getCellSpacing();
+ /**
+ * Specifies the horizontal and vertical separation between cells. See the
+ * cellspacing attribute definition in HTML 4.01.
+ */
+ public void setCellSpacing(String cellSpacing);
+
+ /**
+ * Specifies which external table borders to render. See the frame
+ * attribute definition in HTML 4.01.
+ */
+ public String getFrame();
+ /**
+ * Specifies which external table borders to render. See the frame
+ * attribute definition in HTML 4.01.
+ */
+ public void setFrame(String frame);
+
+ /**
+ * Specifies which internal table borders to render. See the rules
+ * attribute definition in HTML 4.01.
+ */
+ public String getRules();
+ /**
+ * Specifies which internal table borders to render. See the rules
+ * attribute definition in HTML 4.01.
+ */
+ public void setRules(String rules);
+
+ /**
+ * Description about the purpose or structure of a table. See the summary
+ * attribute definition in HTML 4.01.
+ */
+ public String getSummary();
+ /**
+ * Description about the purpose or structure of a table. See the summary
+ * attribute definition in HTML 4.01.
+ */
+ public void setSummary(String summary);
+
+ /**
+ * Specifies the desired table width. See the width attribute definition
+ * in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Specifies the desired table width. See the width attribute definition
+ * in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * Create a table header row or return an existing one.
+ * @return A new table header element (THEAD).
+ */
+ public HTMLElement createTHead();
+
+ /**
+ * Delete the header from the table, if one exists.
+ */
+ public void deleteTHead();
+
+ /**
+ * Create a table footer row or return an existing one.
+ * @return A footer element (TFOOT).
+ */
+ public HTMLElement createTFoot();
+
+ /**
+ * Delete the footer from the table, if one exists.
+ */
+ public void deleteTFoot();
+
+ /**
+ * Create a new table caption object or return an existing one.
+ * @return A CAPTION element.
+ */
+ public HTMLElement createCaption();
+
+ /**
+ * Delete the table caption, if one exists.
+ */
+ public void deleteCaption();
+
+ /**
+ * Insert a new empty row in the table. The new row is inserted
+ * immediately before and in the same section as the current
+ * indexth row in the table. If index is -1 or
+ * equal to the number of rows, the new row is appended. In addition,
+ * when the table is empty the row is inserted into a TBODY
+ * which is created and inserted into the table.A table row cannot be
+ * empty according to [HTML 4.01].
+ * @param index The row number where to insert a new row. This index
+ * starts from 0 and is relative to the logical order (not document
+ * order) of all the rows contained inside the table.
+ * @return The newly created row.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than the
+ * number of rows or if the index is a negative number other than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertRow(int index)
+ throws DOMException;
+
+ /**
+ * Delete a table row.
+ * @param index The index of the row to be deleted. This index starts
+ * from 0 and is relative to the logical order (not document order) of
+ * all the rows contained inside the table. If the index is -1 the
+ * last row in the table is deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than or
+ * equal to the number of rows or if the index is a negative number
+ * other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteRow(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java
new file mode 100644
index 00000000000..9f4fbf96c67
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * A row in a table. See the TR element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableRowElement extends HTMLElement {
+ /**
+ * This is in logical order and not in document order. The
+ * rowIndex does take into account sections (
+ * THEAD, TFOOT, or TBODY) within
+ * the table, placing THEAD rows first in the index,
+ * followed by TBODY rows, followed by TFOOT
+ * rows.
+ * @version DOM Level 2
+ */
+ public int getRowIndex();
+
+ /**
+ * The index of this row, relative to the current section (
+ * THEAD, TFOOT, or TBODY),
+ * starting from 0.
+ * @version DOM Level 2
+ */
+ public int getSectionRowIndex();
+
+ /**
+ * The collection of cells in this row.
+ * @version DOM Level 2
+ */
+ public HTMLCollection getCells();
+
+ /**
+ * Horizontal alignment of data within cells of this row. See the align
+ * attribute definition in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data within cells of this row. See the align
+ * attribute definition in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Background color for rows. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Background color for rows. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Vertical alignment of data within cells of this row. See the valign
+ * attribute definition in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data within cells of this row. See the valign
+ * attribute definition in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Insert an empty TD cell into this row. If
+ * index is -1 or equal to the number of cells, the new
+ * cell is appended.
+ * @param index The place to insert the cell, starting from 0.
+ * @return The newly created cell.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater
+ * than the number of cells or if the index is a negative number other
+ * than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertCell(int index)
+ throws DOMException;
+
+ /**
+ * Delete a cell from the current row.
+ * @param index The index of the cell to delete, starting from 0. If the
+ * index is -1 the last cell in the row is deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater
+ * than or equal to the number of cells or if the index is a negative
+ * number other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteCell(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java
new file mode 100644
index 00000000000..5aa6ce4402d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The THEAD, TFOOT, and TBODY
+ * elements.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTableSectionElement extends HTMLElement {
+ /**
+ * Horizontal alignment of data in cells. See the align
+ * attribute for HTMLTheadElement for details.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data in cells. See the align
+ * attribute for HTMLTheadElement for details.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Vertical alignment of data in cells. See the valign
+ * attribute for HTMLTheadElement for details.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data in cells. See the valign
+ * attribute for HTMLTheadElement for details.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * The collection of rows in this table section.
+ */
+ public HTMLCollection getRows();
+
+ /**
+ * Insert a row into this section. The new row is inserted immediately
+ * before the current indexth row in this section. If
+ * index is -1 or equal to the number of rows in this
+ * section, the new row is appended.
+ * @param index The row number where to insert a new row. This index
+ * starts from 0 and is relative only to the rows contained inside
+ * this section, not all the rows in the table.
+ * @return The newly created row.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than the
+ * number of rows of if the index is a negative number other than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertRow(int index)
+ throws DOMException;
+
+ /**
+ * Delete a row from this section.
+ * @param index The index of the row to be deleted, or -1 to delete the
+ * last row. This index starts from 0 and is relative only to the rows
+ * contained inside this section, not all the rows in the table.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than or
+ * equal to the number of rows or if the index is a negative number
+ * other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteRow(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java
new file mode 100644
index 00000000000..ed5c6c978d6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Multi-line text field. See the TEXTAREA element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLTextAreaElement extends HTMLElement {
+ /**
+ * Represents the contents of the element. The value of this attribute
+ * does not change if the contents of the corresponding form control, in
+ * an interactive user agent, changes.
+ * @version DOM Level 2
+ */
+ public String getDefaultValue();
+ /**
+ * Represents the contents of the element. The value of this attribute
+ * does not change if the contents of the corresponding form control, in
+ * an interactive user agent, changes.
+ * @version DOM Level 2
+ */
+ public void setDefaultValue(String defaultValue);
+
+ /**
+ * Returns the FORM element containing this control. Returns
+ * null if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Width of control (in characters). See the cols attribute definition in
+ * HTML 4.01.
+ */
+ public int getCols();
+ /**
+ * Width of control (in characters). See the cols attribute definition in
+ * HTML 4.01.
+ */
+ public void setCols(int cols);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * This control is read-only. See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public boolean getReadOnly();
+ /**
+ * This control is read-only. See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public void setReadOnly(boolean readOnly);
+
+ /**
+ * Number of text rows. See the rows attribute definition in HTML 4.01.
+ */
+ public int getRows();
+ /**
+ * Number of text rows. See the rows attribute definition in HTML 4.01.
+ */
+ public void setRows(int rows);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of this form control. This the string "textarea".
+ */
+ public String getType();
+
+ /**
+ * Represents the current contents of the corresponding form control, in
+ * an interactive user agent. Changing this attribute changes the
+ * contents of the form control, but does not change the contents of the
+ * element. If the entirety of the data can not fit into a single
+ * DOMString, the implementation may truncate the data.
+ */
+ public String getValue();
+ /**
+ * Represents the current contents of the corresponding form control, in
+ * an interactive user agent. Changing this attribute changes the
+ * contents of the form control, but does not change the contents of the
+ * element. If the entirety of the data can not fit into a single
+ * DOMString, the implementation may truncate the data.
+ */
+ public void setValue(String value);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+ /**
+ * Select the contents of the TEXTAREA.
+ */
+ public void select();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java
new file mode 100644
index 00000000000..67122bb0a71
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The document title. See the TITLE element definition in HTML 4.01.
+ *
See also the Document Object Model (DOM) Level 2 HTML Specification. + */ +public interface HTMLTitleElement extends HTMLElement { + /** + * The specified title as a string. + */ + public String getText(); + /** + * The specified title as a string. + */ + public void setText(String text); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java new file mode 100644 index 00000000000..61ccb322f45 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2003 World Wide Web Consortium, + * (Massachusetts Institute of Technology, Institut National de + * Recherche en Informatique et en Automatique, Keio University). All + * Rights Reserved. This program is distributed under the W3C's Software + * Intellectual Property License. This program is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. + * See W3C License http://www.w3.org/Consortium/Legal/ for more details. + */ + +package org.w3c.dom.html2; + +/** + * Unordered list. See the UL element definition in HTML 4.01. + *
See also the Document Object Model (DOM) Level 2 HTML Specification.
+ */
+public interface HTMLUListElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+ /**
+ * Bullet style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Bullet style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java
new file mode 100644
index 00000000000..c94fc8e4651
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * DOMImplementationLS contains the factory methods for creating
+ * Load and Save objects.
+ *
The expectation is that an instance of the
+ * DOMImplementationLS interface can be obtained by using
+ * binding-specific casting methods on an instance of the
+ * DOMImplementation interface or, if the Document
+ * supports the feature "Core" version "3.0"
+ * defined in [DOM Level 3 Core]
+ * , by using the method DOMImplementation.getFeature with
+ * parameter values "LS" (or "LS-Async") and
+ * "3.0" (respectively).
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface DOMImplementationLS {
+ // DOMImplementationLSMode
+ /**
+ * Create a synchronous LSParser.
+ */
+ public static final short MODE_SYNCHRONOUS = 1;
+ /**
+ * Create an asynchronous LSParser.
+ */
+ public static final short MODE_ASYNCHRONOUS = 2;
+
+ /**
+ * Create a new LSParser. The newly constructed parser may
+ * then be configured by means of its DOMConfiguration
+ * object, and used to parse documents by means of its parse
+ * method.
+ * @param mode The mode argument is either
+ * MODE_SYNCHRONOUS or MODE_ASYNCHRONOUS, if
+ * mode is MODE_SYNCHRONOUS then the
+ * LSParser that is created will operate in synchronous
+ * mode, if it's MODE_ASYNCHRONOUS then the
+ * LSParser that is created will operate in asynchronous
+ * mode.
+ * @param schemaType An absolute URI representing the type of the schema
+ * language used during the load of a Document using the
+ * newly created LSParser. Note that no lexical checking
+ * is done on the absolute URI. In order to create a
+ * LSParser for any kind of schema types (i.e. the
+ * LSParser will be free to use any schema found), use the value
+ * null.
+ *
Note: For W3C XML Schema [XML Schema Part 1]
+ * , applications must use the value
+ * "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0],
+ * applications must use the value
+ * "http://www.w3.org/TR/REC-xml". Other Schema languages
+ * are outside the scope of the W3C and therefore should recommend an
+ * absolute URI in order to use this method.
+ * @return The newly created LSParser object. This
+ * LSParser is either synchronous or asynchronous
+ * depending on the value of the mode argument.
+ *
Note: By default, the newly created LSParser
+ * does not contain a DOMErrorHandler, i.e. the value of
+ * the "
+ * error-handler" configuration parameter is null. However, implementations
+ * may provide a default error handler at creation time. In that case,
+ * the initial value of the "error-handler" configuration
+ * parameter on the new LSParser object contains a
+ * reference to the default error handler.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the requested mode or schema type is
+ * not supported.
+ */
+ public LSParser createLSParser(short mode,
+ String schemaType)
+ throws DOMException;
+
+ /**
+ * Create a new LSSerializer object.
+ * @return The newly created LSSerializer object.
+ *
Note: By default, the newly created
+ * LSSerializer has no DOMErrorHandler, i.e.
+ * the value of the "error-handler" configuration
+ * parameter is null. However, implementations may
+ * provide a default error handler at creation time. In that case, the
+ * initial value of the "error-handler" configuration
+ * parameter on the new LSSerializer object contains a
+ * reference to the default error handler.
+ */
+ public LSSerializer createLSSerializer();
+
+ /**
+ * Create a new empty input source object where
+ * LSInput.characterStream, LSInput.byteStream
+ * , LSInput.stringData LSInput.systemId,
+ * LSInput.publicId, LSInput.baseURI, and
+ * LSInput.encoding are null, and
+ * LSInput.certifiedText is false.
+ * @return The newly created input object.
+ */
+ public LSInput createLSInput();
+
+ /**
+ * Create a new empty output destination object where
+ * LSOutput.characterStream,
+ * LSOutput.byteStream, LSOutput.systemId,
+ * LSOutput.encoding are null.
+ * @return The newly created output object.
+ */
+ public LSOutput createLSOutput();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java
new file mode 100644
index 00000000000..65a83f0ded1
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * Parser or write operations may throw an LSException if the
+ * processing is stopped. The processing can be stopped due to a
+ * DOMError with a severity of
+ * DOMError.SEVERITY_FATAL_ERROR or a non recovered
+ * DOMError.SEVERITY_ERROR, or if
+ * DOMErrorHandler.handleError() returned false.
+ *
Note: As suggested in the definition of the constants in the
+ * DOMError interface, a DOM implementation may choose to
+ * continue after a fatal error, but the resulting DOM tree is then
+ * implementation dependent.
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public class LSException extends RuntimeException {
+ public LSException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // LSExceptionCode
+ /**
+ * If an attempt was made to load a document, or an XML Fragment, using
+ * LSParser and the processing has been stopped.
+ */
+ public static final short PARSE_ERR = 81;
+ /**
+ * If an attempt was made to serialize a Node using
+ * LSSerializer and the processing has been stopped.
+ */
+ public static final short SERIALIZE_ERR = 82;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java
new file mode 100644
index 00000000000..862bf7703b7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * This interface represents an input source for data.
+ *
This interface allows an application to encapsulate information about + * an input source in a single object, which may include a public + * identifier, a system identifier, a byte stream (possibly with a specified + * encoding), a base URI, and/or a character stream. + *
The exact definitions of a byte stream and a character stream are + * binding dependent. + *
The application is expected to provide objects that implement this
+ * interface whenever such objects are needed. The application can either
+ * provide its own objects that implement this interface, or it can use the
+ * generic factory method DOMImplementationLS.createLSInput()
+ * to create objects that implement this interface.
+ *
The LSParser will use the LSInput object to
+ * determine how to read data. The LSParser will look at the
+ * different inputs specified in the LSInput in the following
+ * order to know which one to read from, the first one that is not null and
+ * not an empty string will be used:
+ *
LSInput.characterStream
+ * LSInput.byteStream
+ * LSInput.stringData
+ * LSInput.systemId
+ * LSInput.publicId
+ * If all inputs are null, the LSParser will report a
+ * DOMError with its DOMError.type set to
+ * "no-input-specified" and its DOMError.severity
+ * set to DOMError.SEVERITY_FATAL_ERROR.
+ *
LSInput objects belong to the application. The DOM
+ * implementation will never modify them (though it may make copies and
+ * modify the copies, if necessary).
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSInput {
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of 16-bit units. The application must encode the stream
+ * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when
+ * using character streams. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public java.io.Reader getCharacterStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of 16-bit units. The application must encode the stream
+ * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when
+ * using character streams. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public void setCharacterStream(java.io.Reader characterStream);
+
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of bytes.
+ *
If the application knows the character encoding of the byte
+ * stream, it should set the encoding attribute. Setting the encoding in
+ * this way will override any encoding specified in an XML declaration
+ * in the data.
+ */
+ public java.io.InputStream getByteStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of bytes.
+ *
If the application knows the character encoding of the byte
+ * stream, it should set the encoding attribute. Setting the encoding in
+ * this way will override any encoding specified in an XML declaration
+ * in the data.
+ */
+ public void setByteStream(java.io.InputStream byteStream);
+
+ /**
+ * String data to parse. If provided, this will always be treated as a
+ * sequence of 16-bit units (UTF-16 encoded characters). It is not a
+ * requirement to have an XML declaration when using
+ * stringData. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public String getStringData();
+ /**
+ * String data to parse. If provided, this will always be treated as a
+ * sequence of 16-bit units (UTF-16 encoded characters). It is not a
+ * requirement to have an XML declaration when using
+ * stringData. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public void setStringData(String stringData);
+
+ /**
+ * The system identifier, a URI reference [IETF RFC 2396], for this
+ * input source. The system identifier is optional if there is a byte
+ * stream, a character stream, or string data. It is still useful to
+ * provide one, since the application will use it to resolve any
+ * relative URIs and can include it in error messages and warnings. (The
+ * LSParser will only attempt to fetch the resource identified by the
+ * URI reference if there is no other input available in the input
+ * source.)
+ *
If the application knows the character encoding of the object
+ * pointed to by the system identifier, it can set the encoding using
+ * the encoding attribute.
+ *
If the specified system ID is a relative URI reference (see
+ * section 5 in [IETF RFC 2396]), the DOM
+ * implementation will attempt to resolve the relative URI with the
+ * baseURI as the base, if that fails, the behavior is
+ * implementation dependent.
+ */
+ public String getSystemId();
+ /**
+ * The system identifier, a URI reference [IETF RFC 2396], for this
+ * input source. The system identifier is optional if there is a byte
+ * stream, a character stream, or string data. It is still useful to
+ * provide one, since the application will use it to resolve any
+ * relative URIs and can include it in error messages and warnings. (The
+ * LSParser will only attempt to fetch the resource identified by the
+ * URI reference if there is no other input available in the input
+ * source.)
+ *
If the application knows the character encoding of the object
+ * pointed to by the system identifier, it can set the encoding using
+ * the encoding attribute.
+ *
If the specified system ID is a relative URI reference (see
+ * section 5 in [IETF RFC 2396]), the DOM
+ * implementation will attempt to resolve the relative URI with the
+ * baseURI as the base, if that fails, the behavior is
+ * implementation dependent.
+ */
+ public void setSystemId(String systemId);
+
+ /**
+ * The public identifier for this input source. This may be mapped to an
+ * input source using an implementation dependent mechanism (such as
+ * catalogues or other mappings). The public identifier, if specified,
+ * may also be reported as part of the location information when errors
+ * are reported.
+ */
+ public String getPublicId();
+ /**
+ * The public identifier for this input source. This may be mapped to an
+ * input source using an implementation dependent mechanism (such as
+ * catalogues or other mappings). The public identifier, if specified,
+ * may also be reported as part of the location information when errors
+ * are reported.
+ */
+ public void setPublicId(String publicId);
+
+ /**
+ * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for
+ * resolving a relative systemId to an absolute URI.
+ *
If, when used, the base URI is itself a relative URI, an empty
+ * string, or null, the behavior is implementation dependent.
+ */
+ public String getBaseURI();
+ /**
+ * The base URI to be used (see section 5.1.4 in [IETF RFC 2396]) for
+ * resolving a relative systemId to an absolute URI.
+ *
If, when used, the base URI is itself a relative URI, an empty
+ * string, or null, the behavior is implementation dependent.
+ */
+ public void setBaseURI(String baseURI);
+
+ /**
+ * The character encoding, if known. The encoding must be a string
+ * acceptable for an XML encoding declaration ([XML 1.0] section
+ * 4.3.3 "Character Encoding in Entities").
+ *
This attribute has no effect when the application provides a
+ * character stream or string data. For other sources of input, an
+ * encoding specified by means of this attribute will override any
+ * encoding specified in the XML declaration or the Text declaration, or
+ * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616].
+ */
+ public String getEncoding();
+ /**
+ * The character encoding, if known. The encoding must be a string
+ * acceptable for an XML encoding declaration ([XML 1.0] section
+ * 4.3.3 "Character Encoding in Entities").
+ *
This attribute has no effect when the application provides a
+ * character stream or string data. For other sources of input, an
+ * encoding specified by means of this attribute will override any
+ * encoding specified in the XML declaration or the Text declaration, or
+ * an encoding obtained from a higher level protocol, such as HTTP [IETF RFC 2616].
+ */
+ public void setEncoding(String encoding);
+
+ /**
+ * If set to true, assume that the input is certified (see section 2.13
+ * in [XML 1.1]) when
+ * parsing [XML 1.1].
+ */
+ public boolean getCertifiedText();
+ /**
+ * If set to true, assume that the input is certified (see section 2.13
+ * in [XML 1.1]) when
+ * parsing [XML 1.1].
+ */
+ public void setCertifiedText(boolean certifiedText);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java
new file mode 100644
index 00000000000..601a5be11b7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.events.Event;
+
+/**
+ * This interface represents a load event object that signals the completion
+ * of a document load.
+ *
See also the Document Object Model (DOM) Level 3 Load +and Save Specification. + */ +public interface LSLoadEvent extends Event { + /** + * The document that finished loading. + */ + public Document getNewDocument(); + + /** + * The input source that was parsed. + */ + public LSInput getInput(); + +} diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java new file mode 100644 index 00000000000..2f8675c571e --- /dev/null +++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2004 World Wide Web Consortium, + * + * (Massachusetts Institute of Technology, European Research Consortium for + * Informatics and Mathematics, Keio University). All Rights Reserved. This + * work is distributed under the W3C(r) Software License [1] in the hope that + * it will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + */ + +package org.w3c.dom.ls; + +/** + * This interface represents an output destination for data. + *
This interface allows an application to encapsulate information about + * an output destination in a single object, which may include a URI, a byte + * stream (possibly with a specified encoding), a base URI, and/or a + * character stream. + *
The exact definitions of a byte stream and a character stream are + * binding dependent. + *
The application is expected to provide objects that implement this
+ * interface whenever such objects are needed. The application can either
+ * provide its own objects that implement this interface, or it can use the
+ * generic factory method DOMImplementationLS.createLSOutput()
+ * to create objects that implement this interface.
+ *
The LSSerializer will use the LSOutput object
+ * to determine where to serialize the output to. The
+ * LSSerializer will look at the different outputs specified in
+ * the LSOutput in the following order to know which one to
+ * output to, the first one that is not null and not an empty string will be
+ * used:
+ *
LSOutput.characterStream
+ * LSOutput.byteStream
+ * LSOutput.systemId
+ * LSOutput objects belong to the application. The DOM
+ * implementation will never modify them (though it may make copies and
+ * modify the copies, if necessary).
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSOutput {
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream to which 16-bit units can be output.
+ */
+ public java.io.Writer getCharacterStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream to which 16-bit units can be output.
+ */
+ public void setCharacterStream(java.io.Writer characterStream);
+
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream of bytes.
+ */
+ public java.io.OutputStream getByteStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream of bytes.
+ */
+ public void setByteStream(java.io.OutputStream byteStream);
+
+ /**
+ * The system identifier, a URI reference [IETF RFC 2396], for this
+ * output destination.
+ *
If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the
+ * behavior is implementation dependent.
+ */
+ public String getSystemId();
+ /**
+ * The system identifier, a URI reference [IETF RFC 2396], for this
+ * output destination.
+ *
If the system ID is a relative URI reference (see section 5 in [IETF RFC 2396]), the
+ * behavior is implementation dependent.
+ */
+ public void setSystemId(String systemId);
+
+ /**
+ * The character encoding to use for the output. The encoding must be a
+ * string acceptable for an XML encoding declaration ([XML 1.0] section
+ * 4.3.3 "Character Encoding in Entities"), it is recommended that
+ * character encodings registered (as charsets) with the Internet
+ * Assigned Numbers Authority [IANA-CHARSETS]
+ * should be referred to using their registered names.
+ */
+ public String getEncoding();
+ /**
+ * The character encoding to use for the output. The encoding must be a
+ * string acceptable for an XML encoding declaration ([XML 1.0] section
+ * 4.3.3 "Character Encoding in Entities"), it is recommended that
+ * character encodings registered (as charsets) with the Internet
+ * Assigned Numbers Authority [IANA-CHARSETS]
+ * should be referred to using their registered names.
+ */
+ public void setEncoding(String encoding);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java
new file mode 100644
index 00000000000..ee918e0dce7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java
@@ -0,0 +1,466 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * An interface to an object that is able to build, or augment, a DOM tree
+ * from various input sources.
+ *
LSParser provides an API for parsing XML and building the
+ * corresponding DOM document structure. A LSParser instance
+ * can be obtained by invoking the
+ * DOMImplementationLS.createLSParser() method.
+ *
As specified in [DOM Level 3 Core] + * , when a document is first made available via the LSParser: + *
value and
+ * nodeValue attributes of an Attr node initially
+ * return the XML 1.0
+ * normalized value. However, if the parameters "
+ * validate-if-schema" and "
+ * datatype-normalization" are set to true, depending on the attribute normalization
+ * used, the attribute values may differ from the ones obtained by the XML
+ * 1.0 attribute normalization. If the parameters "
+ * datatype-normalization" is set to false, the XML 1.0 attribute normalization is
+ * guaranteed to occur, and if the attributes list does not contain
+ * namespace declarations, the attributes attribute on
+ * Element node represents the property [attributes] defined in [XML Information Set]
+ * .
+ * Asynchronous LSParser objects are expected to also
+ * implement the events::EventTarget interface so that event
+ * listeners can be registered on asynchronous LSParser
+ * objects.
+ *
Events supported by asynchronous LSParser objects are:
+ *
LSParser finishes to load the document. See also the
+ * definition of the LSLoadEvent interface. LSParser signals progress as data is parsed. This
+ * specification does not attempt to define exactly when progress events
+ * should be dispatched. That is intentionally left as
+ * implementation-dependent. Here is one example of how an application might
+ * dispatch progress events: Once the parser starts receiving data, a
+ * progress event is dispatched to indicate that the parsing starts. From
+ * there on, a progress event is dispatched for every 4096 bytes of data
+ * that is received and processed. This is only one example, though, and
+ * implementations can choose to dispatch progress events at any time while
+ * parsing, or not dispatch them at all. See also the definition of the
+ * LSProgressEvent interface. Note: All events defined in this specification use the
+ * namespace URI "http://www.w3.org/2002/DOMLS".
+ *
While parsing an input source, errors are reported to the application
+ * through the error handler (LSParser.domConfig's "
+ * error-handler" parameter). This specification does in no way try to define all possible
+ * errors that can occur while parsing XML, or any other markup, but some
+ * common error cases are defined. The types (DOMError.type) of
+ * errors and warnings defined by this specification are:
+ *
"check-character-normalization-failure" [error] "doctype-not-allowed" [fatal]true
+ * and a doctype is encountered. "no-input-specified" [fatal]LSInput object. "pi-base-uri-not-preserved" [warning]false and the following XML file is parsed:
+ * + * <!DOCTYPE root [ <!ENTITY e SYSTEM 'subdir/myentity.ent' ]> + * <root> &e; </root>+ * And
subdir/myentity.ent
+ * contains:
+ * <one> <two/> </one> <?pi 3.14159?> + * <more/>+ *
"unbound-prefix-in-entity" [warning]true and an unbound namespace prefix is
+ * encountered in an entity's replacement text. Raising this warning is not
+ * enforced since some existing parsers may not recognize unbound namespace
+ * prefixes in the replacement text of entities. "unknown-character-denormalization" [fatal]false and a character is encountered for which the
+ * processor cannot determine the normalization properties. "unsupported-encoding" [fatal]"unsupported-media-type" [fatal]true and an unsupported media type is encountered. In addition to raising the defined errors and warnings, implementations + * are expected to raise implementation specific errors and warnings for any + * other error and warning cases such as IO errors (file not found, + * permission denied,...), XML well-formedness errors, and so on. + *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSParser {
+ /**
+ * The DOMConfiguration object used when parsing an input
+ * source. This DOMConfiguration is specific to the parse
+ * operation. No parameter values from this DOMConfiguration
+ * object are passed automatically to the DOMConfiguration
+ * object on the Document that is created, or used, by the
+ * parse operation. The DOM application is responsible for passing any
+ * needed parameter values from this DOMConfiguration
+ * object to the DOMConfiguration object referenced by the
+ * Document object.
+ *
In addition to the parameters recognized in on the
+ * DOMConfiguration interface defined in [DOM Level 3 Core]
+ * , the DOMConfiguration objects for LSParser
+ * add or modify the following parameters:
+ *
"charset-overrides-xml-encoding"trueLSInput overrides
+ * any encoding from the protocol. false"disallow-doctype"truefalse"ignore-unknown-character-denormalizations"truefalse"infoset"DOMConfiguration for a description of
+ * this parameter. Unlike in [DOM Level 3 Core]
+ * , this parameter will default to true for
+ * LSParser. "namespaces"truefalse"resource-resolver"LSResourceResolver object, or null. If
+ * the value of this parameter is not null when an external resource
+ * (such as an external XML entity or an XML schema location) is
+ * encountered, the implementation will request that the
+ * LSResourceResolver referenced in this parameter resolves
+ * the resource. "supported-media-types-only"truefalse"validate"DOMConfiguration for a description of this parameter.
+ * Unlike in [DOM Level 3 Core]
+ * , the processing of the internal subset is always accomplished, even
+ * if this parameter is set to false. "validate-if-schema"DOMConfiguration for a description of this parameter.
+ * Unlike in [DOM Level 3 Core]
+ * , the processing of the internal subset is always accomplished, even
+ * if this parameter is set to false. "well-formed"DOMConfiguration for a description of this parameter.
+ * Unlike in [DOM Level 3 Core]
+ * , this parameter cannot be set to false. DOMConfiguration parameters have been applied. For
+ * example, if "
+ * validate" is set to true, the validation is done before invoking the
+ * filter.
+ */
+ public LSParserFilter getFilter();
+ /**
+ * When a filter is provided, the implementation will call out to the
+ * filter as it is constructing the DOM tree structure. The filter can
+ * choose to remove elements from the document being constructed, or to
+ * terminate the parsing early.
+ * DOMConfiguration parameters have been applied. For
+ * example, if "
+ * validate" is set to true, the validation is done before invoking the
+ * filter.
+ */
+ public void setFilter(LSParserFilter filter);
+
+ /**
+ * true if the LSParser is asynchronous,
+ * false if it is synchronous.
+ */
+ public boolean getAsync();
+
+ /**
+ * true if the LSParser is currently busy
+ * loading a document, otherwise false.
+ */
+ public boolean getBusy();
+
+ /**
+ * Parse an XML document from a resource identified by a
+ * LSInput.
+ * @param input The LSInput from which the source of the
+ * document is to be read.
+ * @return If the LSParser is a synchronous
+ * LSParser, the newly created and populated
+ * Document is returned. If the LSParser is
+ * asynchronous, null is returned since the document
+ * object may not yet be constructed when this method returns.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if the LSParser's
+ * LSParser.busy attribute is true.
+ * @exception LSException
+ * PARSE_ERR: Raised if the LSParser was unable to load
+ * the XML document. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public Document parse(LSInput input)
+ throws DOMException, LSException;
+
+ /**
+ * Parse an XML document from a location identified by a URI reference [IETF RFC 2396]. If the URI
+ * contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the
+ * behavior is not defined by this specification, future versions of
+ * this specification may define the behavior.
+ * @param uri The location of the XML document to be read.
+ * @return If the LSParser is a synchronous
+ * LSParser, the newly created and populated
+ * Document is returned, or null if an error
+ * occured. If the LSParser is asynchronous,
+ * null is returned since the document object may not yet
+ * be constructed when this method returns.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if the LSParser.busy
+ * attribute is true.
+ * @exception LSException
+ * PARSE_ERR: Raised if the LSParser was unable to load
+ * the XML document. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public Document parseURI(String uri)
+ throws DOMException, LSException;
+
+ // ACTION_TYPES
+ /**
+ * Append the result of the parse operation as children of the context
+ * node. For this action to work, the context node must be an
+ * Element or a DocumentFragment.
+ */
+ public static final short ACTION_APPEND_AS_CHILDREN = 1;
+ /**
+ * Replace all the children of the context node with the result of the
+ * parse operation. For this action to work, the context node must be an
+ * Element, a Document, or a
+ * DocumentFragment.
+ */
+ public static final short ACTION_REPLACE_CHILDREN = 2;
+ /**
+ * Insert the result of the parse operation as the immediately preceding
+ * sibling of the context node. For this action to work the context
+ * node's parent must be an Element or a
+ * DocumentFragment.
+ */
+ public static final short ACTION_INSERT_BEFORE = 3;
+ /**
+ * Insert the result of the parse operation as the immediately following
+ * sibling of the context node. For this action to work the context
+ * node's parent must be an Element or a
+ * DocumentFragment.
+ */
+ public static final short ACTION_INSERT_AFTER = 4;
+ /**
+ * Replace the context node with the result of the parse operation. For
+ * this action to work, the context node must have a parent, and the
+ * parent must be an Element or a
+ * DocumentFragment.
+ */
+ public static final short ACTION_REPLACE = 5;
+
+ /**
+ * Parse an XML fragment from a resource identified by a
+ * LSInput and insert the content into an existing document
+ * at the position specified with the context and
+ * action arguments. When parsing the input stream, the
+ * context node (or its parent, depending on where the result will be
+ * inserted) is used for resolving unbound namespace prefixes. The
+ * context node's ownerDocument node (or the node itself if
+ * the node of type DOCUMENT_NODE) is used to resolve
+ * default attributes and entity references.
+ * Document node and the action
+ * is ACTION_REPLACE_CHILDREN, then the document that is
+ * passed as the context node will be changed such that its
+ * xmlEncoding, documentURI,
+ * xmlVersion, inputEncoding,
+ * xmlStandalone, and all other such attributes are set to
+ * what they would be set to if the input source was parsed using
+ * LSParser.parse().
+ * LSParser is asynchronous (LSParser.async is
+ * true).
+ * ErrorHandler instance associated with the "
+ * error-handler" parameter of the DOMConfiguration.
+ * parseWithContext, the values of the
+ * following configuration parameters will be ignored and their default
+ * values will always be used instead: "
+ * validate", "
+ * validate-if-schema", and "
+ * element-content-whitespace". Other parameters will be treated normally, and the parser is expected
+ * to call the LSParserFilter just as if a whole document
+ * was parsed.
+ * @param input The LSInput from which the source document
+ * is to be read. The source document must be an XML fragment, i.e.
+ * anything except a complete XML document (except in the case where
+ * the context node of type DOCUMENT_NODE, and the action
+ * is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal
+ * subset), entity declaration(s), notation declaration(s), or XML or
+ * text declaration(s).
+ * @param contextArg The node that is used as the context for the data
+ * that is being parsed. This node must be a Document
+ * node, a DocumentFragment node, or a node of a type
+ * that is allowed as a child of an Element node, e.g. it
+ * cannot be an Attribute node.
+ * @param action This parameter describes which action should be taken
+ * between the new set of nodes being inserted and the existing
+ * children of the context node. The set of possible actions is
+ * defined in ACTION_TYPES above.
+ * @return Return the node that is the result of the parse operation. If
+ * the result is more than one top-level node, the first one is
+ * returned.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be
+ * inserted before, after, or as a child of the context node (see also
+ * Node.insertBefore or Node.replaceChild in [DOM Level 3 Core]
+ * ).
+ * LSParser doesn't
+ * support this method, or if the context node is of type
+ * Document and the DOM implementation doesn't support
+ * the replacement of the DocumentType child or
+ * Element child.
+ * LSParser.busy
+ * attribute is true.
+ * @exception LSException
+ * PARSE_ERR: Raised if the LSParser was unable to load
+ * the XML fragment. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public Node parseWithContext(LSInput input,
+ Node contextArg,
+ short action)
+ throws DOMException, LSException;
+
+ /**
+ * Abort the loading of the document that is currently being loaded by
+ * the LSParser. If the LSParser is currently
+ * not busy, a call to this method does nothing.
+ */
+ public void abort();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java
new file mode 100644
index 00000000000..4e612945e95
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.Element;
+
+/**
+ * LSParserFilters provide applications the ability to examine
+ * nodes as they are being constructed while parsing. As each node is
+ * examined, it may be modified or removed, or the entire parse may be
+ * terminated early.
+ * At the time any of the filter methods are called by the parser, the
+ * owner Document and DOMImplementation objects exist and are accessible.
+ * The document element is never passed to the LSParserFilter
+ * methods, i.e. it is not possible to filter out the document element.
+ * Document, DocumentType, Notation,
+ * Entity, and Attr nodes are never passed to the
+ * acceptNode method on the filter. The child nodes of an
+ * EntityReference node are passed to the filter if the
+ * parameter "
+ * entities" is set to false. Note that, as described by the parameter "
+ * entities", unexpanded entity reference nodes are never discarded and are always
+ * passed to the filter.
+ *
All validity checking while parsing a document occurs on the source + * document as it appears on the input stream, not on the DOM document as it + * is built in memory. With filters, the document in memory may be a subset + * of the document on the stream, and its validity may have been affected by + * the filtering. + *
All default attributes must be present on elements when the elements + * are passed to the filter methods. All other default content must be + * passed to the filter methods. + *
DOM applications must not raise exceptions in a filter. The effect of + * throwing exceptions from a filter is DOM implementation dependent. + *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSParserFilter {
+ // Constants returned by startElement and acceptNode
+ /**
+ * Accept the node.
+ */
+ public static final short FILTER_ACCEPT = 1;
+ /**
+ * Reject the node and its children.
+ */
+ public static final short FILTER_REJECT = 2;
+ /**
+ * Skip this single node. The children of this node will still be
+ * considered.
+ */
+ public static final short FILTER_SKIP = 3;
+ /**
+ * Interrupt the normal processing of the document.
+ */
+ public static final short FILTER_INTERRUPT = 4;
+
+ /**
+ * The parser will call this method after each Element start
+ * tag has been scanned, but before the remainder of the
+ * Element is processed. The intent is to allow the
+ * element, including any children, to be efficiently skipped. Note that
+ * only element nodes are passed to the startElement
+ * function.
+ *
The element node passed to startElement for filtering
+ * will include all of the Element's attributes, but none of the
+ * children nodes. The Element may not yet be in place in the document
+ * being constructed (it may not have a parent node.)
+ *
A startElement filter function may access or change
+ * the attributes for the Element. Changing Namespace declarations will
+ * have no effect on namespace resolution by the parser.
+ *
For efficiency, the Element node passed to the filter may not be
+ * the same one as is actually placed in the tree if the node is
+ * accepted. And the actual node (node object identity) may be reused
+ * during the process of reading in and filtering a document.
+ * @param elementArg The newly encountered element. At the time this
+ * method is called, the element is incomplete - it will have its
+ * attributes, but no children.
+ * @return
+ *
FILTER_ACCEPT if the Element should
+ * be included in the DOM document being built.
+ * FILTER_REJECT if the Element and all of
+ * its children should be rejected.
+ * FILTER_SKIP if the
+ * Element should be skipped. All of its children are
+ * inserted in place of the skipped Element node.
+ * FILTER_INTERRUPT if the filter wants to stop the
+ * processing of the document. Interrupting the processing of the
+ * document does no longer guarantee that the resulting DOM tree is
+ * XML well-formed. The Element is rejected.
+ * FILTER_ACCEPT if this Node should
+ * be included in the DOM document being built.
+ * FILTER_REJECT if the Node and all of its
+ * children should be rejected.
+ * FILTER_SKIP if the
+ * Node should be skipped and the Node
+ * should be replaced by all the children of the Node.
+ * FILTER_INTERRUPT if the filter wants to stop the
+ * processing of the document. Interrupting the processing of the
+ * document does no longer guarantee that the resulting DOM tree is
+ * XML well-formed. The Node is accepted and will be the
+ * last completely parsed node.
+ * LSParser what types of nodes to show to the
+ * method LSParserFilter.acceptNode. If a node is not shown
+ * to the filter using this attribute, it is automatically included in
+ * the DOM document being built. See NodeFilter for
+ * definition of the constants. The constants SHOW_ATTRIBUTE
+ * , SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE,
+ * SHOW_NOTATION, SHOW_ENTITY, and
+ * SHOW_DOCUMENT_FRAGMENT are meaningless here. Those nodes
+ * will never be passed to LSParserFilter.acceptNode.
+ * Event interface defined in [DOM Level 3 Events]
+ * .
+ * The units used for the attributes position and
+ * totalSize are not specified and can be implementation and
+ * input dependent.
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSProgressEvent extends Event {
+ /**
+ * The input source that is being parsed.
+ */
+ public LSInput getInput();
+
+ /**
+ * The current position in the input source, including all external
+ * entities and other resources that have been read.
+ */
+ public int getPosition();
+
+ /**
+ * The total size of the document including all external resources, this
+ * number might change as a document is being parsed if references to
+ * more external resources are seen. A value of 0 is
+ * returned if the total size cannot be determined or estimated.
+ */
+ public int getTotalSize();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java
new file mode 100644
index 00000000000..c0c523c8a00
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * LSResourceResolver provides a way for applications to
+ * redirect references to external resources.
+ *
Applications needing to implement custom handling for external
+ * resources can implement this interface and register their implementation
+ * by setting the "resource-resolver" parameter of
+ * DOMConfiguration objects attached to LSParser
+ * and LSSerializer. It can also be register on
+ * DOMConfiguration objects attached to Document
+ * if the "LS" feature is supported.
+ *
The LSParser will then allow the application to intercept
+ * any external entities, including the external DTD subset and external
+ * parameter entities, before including them. The top-level document entity
+ * is never passed to the resolveResource method.
+ *
Many DOM applications will not need to implement this interface, but it + * will be especially useful for applications that build XML documents from + * databases or other specialized input sources, or for applications that + * use URNs. + *
Note: LSResourceResolver is based on the SAX2 [SAX] EntityResolver
+ * interface.
+ *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSResourceResolver {
+ /**
+ * Allow the application to resolve external resources.
+ *
The LSParser will call this method before opening any
+ * external resource, including the external DTD subset, external
+ * entities referenced within the DTD, and external entities referenced
+ * within the document element (however, the top-level document entity
+ * is not passed to this method). The application may then request that
+ * the LSParser resolve the external resource itself, that
+ * it use an alternative URI, or that it use an entirely different input
+ * source.
+ *
Application writers can use this method to redirect external
+ * system identifiers to secure and/or local URI, to look up public
+ * identifiers in a catalogue, or to read an entity from a database or
+ * other input source (including, for example, a dialog box).
+ * @param type The type of the resource being resolved. For XML [XML 1.0] resources
+ * (i.e. entities), applications must use the value
+ * "http://www.w3.org/TR/REC-xml". For XML Schema [XML Schema Part 1]
+ * , applications must use the value
+ * "http://www.w3.org/2001/XMLSchema". Other types of
+ * resources are outside the scope of this specification and therefore
+ * should recommend an absolute URI in order to use this method.
+ * @param namespaceURI The namespace of the resource being resolved,
+ * e.g. the target namespace of the XML Schema [XML Schema Part 1]
+ * when resolving XML Schema resources.
+ * @param publicId The public identifier of the external entity being
+ * referenced, or null if no public identifier was
+ * supplied or if the resource is not an entity.
+ * @param systemId The system identifier, a URI reference [IETF RFC 2396], of the
+ * external resource being referenced, or null if no
+ * system identifier was supplied.
+ * @param baseURI The absolute base URI of the resource being parsed, or
+ * null if there is no base URI.
+ * @return A LSInput object describing the new input
+ * source, or null to request that the parser open a
+ * regular URI connection to the resource.
+ */
+ public LSInput resolveResource(String type,
+ String namespaceURI,
+ String publicId,
+ String systemId,
+ String baseURI);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java
new file mode 100644
index 00000000000..e7b6350d304
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java
@@ -0,0 +1,436 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * A LSSerializer provides an API for serializing (writing) a
+ * DOM document out into XML. The XML data is written to a string or an
+ * output stream. Any changes or fixups made during the serialization affect
+ * only the serialized data. The Document object and its
+ * children are never altered by the serialization operation.
+ *
During serialization of XML data, namespace fixup is done as defined in [DOM Level 3 Core]
+ * , Appendix B. [DOM Level 2 Core]
+ * allows empty strings as a real namespace URI. If the
+ * namespaceURI of a Node is empty string, the
+ * serialization will treat them as null, ignoring the prefix
+ * if any.
+ *
LSSerializer accepts any node type for serialization. For
+ * nodes of type Document or Entity, well-formed
+ * XML will be created when possible (well-formedness is guaranteed if the
+ * document or entity comes from a parse operation and is unchanged since it
+ * was created). The serialized output for these node types is either as a
+ * XML document or an External XML Entity, respectively, and is acceptable
+ * input for an XML parser. For all other types of nodes the serialized form
+ * is implementation dependent.
+ *
Within a Document, DocumentFragment, or
+ * Entity being serialized, Nodes are processed as
+ * follows
+ *
Document nodes are written, including the XML
+ * declaration (unless the parameter "xml-declaration" is set to
+ * false) and a DTD subset, if one exists in the DOM. Writing a
+ * Document node serializes the entire document.
+ * Entity nodes, when written directly by
+ * LSSerializer.write, outputs the entity expansion but no
+ * namespace fixup is done. The resulting output will be valid as an
+ * external entity.
+ * true, EntityReference nodes are
+ * serialized as an entity reference of the form "
+ * &entityName;" in the output. Child nodes (the expansion)
+ * of the entity reference are ignored. If the parameter "
+ * entities" is set to false, only the children of the entity reference
+ * are serialized. EntityReference nodes with no children (no
+ * corresponding Entity node or the corresponding
+ * Entity nodes have no children) are always serialized.
+ * CDATAsections containing content characters that cannot be
+ * represented in the specified output encoding are handled according to the
+ * "
+ * split-cdata-sections" parameter. If the parameter is set to true,
+ * CDATAsections are split, and the unrepresentable characters
+ * are serialized as numeric character references in ordinary content. The
+ * exact position and number of splits is not specified. If the parameter
+ * is set to false, unrepresentable characters in a
+ * CDATAsection are reported as
+ * "wf-invalid-character" errors if the parameter "
+ * well-formed" is set to true. The error is not recoverable - there is no
+ * mechanism for supplying alternative characters and continuing with the
+ * serialization.
+ * DocumentFragment nodes are serialized by
+ * serializing the children of the document fragment in the order they
+ * appear in the document fragment.
+ * Note: The serialization of a Node does not always
+ * generate a well-formed XML document, i.e. a LSParser might
+ * throw fatal errors when parsing the resulting serialization.
+ *
Within the character data of a document (outside of markup), any + * characters that cannot be represented directly are replaced with + * character references. Occurrences of '<' and '&' are replaced by + * the predefined entities < and &. The other predefined + * entities (>, ', and ") might not be used, except + * where needed (e.g. using > in cases such as ']]>'). Any + * characters that cannot be represented directly in the output character + * encoding are serialized as numeric character references (and since + * character encoding standards commonly use hexadecimal representations of + * characters, using the hexadecimal representation when serializing + * character references is encouraged). + *
To allow attribute values to contain both single and double quotes, the + * apostrophe or single-quote character (') may be represented as + * "'", and the double-quote character (") as """. New + * line characters and other characters that cannot be represented directly + * in attribute values in the output character encoding are serialized as a + * numeric character reference. + *
Within markup, but outside of attributes, any occurrence of a character
+ * that cannot be represented in the output character encoding is reported
+ * as a DOMError fatal error. An example would be serializing
+ * the element <LaCa\u00f1ada/> with encoding="us-ascii".
+ * This will result with a generation of a DOMError
+ * "wf-invalid-character-in-node-name" (as proposed in "
+ * well-formed").
+ *
When requested by setting the parameter "
+ * normalize-characters" on LSSerializer to true, character normalization is
+ * performed according to the definition of fully
+ * normalized characters included in appendix E of [XML 1.1] on all
+ * data to be serialized, both markup and character data. The character
+ * normalization process affects only the data as it is being written; it
+ * does not alter the DOM's view of the document after serialization has
+ * completed.
+ *
Implementations are required to support the encodings "UTF-8",
+ * "UTF-16", "UTF-16BE", and "UTF-16LE" to guarantee that data is
+ * serializable in all encodings that are required to be supported by all
+ * XML parsers. When the encoding is UTF-8, whether or not a byte order mark
+ * is serialized, or if the output is big-endian or little-endian, is
+ * implementation dependent. When the encoding is UTF-16, whether or not the
+ * output is big-endian or little-endian is implementation dependent, but a
+ * Byte Order Mark must be generated for non-character outputs, such as
+ * LSOutput.byteStream or LSOutput.systemId. If
+ * the Byte Order Mark is not generated, a "byte-order-mark-needed" warning
+ * is reported. When the encoding is UTF-16LE or UTF-16BE, the output is
+ * big-endian (UTF-16BE) or little-endian (UTF-16LE) and the Byte Order Mark
+ * is not be generated. In all cases, the encoding declaration, if
+ * generated, will correspond to the encoding used during the serialization
+ * (e.g. encoding="UTF-16" will appear if UTF-16 was
+ * requested).
+ *
Namespaces are fixed up during serialization, the serialization process + * will verify that namespace declarations, namespace prefixes and the + * namespace URI associated with elements and attributes are consistent. If + * inconsistencies are found, the serialized form of the document will be + * altered to remove them. The method used for doing the namespace fixup + * while serializing a document is the algorithm defined in Appendix B.1, + * "Namespace normalization", of [DOM Level 3 Core] + * . + *
While serializing a document, the parameter "discard-default-content" + * controls whether or not non-specified data is serialized. + *
While serializing, errors and warnings are reported to the application
+ * through the error handler (LSSerializer.domConfig's "
+ * error-handler" parameter). This specification does in no way try to define all possible
+ * errors and warnings that can occur while serializing a DOM node, but some
+ * common error and warning cases are defined. The types (
+ * DOMError.type) of errors and warnings defined by this
+ * specification are:
+ *
"no-output-specified" [fatal]LSOutput if no output is specified in the
+ * LSOutput. "unbound-prefix-in-entity-reference" [fatal] true and an entity whose replacement text
+ * contains unbound namespace prefixes is referenced in a location where
+ * there are no bindings for the namespace prefixes. "unsupported-encoding" [fatal]In addition to raising the defined errors and warnings, implementations + * are expected to raise implementation specific errors and warnings for any + * other error and warning cases such as IO errors (file not found, + * permission denied,...) and so on. + *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSSerializer {
+ /**
+ * The DOMConfiguration object used by the
+ * LSSerializer when serializing a DOM node.
+ *
In addition to the parameters recognized by the
+ * DOMConfiguration interface defined in [DOM Level 3 Core]
+ * , the DOMConfiguration objects for
+ * LSSerializer adds, or modifies, the following
+ * parameters:
+ *
"canonical-form"truetrue will set the parameters
+ * "format-pretty-print", "discard-default-content", and "xml-declaration
+ * ", to false. Setting one of those parameters to
+ * true will set this parameter to false.
+ * Serializing an XML 1.1 document when "canonical-form" is
+ * true will generate a fatal error. false"discard-default-content"trueAttr.specified attribute to decide what attributes
+ * should be discarded. Note that some implementations might use
+ * whatever information available to the implementation (i.e. XML
+ * schema, DTD, the Attr.specified attribute, and so on) to
+ * determine what attributes and content to discard if this parameter is
+ * set to true. false"format-pretty-print"truefalse"ignore-unknown-character-denormalizations" true"unknown-character-denormalization" warning (instead of
+ * raising an error, if this parameter is not set) and ignore any
+ * possible denormalizations caused by these characters. false"normalize-characters"DOMConfiguration in [DOM Level 3 Core]
+ * . Unlike in the Core, the default value for this parameter is
+ * true. While DOM implementations are not required to
+ * support fully
+ * normalizing the characters in the document according to appendix E of [XML 1.1], this
+ * parameter must be activated by default if supported. "xml-declaration"trueDocument, Element, or Entity
+ * node is serialized, the XML declaration, or text declaration, should
+ * be included. The version (Document.xmlVersion if the
+ * document is a Level 3 document and the version is non-null, otherwise
+ * use the value "1.0"), and the output encoding (see
+ * LSSerializer.write for details on how to find the output
+ * encoding) are specified in the serialized XML declaration. false"xml-declaration-needed" warning if this will cause
+ * problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an
+ * encoding would be needed to be able to re-parse the serialized data). null will reset its
+ * value to the default value.
+ * null will reset its
+ * value to the default value.
+ * DOMConfiguration parameters have been applied. For
+ * example, CDATA sections won't be passed to the filter if "
+ * cdata-sections" is set to false.
+ */
+ public LSSerializerFilter getFilter();
+ /**
+ * When the application provides a filter, the serializer will call out
+ * to the filter before serializing each Node. The filter implementation
+ * can choose to remove the node from the stream or to terminate the
+ * serialization early.
+ * DOMConfiguration parameters have been applied. For
+ * example, CDATA sections won't be passed to the filter if "
+ * cdata-sections" is set to false.
+ */
+ public void setFilter(LSSerializerFilter filter);
+
+ /**
+ * Serialize the specified node as described above in the general
+ * description of the LSSerializer interface. The output is
+ * written to the supplied LSOutput.
+ * LSOutput, the encoding is found by
+ * looking at the encoding information that is reachable through the
+ * LSOutput and the item to be written (or its owner
+ * document) in this order:
+ * LSOutput.encoding,
+ * Document.inputEncoding,
+ * Document.xmlEncoding.
+ * LSOutput, a
+ * "no-output-specified" fatal error is raised.
+ * true if node was
+ * successfully serialized. Return false in case the
+ * normal processing stopped but the implementation kept serializing
+ * the document; the result of the serialization being implementation
+ * dependent then.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the LSSerializer was unable to
+ * serialize the node. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public boolean write(Node nodeArg,
+ LSOutput destination)
+ throws LSException;
+
+ /**
+ * A convenience method that acts as if LSSerializer.write
+ * was called with a LSOutput with no encoding specified
+ * and LSOutput.systemId set to the uri
+ * argument.
+ * @param nodeArg The node to serialize.
+ * @param uri The URI to write to.
+ * @return Returns true if node was
+ * successfully serialized. Return false in case the
+ * normal processing stopped but the implementation kept serializing
+ * the document; the result of the serialization being implementation
+ * dependent then.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the LSSerializer was unable to
+ * serialize the node. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public boolean writeToURI(Node nodeArg,
+ String uri)
+ throws LSException;
+
+ /**
+ * Serialize the specified node as described above in the general
+ * description of the LSSerializer interface. The output is
+ * written to a DOMString that is returned to the caller.
+ * The encoding used is the encoding of the DOMString type,
+ * i.e. UTF-16. Note that no Byte Order Mark is generated in a
+ * DOMString object.
+ * @param nodeArg The node to serialize.
+ * @return Returns the serialized data.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to
+ * fit in a DOMString.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the LSSerializer was unable to
+ * serialize the node. DOM applications should attach a
+ * DOMErrorHandler using the parameter "
+ * error-handler" if they wish to get details on the error.
+ */
+ public String writeToString(Node nodeArg)
+ throws DOMException, LSException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java
new file mode 100644
index 00000000000..049459c6417
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.traversal.NodeFilter;
+
+/**
+ * LSSerializerFilters provide applications the ability to
+ * examine nodes as they are being serialized and decide what nodes should
+ * be serialized or not. The LSSerializerFilter interface is
+ * based on the NodeFilter interface defined in [DOM Level 2 Traversal and Range]
+ * .
+ * Document, DocumentType,
+ * DocumentFragment, Notation, Entity
+ * , and children of Attr nodes are not passed to the filter.
+ * The child nodes of an EntityReference node are only passed
+ * to the filter if the EntityReference node is skipped by the
+ * method LSParserFilter.acceptNode().
+ *
When serializing an Element, the element is passed to the
+ * filter before any of its attributes are passed to the filter. Namespace
+ * declaration attributes, and default attributes (except in the case when "
+ * discard-default-content" is set to false), are never passed
+ * to the filter.
+ *
The result of any attempt to modify a node passed to a
+ * LSSerializerFilter is implementation dependent.
+ *
DOM applications must not raise exceptions in a filter. The effect of + * throwing exceptions from a filter is DOM implementation dependent. + *
For efficiency, a node passed to the filter may not be the same as the + * one that is actually in the tree. And the actual node (node object + * identity) may be reused during the process of filtering and serializing a + * document. + *
See also the Document Object Model (DOM) Level 3 Load
+and Save Specification.
+ */
+public interface LSSerializerFilter extends NodeFilter {
+ /**
+ * Tells the LSSerializer what types of nodes to show to the
+ * filter. If a node is not shown to the filter using this attribute, it
+ * is automatically serialized. See NodeFilter for
+ * definition of the constants. The constants SHOW_DOCUMENT
+ * , SHOW_DOCUMENT_TYPE, SHOW_DOCUMENT_FRAGMENT
+ * , SHOW_NOTATION, and SHOW_ENTITY are
+ * meaningless here, such nodes will never be passed to a
+ * LSSerializerFilter.
+ *
Unlike [DOM Level 2 Traversal and Range]
+ * , the SHOW_ATTRIBUTE constant indicates that the
+ * Attr nodes are shown and passed to the filter.
+ *
The constants used here are defined in [DOM Level 2 Traversal and Range]
+ * .
+ */
+ public int getWhatToShow();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java
new file mode 100644
index 00000000000..6b522670e20
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.ranges;
+
+/**
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentRange {
+ /**
+ * This interface can be obtained from the object implementing the
+ * Document interface using binding-specific casting
+ * methods.
+ * @return The initial state of the Range returned from this method is
+ * such that both of its boundary-points are positioned at the
+ * beginning of the corresponding Document, before any content. The
+ * Range returned can only be used to select content associated with
+ * this Document, or with DocumentFragments and Attrs for which this
+ * Document is the ownerDocument.
+ */
+ public Range createRange();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java
new file mode 100644
index 00000000000..a576b4dd642
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java
@@ -0,0 +1,416 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.ranges;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.DocumentFragment;
+
+/**
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface Range {
+ /**
+ * Node within which the Range begins
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public Node getStartContainer()
+ throws DOMException;
+
+ /**
+ * Offset within the starting node of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public int getStartOffset()
+ throws DOMException;
+
+ /**
+ * Node within which the Range ends
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public Node getEndContainer()
+ throws DOMException;
+
+ /**
+ * Offset within the ending node of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public int getEndOffset()
+ throws DOMException;
+
+ /**
+ * TRUE if the Range is collapsed
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public boolean getCollapsed()
+ throws DOMException;
+
+ /**
+ * The deepest common ancestor container of the Range's two
+ * boundary-points.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public Node getCommonAncestorContainer()
+ throws DOMException;
+
+ /**
+ * Sets the attributes describing the start of the Range.
+ * @param refNode The refNode value. This parameter must be
+ * different from null.
+ * @param offset The startOffset value.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor
+ * of refNode is an Entity, Notation, or DocumentType
+ * node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if offset is negative or greater
+ * than the number of child units in refNode. Child units
+ * are 16-bit units if refNode is a type of CharacterData
+ * node (e.g., a Text or Comment node) or a ProcessingInstruction
+ * node. Child units are Nodes in all other cases.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setStart(Node refNode,
+ int offset)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the attributes describing the end of a Range.
+ * @param refNode The refNode value. This parameter must be
+ * different from null.
+ * @param offset The endOffset value.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor
+ * of refNode is an Entity, Notation, or DocumentType
+ * node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if offset is negative or greater
+ * than the number of child units in refNode. Child units
+ * are 16-bit units if refNode is a type of CharacterData
+ * node (e.g., a Text or Comment node) or a ProcessingInstruction
+ * node. Child units are Nodes in all other cases.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setEnd(Node refNode,
+ int offset)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the start position to be before a node
+ * @param refNode Range starts before refNode
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * refNode is not an Attr, Document, or DocumentFragment
+ * node or if refNode is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setStartBefore(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the start position to be after a node
+ * @param refNode Range starts after refNode
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * refNode is not an Attr, Document, or DocumentFragment
+ * node or if refNode is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setStartAfter(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the end position to be before a node.
+ * @param refNode Range ends before refNode
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * refNode is not an Attr, Document, or DocumentFragment
+ * node or if refNode is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setEndBefore(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the end of a Range to be after a node
+ * @param refNode Range ends after refNode.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * refNode is not an Attr, Document or DocumentFragment
+ * node or if refNode is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void setEndAfter(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Collapse a Range onto one of its boundary-points
+ * @param toStart If TRUE, collapses the Range onto its start; if FALSE,
+ * collapses it onto its end.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public void collapse(boolean toStart)
+ throws DOMException;
+
+ /**
+ * Select a node and its contents
+ * @param refNode The node to select.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if an ancestor of refNode
+ * is an Entity, Notation or DocumentType node or if
+ * refNode is a Document, DocumentFragment, Attr, Entity,
+ * or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void selectNode(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Select the contents within a node
+ * @param refNode Node to select from
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor
+ * of refNode is an Entity, Notation or DocumentType node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ *
WRONG_DOCUMENT_ERR: Raised if refNode was created
+ * from a different document than the one that created this range.
+ */
+ public void selectNodeContents(Node refNode)
+ throws RangeException, DOMException;
+
+ // CompareHow
+ /**
+ * Compare start boundary-point of sourceRange to start
+ * boundary-point of Range on which compareBoundaryPoints
+ * is invoked.
+ */
+ public static final short START_TO_START = 0;
+ /**
+ * Compare start boundary-point of sourceRange to end
+ * boundary-point of Range on which compareBoundaryPoints
+ * is invoked.
+ */
+ public static final short START_TO_END = 1;
+ /**
+ * Compare end boundary-point of sourceRange to end
+ * boundary-point of Range on which compareBoundaryPoints
+ * is invoked.
+ */
+ public static final short END_TO_END = 2;
+ /**
+ * Compare end boundary-point of sourceRange to start
+ * boundary-point of Range on which compareBoundaryPoints
+ * is invoked.
+ */
+ public static final short END_TO_START = 3;
+
+ /**
+ * Compare the boundary-points of two Ranges in a document.
+ * @param how A code representing the type of comparison, as defined
+ * above.
+ * @param sourceRange The Range on which this current
+ * Range is compared to.
+ * @return -1, 0 or 1 depending on whether the corresponding
+ * boundary-point of the Range is respectively before, equal to, or
+ * after the corresponding boundary-point of sourceRange.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same
+ * Document or DocumentFragment.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ */
+ public short compareBoundaryPoints(short how,
+ Range sourceRange)
+ throws DOMException;
+
+ /**
+ * Removes the contents of a Range from the containing document or
+ * document fragment without returning a reference to the removed
+ * content.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+ * the Range is read-only or any of the nodes that contain any of the
+ * content of the Range are read-only.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ */
+ public void deleteContents()
+ throws DOMException;
+
+ /**
+ * Moves the contents of a Range from the containing document or document
+ * fragment to a new DocumentFragment.
+ * @return A DocumentFragment containing the extracted contents.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+ * the Range is read-only or any of the nodes which contain any of the
+ * content of the Range are read-only.
+ *
HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
+ * extracted into the new DocumentFragment.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ */
+ public DocumentFragment extractContents()
+ throws DOMException;
+
+ /**
+ * Duplicates the contents of a Range
+ * @return A DocumentFragment that contains content equivalent to this
+ * Range.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
+ * extracted into the new DocumentFragment.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ */
+ public DocumentFragment cloneContents()
+ throws DOMException;
+
+ /**
+ * Inserts a node into the Document or DocumentFragment at the start of
+ * the Range. If the container is a Text node, this will be split at the
+ * start of the Range (as if the Text node's splitText method was
+ * performed at the insertion point) and the insertion will occur
+ * between the two resulting Text nodes. Adjacent Text nodes will not be
+ * automatically merged. If the node to be inserted is a
+ * DocumentFragment node, the children will be inserted rather than the
+ * DocumentFragment node itself.
+ * @param newNode The node to insert at the start of the Range
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the
+ * start of the Range is read-only.
+ *
WRONG_DOCUMENT_ERR: Raised if newNode and the
+ * container of the start of the Range were not created from the same
+ * document.
+ *
HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+ * the Range is of a type that does not allow children of the type of
+ * newNode or if newNode is an ancestor of
+ * the container.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if newNode is an Attr,
+ * Entity, Notation, or Document node.
+ */
+ public void insertNode(Node newNode)
+ throws DOMException, RangeException;
+
+ /**
+ * Reparents the contents of the Range to the given node and inserts the
+ * node at the position of the start of the Range.
+ * @param newParent The node to surround the contents with.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of
+ * either boundary-point of the Range is read-only.
+ *
WRONG_DOCUMENT_ERR: Raised if newParent and the
+ * container of the start of the Range were not created from the same
+ * document.
+ *
HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+ * the Range is of a type that does not allow children of the type of
+ * newParent or if newParent is an ancestor
+ * of the container or if node would end up with a child
+ * node of a type not allowed by the type of node.
+ *
INVALID_STATE_ERR: Raised if detach() has already
+ * been invoked on this object.
+ * @exception RangeException
+ * BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a
+ * non-text node.
+ *
INVALID_NODE_TYPE_ERR: Raised if node is an Attr,
+ * Entity, DocumentType, Notation, Document, or DocumentFragment node.
+ */
+ public void surroundContents(Node newParent)
+ throws DOMException, RangeException;
+
+ /**
+ * Produces a new Range whose boundary-points are equal to the
+ * boundary-points of the Range.
+ * @return The duplicated Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public Range cloneRange()
+ throws DOMException;
+
+ /**
+ * Returns the contents of a Range as a string. This string contains only
+ * the data characters, not any markup.
+ * @return The contents of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public String toString()
+ throws DOMException;
+
+ /**
+ * Called to indicate that the Range is no longer in use and that the
+ * implementation may relinquish any resources associated with this
+ * Range. Subsequent calls to any methods or attribute getters on this
+ * Range will result in a DOMException being thrown with an
+ * error code of INVALID_STATE_ERR.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if detach() has already been
+ * invoked on this object.
+ */
+ public void detach()
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java
new file mode 100644
index 00000000000..551008e5dba
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.ranges;
+
+/**
+ * Range operations may throw a RangeException as specified in
+ * their method descriptions.
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public class RangeException extends RuntimeException {
+ public RangeException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // RangeExceptionCode
+ /**
+ * If the boundary-points of a Range do not meet specific requirements.
+ */
+ public static final short BAD_BOUNDARYPOINTS_ERR = 1;
+ /**
+ * If the container of an boundary-point of a Range is being set to either
+ * a node of an invalid type or a node with an ancestor of an invalid
+ * type.
+ */
+ public static final short INVALID_NODE_TYPE_ERR = 2;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java
new file mode 100644
index 00000000000..612a561135a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The DocumentStyle interface provides a mechanism by which the
+ * style sheets embedded in a document can be retrieved. The expectation is
+ * that an instance of the DocumentStyle interface can be
+ * obtained by using binding-specific casting methods on an instance of the
+ * Document interface.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentStyle {
+ /**
+ * A list containing all the style sheets explicitly linked into or
+ * embedded in a document. For HTML documents, this includes external
+ * style sheets, included via the HTML LINK element, and inline STYLE
+ * elements. In XML, this includes external style sheets, included via
+ * style sheet processing instructions (see [XML StyleSheet]).
+ */
+ public StyleSheetList getStyleSheets();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java
new file mode 100644
index 00000000000..481bd19dbab
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The LinkStyle interface provides a mechanism by which a style
+ * sheet can be retrieved from the node responsible for linking it into a
+ * document. An instance of the LinkStyle interface can be
+ * obtained using binding-specific casting methods on an instance of a
+ * linking node (HTMLLinkElement, HTMLStyleElement
+ * or ProcessingInstruction in DOM Level 2).
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface LinkStyle {
+ /**
+ * The style sheet.
+ */
+ public StyleSheet getSheet();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java
new file mode 100644
index 00000000000..f83d5f13d62
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The MediaList interface provides the abstraction of an
+ * ordered collection of media, without defining or constraining how this
+ * collection is implemented. An empty list is the same as a list that
+ * contains the medium "all".
+ *
The items in the MediaList are accessible via an integral
+ * index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface MediaList {
+ /**
+ * The parsable textual representation of the media list. This is a
+ * comma-separated list of media.
+ */
+ public String getMediaText();
+ /**
+ * The parsable textual representation of the media list. This is a
+ * comma-separated list of media.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified string value has a syntax error
+ * and is unparsable.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
+ * readonly.
+ */
+ public void setMediaText(String mediaText)
+ throws DOMException;
+
+ /**
+ * The number of media in the list. The range of valid media is
+ * 0 to length-1 inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Returns the indexth in the list. If index is
+ * greater than or equal to the number of media in the list, this
+ * returns null.
+ * @param index Index into the collection.
+ * @return The medium at the indexth position in the
+ * MediaList, or null if that is not a valid
+ * index.
+ */
+ public String item(int index);
+
+ /**
+ * Deletes the medium indicated by oldMedium from the list.
+ * @param oldMedium The medium to delete in the media list.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+ *
NOT_FOUND_ERR: Raised if oldMedium is not in the
+ * list.
+ */
+ public void deleteMedium(String oldMedium)
+ throws DOMException;
+
+ /**
+ * Adds the medium newMedium to the end of the list. If the
+ * newMedium is already used, it is first removed.
+ * @param newMedium The new medium to add.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: If the medium contains characters that are
+ * invalid in the underlying style language.
+ *
NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+ */
+ public void appendMedium(String newMedium)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java
new file mode 100644
index 00000000000..3da43076994
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.Node;
+
+/**
+ * The StyleSheet interface is the abstract base interface for
+ * any type of style sheet. It represents a single style sheet associated
+ * with a structured document. In HTML, the StyleSheet interface represents
+ * either an external style sheet, included via the HTML LINK element, or
+ * an inline STYLE element. In XML, this interface represents an external
+ * style sheet, included via a style sheet processing instruction.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface StyleSheet {
+ /**
+ * This specifies the style sheet language for this style sheet. The
+ * style sheet language is specified as a content type (e.g.
+ * "text/css"). The content type is often specified in the
+ * ownerNode. Also see the type attribute definition for
+ * the LINK element in HTML 4.0, and the type
+ * pseudo-attribute for the XML style sheet processing instruction.
+ */
+ public String getType();
+
+ /**
+ * false if the style sheet is applied to the document.
+ * true if it is not. Modifying this attribute may cause a
+ * new resolution of style for the document. A stylesheet only applies
+ * if both an appropriate medium definition is present and the disabled
+ * attribute is false. So, if the media doesn't apply to the current
+ * user agent, the disabled attribute is ignored.
+ */
+ public boolean getDisabled();
+ /**
+ * false if the style sheet is applied to the document.
+ * true if it is not. Modifying this attribute may cause a
+ * new resolution of style for the document. A stylesheet only applies
+ * if both an appropriate medium definition is present and the disabled
+ * attribute is false. So, if the media doesn't apply to the current
+ * user agent, the disabled attribute is ignored.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * The node that associates this style sheet with the document. For HTML,
+ * this may be the corresponding LINK or STYLE
+ * element. For XML, it may be the linking processing instruction. For
+ * style sheets that are included by other style sheets, the value of
+ * this attribute is null.
+ */
+ public Node getOwnerNode();
+
+ /**
+ * For style sheet languages that support the concept of style sheet
+ * inclusion, this attribute represents the including style sheet, if
+ * one exists. If the style sheet is a top-level style sheet, or the
+ * style sheet language does not support inclusion, the value of this
+ * attribute is null.
+ */
+ public StyleSheet getParentStyleSheet();
+
+ /**
+ * If the style sheet is a linked style sheet, the value of its attribute
+ * is its location. For inline style sheets, the value of this attribute
+ * is null. See the href attribute definition for the
+ * LINK element in HTML 4.0, and the href pseudo-attribute
+ * for the XML style sheet processing instruction.
+ */
+ public String getHref();
+
+ /**
+ * The advisory title. The title is often specified in the
+ * ownerNode. See the title attribute definition for the
+ * LINK element in HTML 4.0, and the title pseudo-attribute
+ * for the XML style sheet processing instruction.
+ */
+ public String getTitle();
+
+ /**
+ * The intended destination media for style information. The media is
+ * often specified in the ownerNode. If no media has been
+ * specified, the MediaList will be empty. See the media
+ * attribute definition for the LINK element in HTML 4.0,
+ * and the media pseudo-attribute for the XML style sheet processing
+ * instruction . Modifying the media list may cause a change to the
+ * attribute disabled.
+ */
+ public MediaList getMedia();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java
new file mode 100644
index 00000000000..b8f9a442330
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The StyleSheetList interface provides the abstraction of an
+ * ordered collection of style sheets.
+ *
The items in the StyleSheetList are accessible via an
+ * integral index, starting from 0.
+ *
See also the Document Object Model (DOM) Level 2 Style Specification.
+ * @since DOM Level 2
+ */
+public interface StyleSheetList {
+ /**
+ * The number of StyleSheets in the list. The range of valid
+ * child stylesheet indices is 0 to length-1
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a style sheet by ordinal index. If index is greater
+ * than or equal to the number of style sheets in the list, this returns
+ * null.
+ * @param index Index into the collection
+ * @return The style sheet at the index position in the
+ * StyleSheetList, or null if that is not a
+ * valid index.
+ */
+ public StyleSheet item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java
new file mode 100644
index 00000000000..bc45ad9f753
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * DocumentTraversal contains methods that create
+ * NodeIterators and TreeWalkers to traverse a
+ * node and its children in document order (depth first, pre-order
+ * traversal, which is equivalent to the order in which the start tags occur
+ * in the text representation of the document). In DOMs which support the
+ * Traversal feature, DocumentTraversal will be implemented by
+ * the same objects that implement the Document interface.
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentTraversal {
+ /**
+ * Create a new NodeIterator over the subtree rooted at the
+ * specified node.
+ * @param root The node which will be iterated together with its
+ * children. The NodeIterator is initially positioned
+ * just before this node. The whatToShow flags and the
+ * filter, if any, are not considered when setting this position. The
+ * root must not be null.
+ * @param whatToShow This flag specifies which node types may appear in
+ * the logical view of the tree presented by the
+ * NodeIterator. See the description of
+ * NodeFilter for the set of possible SHOW_
+ * values.These flags can be combined using OR.
+ * @param filter The NodeFilter to be used with this
+ * NodeIterator, or null to indicate no
+ * filter.
+ * @param entityReferenceExpansion The value of this flag determines
+ * whether entity reference nodes are expanded.
+ * @return The newly created NodeIterator.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the specified root is
+ * null.
+ */
+ public NodeIterator createNodeIterator(Node root,
+ int whatToShow,
+ NodeFilter filter,
+ boolean entityReferenceExpansion)
+ throws DOMException;
+
+ /**
+ * Create a new TreeWalker over the subtree rooted at the
+ * specified node.
+ * @param root The node which will serve as the root for the
+ * TreeWalker. The whatToShow flags and the
+ * NodeFilter are not considered when setting this value;
+ * any node type will be accepted as the root. The
+ * currentNode of the TreeWalker is
+ * initialized to this node, whether or not it is visible. The
+ * root functions as a stopping point for traversal
+ * methods that look upward in the document structure, such as
+ * parentNode and nextNode. The root must
+ * not be null.
+ * @param whatToShow This flag specifies which node types may appear in
+ * the logical view of the tree presented by the
+ * TreeWalker. See the description of
+ * NodeFilter for the set of possible SHOW_
+ * values.These flags can be combined using OR.
+ * @param filter The NodeFilter to be used with this
+ * TreeWalker, or null to indicate no filter.
+ * @param entityReferenceExpansion If this flag is false, the contents of
+ * EntityReference nodes are not presented in the logical
+ * view.
+ * @return The newly created TreeWalker.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the specified root is
+ * null.
+ */
+ public TreeWalker createTreeWalker(Node root,
+ int whatToShow,
+ NodeFilter filter,
+ boolean entityReferenceExpansion)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java
new file mode 100644
index 00000000000..b9beac476b3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+
+/**
+ * Filters are objects that know how to "filter out" nodes. If a
+ * NodeIterator or TreeWalker is given a
+ * NodeFilter, it applies the filter before it returns the next
+ * node. If the filter says to accept the node, the traversal logic returns
+ * it; otherwise, traversal looks for the next node and pretends that the
+ * node that was rejected was not there.
+ *
The DOM does not provide any filters. NodeFilter is just an
+ * interface that users can implement to provide their own filters.
+ *
NodeFilters do not need to know how to traverse from node
+ * to node, nor do they need to know anything about the data structure that
+ * is being traversed. This makes it very easy to write filters, since the
+ * only thing they have to know how to do is evaluate a single node. One
+ * filter may be used with a number of different kinds of traversals,
+ * encouraging code reuse.
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface NodeFilter {
+ // Constants returned by acceptNode
+ /**
+ * Accept the node. Navigation methods defined for
+ * NodeIterator or TreeWalker will return this
+ * node.
+ */
+ public static final short FILTER_ACCEPT = 1;
+ /**
+ * Reject the node. Navigation methods defined for
+ * NodeIterator or TreeWalker will not return
+ * this node. For TreeWalker, the children of this node
+ * will also be rejected. NodeIterators treat this as a
+ * synonym for FILTER_SKIP.
+ */
+ public static final short FILTER_REJECT = 2;
+ /**
+ * Skip this single node. Navigation methods defined for
+ * NodeIterator or TreeWalker will not return
+ * this node. For both NodeIterator and
+ * TreeWalker, the children of this node will still be
+ * considered.
+ */
+ public static final short FILTER_SKIP = 3;
+
+ // Constants for whatToShow
+ /**
+ * Show all Nodes.
+ */
+ public static final int SHOW_ALL = 0xFFFFFFFF;
+ /**
+ * Show Element nodes.
+ */
+ public static final int SHOW_ELEMENT = 0x00000001;
+ /**
+ * Show Attr nodes. This is meaningful only when creating an
+ * NodeIterator or TreeWalker with an
+ * attribute node as its root; in this case, it means that
+ * the attribute node will appear in the first position of the iteration
+ * or traversal. Since attributes are never children of other nodes,
+ * they do not appear when traversing over the document tree.
+ */
+ public static final int SHOW_ATTRIBUTE = 0x00000002;
+ /**
+ * Show Text nodes.
+ */
+ public static final int SHOW_TEXT = 0x00000004;
+ /**
+ * Show CDATASection nodes.
+ */
+ public static final int SHOW_CDATA_SECTION = 0x00000008;
+ /**
+ * Show EntityReference nodes.
+ */
+ public static final int SHOW_ENTITY_REFERENCE = 0x00000010;
+ /**
+ * Show Entity nodes. This is meaningful only when creating
+ * an NodeIterator or TreeWalker with an
+ * Entity node as its root; in this case, it
+ * means that the Entity node will appear in the first
+ * position of the traversal. Since entities are not part of the
+ * document tree, they do not appear when traversing over the document
+ * tree.
+ */
+ public static final int SHOW_ENTITY = 0x00000020;
+ /**
+ * Show ProcessingInstruction nodes.
+ */
+ public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+ /**
+ * Show Comment nodes.
+ */
+ public static final int SHOW_COMMENT = 0x00000080;
+ /**
+ * Show Document nodes.
+ */
+ public static final int SHOW_DOCUMENT = 0x00000100;
+ /**
+ * Show DocumentType nodes.
+ */
+ public static final int SHOW_DOCUMENT_TYPE = 0x00000200;
+ /**
+ * Show DocumentFragment nodes.
+ */
+ public static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+ /**
+ * Show Notation nodes. This is meaningful only when creating
+ * an NodeIterator or TreeWalker with a
+ * Notation node as its root; in this case, it
+ * means that the Notation node will appear in the first
+ * position of the traversal. Since notations are not part of the
+ * document tree, they do not appear when traversing over the document
+ * tree.
+ */
+ public static final int SHOW_NOTATION = 0x00000800;
+
+ /**
+ * Test whether a specified node is visible in the logical view of a
+ * TreeWalker or NodeIterator. This function
+ * will be called by the implementation of TreeWalker and
+ * NodeIterator; it is not normally called directly from
+ * user code. (Though you could do so if you wanted to use the same
+ * filter to guide your own application logic.)
+ * @param n The node to check to see if it passes the filter or not.
+ * @return A constant to determine whether the node is accepted,
+ * rejected, or skipped, as defined above.
+ */
+ public short acceptNode(Node n);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java
new file mode 100644
index 00000000000..d1f0d08399d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * NodeIterators are used to step through a set of nodes, e.g.
+ * the set of nodes in a NodeList, the document subtree
+ * governed by a particular Node, the results of a query, or
+ * any other set of nodes. The set of nodes to be iterated is determined by
+ * the implementation of the NodeIterator. DOM Level 2
+ * specifies a single NodeIterator implementation for
+ * document-order traversal of a document subtree. Instances of these
+ * NodeIterators are created by calling
+ * DocumentTraversal.createNodeIterator().
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface NodeIterator {
+ /**
+ * The root node of the NodeIterator, as specified when it
+ * was created.
+ */
+ public Node getRoot();
+
+ /**
+ * This attribute determines which node types are presented via the
+ * NodeIterator. The available set of constants is defined
+ * in the NodeFilter interface. Nodes not accepted by
+ * whatToShow will be skipped, but their children may still
+ * be considered. Note that this skip takes precedence over the filter,
+ * if any.
+ */
+ public int getWhatToShow();
+
+ /**
+ * The NodeFilter used to screen nodes.
+ */
+ public NodeFilter getFilter();
+
+ /**
+ * The value of this flag determines whether the children of entity
+ * reference nodes are visible to the NodeIterator. If
+ * false, these children and their descendants will be rejected. Note
+ * that this rejection takes precedence over whatToShow and
+ * the filter. Also note that this is currently the only situation where
+ * NodeIterators may reject a complete subtree rather than
+ * skipping individual nodes.
+ *
+ *
To produce a view of the document that has entity references
+ * expanded and does not expose the entity reference node itself, use
+ * the whatToShow flags to hide the entity reference node
+ * and set expandEntityReferences to true when creating the
+ * NodeIterator. To produce a view of the document that has
+ * entity reference nodes but no entity expansion, use the
+ * whatToShow flags to show the entity reference node and
+ * set expandEntityReferences to false.
+ */
+ public boolean getExpandEntityReferences();
+
+ /**
+ * Returns the next node in the set and advances the position of the
+ * NodeIterator in the set. After a
+ * NodeIterator is created, the first call to
+ * nextNode() returns the first node in the set.
+ * @return The next Node in the set being iterated over, or
+ * null if there are no more members in that set.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if this method is called after the
+ * detach method was invoked.
+ */
+ public Node nextNode()
+ throws DOMException;
+
+ /**
+ * Returns the previous node in the set and moves the position of the
+ * NodeIterator backwards in the set.
+ * @return The previous Node in the set being iterated over,
+ * or null if there are no more members in that set.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if this method is called after the
+ * detach method was invoked.
+ */
+ public Node previousNode()
+ throws DOMException;
+
+ /**
+ * Detaches the NodeIterator from the set which it iterated
+ * over, releasing any computational resources and placing the
+ * NodeIterator in the INVALID state. After
+ * detach has been invoked, calls to nextNode
+ * or previousNode will raise the exception
+ * INVALID_STATE_ERR.
+ */
+ public void detach();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java
new file mode 100644
index 00000000000..f5fff86be09
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * TreeWalker objects are used to navigate a document tree or
+ * subtree using the view of the document defined by their
+ * whatToShow flags and filter (if any). Any function which
+ * performs navigation using a TreeWalker will automatically
+ * support any view defined by a TreeWalker.
+ *
Omitting nodes from the logical view of a subtree can result in a
+ * structure that is substantially different from the same subtree in the
+ * complete, unfiltered document. Nodes that are siblings in the
+ * TreeWalker view may be children of different, widely
+ * separated nodes in the original view. For instance, consider a
+ * NodeFilter that skips all nodes except for Text nodes and
+ * the root node of a document. In the logical view that results, all text
+ * nodes will be siblings and appear as direct children of the root node, no
+ * matter how deeply nested the structure of the original document.
+ *
See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.
+ * @since DOM Level 2
+ */
+public interface TreeWalker {
+ /**
+ * The root node of the TreeWalker, as specified
+ * when it was created.
+ */
+ public Node getRoot();
+
+ /**
+ * This attribute determines which node types are presented via the
+ * TreeWalker. The available set of constants is defined in
+ * the NodeFilter interface. Nodes not accepted by
+ * whatToShow will be skipped, but their children may still
+ * be considered. Note that this skip takes precedence over the filter,
+ * if any.
+ */
+ public int getWhatToShow();
+
+ /**
+ * The filter used to screen nodes.
+ */
+ public NodeFilter getFilter();
+
+ /**
+ * The value of this flag determines whether the children of entity
+ * reference nodes are visible to the TreeWalker. If false,
+ * these children and their descendants will be rejected. Note that
+ * this rejection takes precedence over whatToShow and the
+ * filter, if any.
+ *
To produce a view of the document that has entity references
+ * expanded and does not expose the entity reference node itself, use
+ * the whatToShow flags to hide the entity reference node
+ * and set expandEntityReferences to true when creating the
+ * TreeWalker. To produce a view of the document that has
+ * entity reference nodes but no entity expansion, use the
+ * whatToShow flags to show the entity reference node and
+ * set expandEntityReferences to false.
+ */
+ public boolean getExpandEntityReferences();
+
+ /**
+ * The node at which the TreeWalker is currently positioned.
+ *
Alterations to the DOM tree may cause the current node to no longer
+ * be accepted by the TreeWalker's associated filter.
+ * currentNode may also be explicitly set to any node,
+ * whether or not it is within the subtree specified by the
+ * root node or would be accepted by the filter and
+ * whatToShow flags. Further traversal occurs relative to
+ * currentNode even if it is not part of the current view,
+ * by applying the filters in the requested direction; if no traversal
+ * is possible, currentNode is not changed.
+ */
+ public Node getCurrentNode();
+ /**
+ * The node at which the TreeWalker is currently positioned.
+ *
Alterations to the DOM tree may cause the current node to no longer
+ * be accepted by the TreeWalker's associated filter.
+ * currentNode may also be explicitly set to any node,
+ * whether or not it is within the subtree specified by the
+ * root node or would be accepted by the filter and
+ * whatToShow flags. Further traversal occurs relative to
+ * currentNode even if it is not part of the current view,
+ * by applying the filters in the requested direction; if no traversal
+ * is possible, currentNode is not changed.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if an attempt is made to set
+ * currentNode to null.
+ */
+ public void setCurrentNode(Node currentNode)
+ throws DOMException;
+
+ /**
+ * Moves to and returns the closest visible ancestor node of the current
+ * node. If the search for parentNode attempts to step
+ * upward from the TreeWalker's root node, or
+ * if it fails to find a visible ancestor node, this method retains the
+ * current position and returns null.
+ * @return The new parent node, or null if the current node
+ * has no parent in the TreeWalker's logical view.
+ */
+ public Node parentNode();
+
+ /**
+ * Moves the TreeWalker to the first visible child of the
+ * current node, and returns the new node. If the current node has no
+ * visible children, returns null, and retains the current
+ * node.
+ * @return The new node, or null if the current node has no
+ * visible children in the TreeWalker's logical view.
+ */
+ public Node firstChild();
+
+ /**
+ * Moves the TreeWalker to the last visible child of the
+ * current node, and returns the new node. If the current node has no
+ * visible children, returns null, and retains the current
+ * node.
+ * @return The new node, or null if the current node has no
+ * children in the TreeWalker's logical view.
+ */
+ public Node lastChild();
+
+ /**
+ * Moves the TreeWalker to the previous sibling of the
+ * current node, and returns the new node. If the current node has no
+ * visible previous sibling, returns null, and retains the
+ * current node.
+ * @return The new node, or null if the current node has no
+ * previous sibling. in the TreeWalker's logical view.
+ */
+ public Node previousSibling();
+
+ /**
+ * Moves the TreeWalker to the next sibling of the current
+ * node, and returns the new node. If the current node has no visible
+ * next sibling, returns null, and retains the current node.
+ * @return The new node, or null if the current node has no
+ * next sibling. in the TreeWalker's logical view.
+ */
+ public Node nextSibling();
+
+ /**
+ * Moves the TreeWalker to the previous visible node in
+ * document order relative to the current node, and returns the new
+ * node. If the current node has no previous node, or if the search for
+ * previousNode attempts to step upward from the
+ * TreeWalker's root node, returns
+ * null, and retains the current node.
+ * @return The new node, or null if the current node has no
+ * previous node in the TreeWalker's logical view.
+ */
+ public Node previousNode();
+
+ /**
+ * Moves the TreeWalker to the next visible node in document
+ * order relative to the current node, and returns the new node. If the
+ * current node has no next node, or if the search for nextNode attempts
+ * to step upward from the TreeWalker's root
+ * node, returns null, and retains the current node.
+ * @return The new node, or null if the current node has no
+ * next node in the TreeWalker's logical view.
+ */
+ public Node nextNode();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java
new file mode 100644
index 00000000000..97e8f0e2b0b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.views;
+
+/**
+ * A base interface that all views shall derive from.
+ *
See also the Document Object Model (DOM) Level 2 Views Specification.
+ * @since DOM Level 2
+ */
+public interface AbstractView {
+ /**
+ * The source DocumentView of which this is an
+ * AbstractView.
+ */
+ public DocumentView getDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java
new file mode 100644
index 00000000000..2cb9eebb84b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2000 World Wide Web Consortium,
+ * (Massachusetts Institute of Technology, Institut National de
+ * Recherche en Informatique et en Automatique, Keio University). All
+ * Rights Reserved. This program is distributed under the W3C's Software
+ * Intellectual Property License. This program is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+ */
+
+package org.w3c.dom.views;
+
+/**
+ * The DocumentView interface is implemented by
+ * Document objects in DOM implementations supporting DOM
+ * Views. It provides an attribute to retrieve the default view of a
+ * document.
+ *
See also the Document Object Model (DOM) Level 2 Views Specification.
+ * @since DOM Level 2
+ */
+public interface DocumentView {
+ /**
+ * The default AbstractView for this Document,
+ * or null if none available.
+ */
+ public AbstractView getDefaultView();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java
new file mode 100644
index 00000000000..a85c0e811da
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The evaluation of XPath expressions is provided by
+ * XPathEvaluator. In a DOM implementation which supports the
+ * XPath 3.0 feature, as described above, the XPathEvaluator
+ * interface will be implemented on the same object which implements the
+ * Document interface permitting it to be obtained by the usual
+ * binding-specific method such as casting or by using the DOM Level 3
+ * getInterface method. In this case the implementation obtained from the
+ * Document supports the XPath DOM module and is compatible with the XPath
+ * 1.0 specification.
+ *
Evaluation of expressions with specialized extension functions or
+ * variables may not work in all implementations and is, therefore, not
+ * portable. XPathEvaluator implementations may be available
+ * from other sources that could provide specific support for specialized
+ * extension functions or variables as would be defined by other
+ * specifications.
+ *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public interface XPathEvaluator {
+ /**
+ * Creates a parsed XPath expression with resolved namespaces. This is
+ * useful when an expression will be reused in an application since it
+ * makes it possible to compile the expression string into a more
+ * efficient internal form and preresolve all namespace prefixes which
+ * occur within the expression.
+ * @param expression The XPath expression string to be parsed.
+ * @param resolver The resolver permits translation of all
+ * prefixes, including the xml namespace prefix, within
+ * the XPath expression into appropriate namespace URIs. If this is
+ * specified as null, any namespace prefix within the
+ * expression will result in DOMException being thrown
+ * with the code NAMESPACE_ERR.
+ * @return The compiled form of the XPath expression.
+ * @exception XPathException
+ * INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+ * according to the rules of the XPathEvaluator.
+ * @exception DOMException
+ * NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+ * which cannot be resolved by the specified
+ * XPathNSResolver.
+ */
+ public XPathExpression createExpression(String expression,
+ XPathNSResolver resolver)
+ throws XPathException, DOMException;
+
+ /**
+ * Adapts any DOM node to resolve namespaces so that an XPath expression
+ * can be easily evaluated relative to the context of the node where it
+ * appeared within the document. This adapter works like the DOM Level 3
+ * method lookupNamespaceURI on nodes in resolving the
+ * namespaceURI from a given prefix using the current information
+ * available in the node's hierarchy at the time lookupNamespaceURI is
+ * called. also correctly resolving the implicit xml prefix.
+ * @param nodeResolver The node to be used as a context for namespace
+ * resolution.
+ * @return XPathNSResolver which resolves namespaces with
+ * respect to the definitions in scope for a specified node.
+ */
+ public XPathNSResolver createNSResolver(Node nodeResolver);
+
+ /**
+ * Evaluates an XPath expression string and returns a result of the
+ * specified type if possible.
+ * @param expression The XPath expression string to be parsed and
+ * evaluated.
+ * @param contextNode The context is context node for the
+ * evaluation of this XPath expression. If the XPathEvaluator was
+ * obtained by casting the Document then this must be
+ * owned by the same document and must be a Document,
+ * Element, Attribute, Text,
+ * CDATASection, Comment,
+ * ProcessingInstruction, or XPathNamespace
+ * node. If the context node is a Text or a
+ * CDATASection, then the context is interpreted as the
+ * whole logical text node as seen by XPath, unless the node is empty
+ * in which case it may not serve as the XPath context.
+ * @param resolver The resolver permits translation of all
+ * prefixes, including the xml namespace prefix, within
+ * the XPath expression into appropriate namespace URIs. If this is
+ * specified as null, any namespace prefix within the
+ * expression will result in DOMException being thrown
+ * with the code NAMESPACE_ERR.
+ * @param type If a specific type is specified, then the
+ * result will be returned as the corresponding type.For XPath 1.0
+ * results, this must be one of the codes of the
+ * XPathResult interface.
+ * @param result The result specifies a specific result
+ * object which may be reused and returned by this method. If this is
+ * specified as nullor the implementation does not reuse
+ * the specified result, a new result object will be constructed and
+ * returned.For XPath 1.0 results, this object will be of type
+ * XPathResult.
+ * @return The result of the evaluation of the XPath expression.For XPath
+ * 1.0 results, this object will be of type XPathResult.
+ * @exception XPathException
+ * INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+ * according to the rules of the XPathEvaluatori
+ *
TYPE_ERR: Raised if the result cannot be converted to return the
+ * specified type.
+ * @exception DOMException
+ * NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+ * which cannot be resolved by the specified
+ * XPathNSResolver.
+ *
WRONG_DOCUMENT_ERR: The Node is from a document that is not
+ * supported by this XPathEvaluator.
+ *
NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+ * context node or the request type is not permitted by this
+ * XPathEvaluator.
+ */
+ public Object evaluate(String expression,
+ Node contextNode,
+ XPathNSResolver resolver,
+ short type,
+ Object result)
+ throws XPathException, DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java
new file mode 100644
index 00000000000..deb1bd78394
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+/**
+ * A new exception has been created for exceptions specific to these XPath
+ * interfaces.
+ *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public class XPathException extends RuntimeException {
+ public XPathException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // XPathExceptionCode
+ /**
+ * If the expression has a syntax error or otherwise is not a legal
+ * expression according to the rules of the specific
+ * XPathEvaluator or contains specialized extension
+ * functions or variables not supported by this implementation.
+ */
+ public static final short INVALID_EXPRESSION_ERR = 51;
+ /**
+ * If the expression cannot be converted to return the specified type.
+ */
+ public static final short TYPE_ERR = 52;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java
new file mode 100644
index 00000000000..e972532544d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The XPathExpression interface represents a parsed and resolved
+ * XPath expression.
+ *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public interface XPathExpression {
+ /**
+ * Evaluates this XPath expression and returns a result.
+ * @param contextNode The context is context node for the
+ * evaluation of this XPath expression.If the XPathEvaluator was
+ * obtained by casting the Document then this must be
+ * owned by the same document and must be a Document,
+ * Element, Attribute, Text,
+ * CDATASection, Comment,
+ * ProcessingInstruction, or XPathNamespace
+ * node.If the context node is a Text or a
+ * CDATASection, then the context is interpreted as the
+ * whole logical text node as seen by XPath, unless the node is empty
+ * in which case it may not serve as the XPath context.
+ * @param type If a specific type is specified, then the
+ * result will be coerced to return the specified type relying on
+ * XPath conversions and fail if the desired coercion is not possible.
+ * This must be one of the type codes of XPathResult.
+ * @param result The result specifies a specific result
+ * object which may be reused and returned by this method. If this is
+ * specified as nullor the implementation does not reuse
+ * the specified result, a new result object will be constructed and
+ * returned.For XPath 1.0 results, this object will be of type
+ * XPathResult.
+ * @return The result of the evaluation of the XPath expression.For XPath
+ * 1.0 results, this object will be of type XPathResult.
+ * @exception XPathException
+ * TYPE_ERR: Raised if the result cannot be converted to return the
+ * specified type.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
+ * by the XPathEvaluator that created this XPathExpression
+ * .
+ *
NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+ * context node or the request type is not permitted by this
+ * XPathExpression.
+ */
+ public Object evaluate(Node contextNode,
+ short type,
+ Object result)
+ throws XPathException, DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java
new file mode 100644
index 00000000000..b8f05213812
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+/**
+ * The XPathNSResolver interface permit prefix
+ * strings in the expression to be properly bound to
+ * namespaceURI strings. XPathEvaluator can
+ * construct an implementation of XPathNSResolver from a node,
+ * or the interface may be implemented by any application.
+ *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public interface XPathNSResolver {
+ /**
+ * Look up the namespace URI associated to the given namespace prefix. The
+ * XPath evaluator must never call this with a null or
+ * empty argument, because the result of doing this is undefined.
+ * @param prefix The prefix to look for.
+ * @return Returns the associated namespace URI or null if
+ * none is found.
+ */
+ public String lookupNamespaceURI(String prefix);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java
new file mode 100644
index 00000000000..9f15481d584
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * The XPathNamespace interface is returned by
+ * XPathResult interfaces to represent the XPath namespace node
+ * type that DOM lacks. There is no public constructor for this node type.
+ * Attempts to place it into a hierarchy or a NamedNodeMap result in a
+ * DOMException with the code HIERARCHY_REQUEST_ERR
+ * . This node is read only, so methods or setting of attributes that would
+ * mutate the node result in a DOMException with the code
+ * NO_MODIFICATION_ALLOWED_ERR.
+ *
The core specification describes attributes of the Node
+ * interface that are different for different node types but does not
+ * describe XPATH_NAMESPACE_NODE, so here is a description of
+ * those attributes for this node type. All attributes of Node
+ * not described in this section have a null or
+ * false value.
+ *
ownerDocument matches the ownerDocument of the
+ * ownerElement even if the element is later adopted.
+ *
nodeName is always the string "#namespace".
+ *
prefix is the prefix of the namespace represented by the
+ * node.
+ *
localName is the same as prefix.
+ *
nodeType is equal to XPATH_NAMESPACE_NODE.
+ *
namespaceURI is the namespace URI of the namespace
+ * represented by the node.
+ *
nodeValue is the same as namespaceURI.
+ *
adoptNode, cloneNode, and
+ * importNode fail on this node type by raising a
+ * DOMException with the code NOT_SUPPORTED_ERR.
+ *
Note: In future versions of the XPath specification, the + * definition of a namespace node may be changed incomatibly, in which case + * incompatible changes to field values may be required to implement + * versions beyond XPath 1.0. + *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public interface XPathNamespace extends Node {
+ // XPathNodeType
+ /**
+ * The node is a Namespace.
+ */
+ public static final short XPATH_NAMESPACE_NODE = 13;
+
+ /**
+ * The Element on which the namespace was in scope when it
+ * was requested. This does not change on a returned namespace node even
+ * if the document changes such that the namespace goes out of scope on
+ * that element and this node is no longer found there by XPath.
+ */
+ public Element getOwnerElement();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java
new file mode 100644
index 00000000000..56064b90ecf
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The XPathResult interface represents the result of the
+ * evaluation of an XPath 1.0 expression within the context of a particular
+ * node. Since evaluation of an XPath expression can result in various
+ * result types, this object makes it possible to discover and manipulate
+ * the type and value of the result.
+ *
See also the Document Object Model (DOM) Level 3 XPath Specification.
+ */
+public interface XPathResult {
+ // XPathResultType
+ /**
+ * This code does not represent a specific type. An evaluation of an XPath
+ * expression will never produce this type. If this type is requested,
+ * then the evaluation returns whatever type naturally results from
+ * evaluation of the expression.
+ *
If the natural result is a node set when ANY_TYPE was
+ * requested, then UNORDERED_NODE_ITERATOR_TYPE is always
+ * the resulting type. Any other representation of a node set must be
+ * explicitly requested.
+ */
+ public static final short ANY_TYPE = 0;
+ /**
+ * The result is a number as defined by [XPath 1.0].
+ * Document modification does not invalidate the number, but may mean
+ * that reevaluation would not yield the same number.
+ */
+ public static final short NUMBER_TYPE = 1;
+ /**
+ * The result is a string as defined by [XPath 1.0].
+ * Document modification does not invalidate the string, but may mean
+ * that the string no longer corresponds to the current document.
+ */
+ public static final short STRING_TYPE = 2;
+ /**
+ * The result is a boolean as defined by [XPath 1.0].
+ * Document modification does not invalidate the boolean, but may mean
+ * that reevaluation would not yield the same boolean.
+ */
+ public static final short BOOLEAN_TYPE = 3;
+ /**
+ * The result is a node set as defined by [XPath 1.0] that
+ * will be accessed iteratively, which may not produce nodes in a
+ * particular order. Document modification invalidates the iteration.
+ *
This is the default type returned if the result is a node set and
+ * ANY_TYPE is requested.
+ */
+ public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
+ /**
+ * The result is a node set as defined by [XPath 1.0] that
+ * will be accessed iteratively, which will produce document-ordered
+ * nodes. Document modification invalidates the iteration.
+ */
+ public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
+ /**
+ * The result is a node set as defined by [XPath 1.0] that
+ * will be accessed as a snapshot list of nodes that may not be in a
+ * particular order. Document modification does not invalidate the
+ * snapshot but may mean that reevaluation would not yield the same
+ * snapshot and nodes in the snapshot may have been altered, moved, or
+ * removed from the document.
+ */
+ public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+ /**
+ * The result is a node set as defined by [XPath 1.0] that
+ * will be accessed as a snapshot list of nodes that will be in original
+ * document order. Document modification does not invalidate the
+ * snapshot but may mean that reevaluation would not yield the same
+ * snapshot and nodes in the snapshot may have been altered, moved, or
+ * removed from the document.
+ */
+ public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
+ /**
+ * The result is a node set as defined by [XPath 1.0] and
+ * will be accessed as a single node, which may be nullif
+ * the node set is empty. Document modification does not invalidate the
+ * node, but may mean that the result node no longer corresponds to the
+ * current document. This is a convenience that permits optimization
+ * since the implementation can stop once any node in the resulting set
+ * has been found.
+ *
If there is more than one node in the actual result, the single
+ * node returned might not be the first in document order.
+ */
+ public static final short ANY_UNORDERED_NODE_TYPE = 8;
+ /**
+ * The result is a node set as defined by [XPath 1.0] and
+ * will be accessed as a single node, which may be null if
+ * the node set is empty. Document modification does not invalidate the
+ * node, but may mean that the result node no longer corresponds to the
+ * current document. This is a convenience that permits optimization
+ * since the implementation can stop once the first node in document
+ * order of the resulting set has been found.
+ *
If there are more than one node in the actual result, the single
+ * node returned will be the first in document order.
+ */
+ public static final short FIRST_ORDERED_NODE_TYPE = 9;
+
+ /**
+ * A code representing the type of this result, as defined by the type
+ * constants.
+ */
+ public short getResultType();
+
+ /**
+ * The value of this number result. If the native double type of the DOM
+ * binding does not directly support the exact IEEE 754 result of the
+ * XPath expression, then it is up to the definition of the binding to
+ * specify how the XPath number is converted to the native binding
+ * number.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * NUMBER_TYPE.
+ */
+ public double getNumberValue()
+ throws XPathException;
+
+ /**
+ * The value of this string result.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * STRING_TYPE.
+ */
+ public String getStringValue()
+ throws XPathException;
+
+ /**
+ * The value of this boolean result.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * BOOLEAN_TYPE.
+ */
+ public boolean getBooleanValue()
+ throws XPathException;
+
+ /**
+ * The value of this single node result, which may be null.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * ANY_UNORDERED_NODE_TYPE or
+ * FIRST_ORDERED_NODE_TYPE.
+ */
+ public Node getSingleNodeValue()
+ throws XPathException;
+
+ /**
+ * Signifies that the iterator has become invalid. True if
+ * resultType is UNORDERED_NODE_ITERATOR_TYPE
+ * or ORDERED_NODE_ITERATOR_TYPE and the document has been
+ * modified since this result was returned.
+ */
+ public boolean getInvalidIteratorState();
+
+ /**
+ * The number of nodes in the result snapshot. Valid values for
+ * snapshotItem indices are 0 to
+ * snapshotLength-1 inclusive.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * UNORDERED_NODE_SNAPSHOT_TYPE or
+ * ORDERED_NODE_SNAPSHOT_TYPE.
+ */
+ public int getSnapshotLength()
+ throws XPathException;
+
+ /**
+ * Iterates and returns the next node from the node set or
+ * nullif there are no more nodes.
+ * @return Returns the next node.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * UNORDERED_NODE_ITERATOR_TYPE or
+ * ORDERED_NODE_ITERATOR_TYPE.
+ * @exception DOMException
+ * INVALID_STATE_ERR: The document has been mutated since the result was
+ * returned.
+ */
+ public Node iterateNext()
+ throws XPathException, DOMException;
+
+ /**
+ * Returns the indexth item in the snapshot collection. If
+ * index is greater than or equal to the number of nodes in
+ * the list, this method returns null. Unlike the iterator
+ * result, the snapshot does not become invalid, but may not correspond
+ * to the current document if it is mutated.
+ * @param index Index into the snapshot collection.
+ * @return The node at the indexth position in the
+ * NodeList, or null if that is not a valid
+ * index.
+ * @exception XPathException
+ * TYPE_ERR: raised if resultType is not
+ * UNORDERED_NODE_SNAPSHOT_TYPE or
+ * ORDERED_NODE_SNAPSHOT_TYPE.
+ */
+ public Node snapshotItem(int index)
+ throws XPathException;
+
+}
--
cgit v1.2.3