mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
Merge
This commit is contained in:
commit
34837ee9b7
22 changed files with 59 additions and 55 deletions
|
@ -932,9 +932,9 @@ class FunctionCall extends Expression {
|
||||||
//Check if FSP and SM - only then process with loading
|
//Check if FSP and SM - only then process with loading
|
||||||
if (namespace != null && isSecureProcessing
|
if (namespace != null && isSecureProcessing
|
||||||
&& isExtensionFunctionEnabled
|
&& isExtensionFunctionEnabled
|
||||||
&& (namespace.equals(JAVA_EXT_XALAN)
|
&& (namespace.startsWith(JAVA_EXT_XALAN)
|
||||||
|| namespace.equals(JAVA_EXT_XSLTC)
|
|| namespace.startsWith(JAVA_EXT_XSLTC)
|
||||||
|| namespace.equals(JAVA_EXT_XALAN_OLD)
|
|| namespace.startsWith(JAVA_EXT_XALAN_OLD)
|
||||||
|| namespace.startsWith(XALAN_CLASSPACKAGE_NAMESPACE))) {
|
|| namespace.startsWith(XALAN_CLASSPACKAGE_NAMESPACE))) {
|
||||||
_clazz = getXSLTC().loadExternalFunction(_className);
|
_clazz = getXSLTC().loadExternalFunction(_className);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -36,6 +36,7 @@ import com.sun.org.apache.xml.internal.serializer.ElemDesc;
|
||||||
import com.sun.org.apache.xml.internal.serializer.ToHTMLStream;
|
import com.sun.org.apache.xml.internal.serializer.ToHTMLStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Hashtable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -104,9 +105,9 @@ final class LiteralElement extends Instruction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we have any declared namesaces
|
// Check if we have any declared namespaces
|
||||||
if (_accessedPrefixes == null) {
|
if (_accessedPrefixes == null) {
|
||||||
_accessedPrefixes = new HashMap<>();
|
_accessedPrefixes = new Hashtable<>();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!declared) {
|
if (!declared) {
|
||||||
|
|
|
@ -331,7 +331,7 @@ public class XML11DocumentScannerImpl
|
||||||
new Object[]{entityName});
|
new Object[]{entityName});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fEntityManager.startEntity(false, entityName, true);
|
fEntityManager.startEntity(true, entityName, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -904,7 +904,7 @@ public class XML11EntityScanner
|
||||||
}
|
}
|
||||||
int length = fCurrentEntity.position - offset;
|
int length = fCurrentEntity.position - offset;
|
||||||
fCurrentEntity.columnNumber += length - newlines;
|
fCurrentEntity.columnNumber += length - newlines;
|
||||||
if (fCurrentEntity.reference) {
|
if (fCurrentEntity.isGE) {
|
||||||
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
||||||
}
|
}
|
||||||
content.setValues(fCurrentEntity.ch, offset, length);
|
content.setValues(fCurrentEntity.ch, offset, length);
|
||||||
|
@ -1051,6 +1051,9 @@ public class XML11EntityScanner
|
||||||
}
|
}
|
||||||
int length = fCurrentEntity.position - offset;
|
int length = fCurrentEntity.position - offset;
|
||||||
fCurrentEntity.columnNumber += length - newlines;
|
fCurrentEntity.columnNumber += length - newlines;
|
||||||
|
if (fCurrentEntity.isGE) {
|
||||||
|
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
||||||
|
}
|
||||||
content.setValues(fCurrentEntity.ch, offset, length);
|
content.setValues(fCurrentEntity.ch, offset, length);
|
||||||
|
|
||||||
// return next character
|
// return next character
|
||||||
|
|
|
@ -1155,7 +1155,7 @@ public class XMLDocumentScannerImpl
|
||||||
StaxXMLInputSource staxInputSource = fEntityManager.resolveEntityAsPerStax(resourceIdentifier);
|
StaxXMLInputSource staxInputSource = fEntityManager.resolveEntityAsPerStax(resourceIdentifier);
|
||||||
|
|
||||||
// Check access permission. If the source is resolved by a resolver, the check is skipped.
|
// Check access permission. If the source is resolved by a resolver, the check is skipped.
|
||||||
if (!staxInputSource.hasResolver()) {
|
if (!staxInputSource.isCreatedByResolver()) {
|
||||||
String accessError = checkAccess(fDoctypeSystemId, fAccessExternalDTD);
|
String accessError = checkAccess(fDoctypeSystemId, fAccessExternalDTD);
|
||||||
if (accessError != null) {
|
if (accessError != null) {
|
||||||
reportFatalError("AccessExternalDTD", new Object[]{ SecuritySupport.sanitizePath(fDoctypeSystemId), accessError });
|
reportFatalError("AccessExternalDTD", new Object[]{ SecuritySupport.sanitizePath(fDoctypeSystemId), accessError });
|
||||||
|
|
|
@ -1008,12 +1008,14 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
// do default resolution
|
// do default resolution
|
||||||
//this works for both stax & Xerces, if staxInputSource is null, it means parser need to revert to default resolution
|
//this works for both stax & Xerces, if staxInputSource is null,
|
||||||
|
//it means parser need to revert to default resolution
|
||||||
if (staxInputSource == null) {
|
if (staxInputSource == null) {
|
||||||
// REVISIT: when systemId is null, I think we should return null.
|
// REVISIT: when systemId is null, I think we should return null.
|
||||||
// is this the right solution? -SG
|
// is this the right solution? -SG
|
||||||
//if (systemId != null)
|
//if (systemId != null)
|
||||||
staxInputSource = new StaxXMLInputSource(new XMLInputSource(publicId, literalSystemId, baseSystemId));
|
staxInputSource = new StaxXMLInputSource(
|
||||||
|
new XMLInputSource(publicId, literalSystemId, baseSystemId), false);
|
||||||
}else if(staxInputSource.hasXMLStreamOrXMLEventReader()){
|
}else if(staxInputSource.hasXMLStreamOrXMLEventReader()){
|
||||||
//Waiting for the clarification from EG. - nb
|
//Waiting for the clarification from EG. - nb
|
||||||
}
|
}
|
||||||
|
@ -1108,7 +1110,7 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
/**
|
/**
|
||||||
* Starts a named entity.
|
* Starts a named entity.
|
||||||
*
|
*
|
||||||
* @param reference flag to indicate whether the entity is an Entity Reference.
|
* @param isGE flag to indicate whether the entity is a General Entity
|
||||||
* @param entityName The name of the entity to start.
|
* @param entityName The name of the entity to start.
|
||||||
* @param literal True if this entity is started within a literal
|
* @param literal True if this entity is started within a literal
|
||||||
* value.
|
* value.
|
||||||
|
@ -1116,7 +1118,7 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
* @throws IOException Thrown on i/o error.
|
* @throws IOException Thrown on i/o error.
|
||||||
* @throws XNIException Thrown by entity handler to signal an error.
|
* @throws XNIException Thrown by entity handler to signal an error.
|
||||||
*/
|
*/
|
||||||
public void startEntity(boolean reference, String entityName, boolean literal)
|
public void startEntity(boolean isGE, String entityName, boolean literal)
|
||||||
throws IOException, XNIException {
|
throws IOException, XNIException {
|
||||||
|
|
||||||
// was entity declared?
|
// was entity declared?
|
||||||
|
@ -1240,7 +1242,7 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
// start the entity
|
// start the entity
|
||||||
startEntity(reference, entityName, xmlInputSource, literal, external);
|
startEntity(isGE, entityName, xmlInputSource, literal, external);
|
||||||
|
|
||||||
} // startEntity(String,boolean)
|
} // startEntity(String,boolean)
|
||||||
|
|
||||||
|
@ -1289,7 +1291,7 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
* This method can be used to insert an application defined XML
|
* This method can be used to insert an application defined XML
|
||||||
* entity stream into the parsing stream.
|
* entity stream into the parsing stream.
|
||||||
*
|
*
|
||||||
* @param reference flag to indicate whether the entity is an Entity Reference.
|
* @param isGE flag to indicate whether the entity is a General Entity
|
||||||
* @param name The name of the entity.
|
* @param name The name of the entity.
|
||||||
* @param xmlInputSource The input source of the entity.
|
* @param xmlInputSource The input source of the entity.
|
||||||
* @param literal True if this entity is started within a
|
* @param literal True if this entity is started within a
|
||||||
|
@ -1299,12 +1301,12 @@ public class XMLEntityManager implements XMLComponent, XMLEntityResolver {
|
||||||
* @throws IOException Thrown on i/o error.
|
* @throws IOException Thrown on i/o error.
|
||||||
* @throws XNIException Thrown by entity handler to signal an error.
|
* @throws XNIException Thrown by entity handler to signal an error.
|
||||||
*/
|
*/
|
||||||
public void startEntity(boolean reference, String name,
|
public void startEntity(boolean isGE, String name,
|
||||||
XMLInputSource xmlInputSource,
|
XMLInputSource xmlInputSource,
|
||||||
boolean literal, boolean isExternal)
|
boolean literal, boolean isExternal)
|
||||||
throws IOException, XNIException {
|
throws IOException, XNIException {
|
||||||
|
|
||||||
String encoding = setupCurrentEntity(reference, name, xmlInputSource, literal, isExternal);
|
String encoding = setupCurrentEntity(isGE, name, xmlInputSource, literal, isExternal);
|
||||||
|
|
||||||
//when entity expansion limit is set by the Application, we need to
|
//when entity expansion limit is set by the Application, we need to
|
||||||
//check for the entity expansion limit set by the parser, if number of entity
|
//check for the entity expansion limit set by the parser, if number of entity
|
||||||
|
|
|
@ -1038,7 +1038,7 @@ public class XMLEntityScanner implements XMLLocator {
|
||||||
}
|
}
|
||||||
int length = fCurrentEntity.position - offset;
|
int length = fCurrentEntity.position - offset;
|
||||||
fCurrentEntity.columnNumber += length - newlines;
|
fCurrentEntity.columnNumber += length - newlines;
|
||||||
if (fCurrentEntity.reference) {
|
if (fCurrentEntity.isGE) {
|
||||||
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1205,6 +1205,9 @@ public class XMLEntityScanner implements XMLLocator {
|
||||||
}
|
}
|
||||||
int length = fCurrentEntity.position - offset;
|
int length = fCurrentEntity.position - offset;
|
||||||
fCurrentEntity.columnNumber += length - newlines;
|
fCurrentEntity.columnNumber += length - newlines;
|
||||||
|
if (fCurrentEntity.isGE) {
|
||||||
|
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
|
||||||
|
}
|
||||||
content.setValues(fCurrentEntity.ch, offset, length);
|
content.setValues(fCurrentEntity.ch, offset, length);
|
||||||
|
|
||||||
// return next character
|
// return next character
|
||||||
|
|
|
@ -946,7 +946,7 @@ public abstract class XMLScanner
|
||||||
new Object[]{entityName});
|
new Object[]{entityName});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fEntityManager.startEntity(false, entityName, true);
|
fEntityManager.startEntity(true, entityName, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -344,8 +344,8 @@ public abstract class Entity {
|
||||||
// to know that prolog is read
|
// to know that prolog is read
|
||||||
public boolean xmlDeclChunkRead = false;
|
public boolean xmlDeclChunkRead = false;
|
||||||
|
|
||||||
// flag to indicate whether the Entity is an Entity Reference
|
// flag to indicate whether the Entity is a General Entity
|
||||||
public boolean reference = false;
|
public boolean isGE = false;
|
||||||
|
|
||||||
/** returns the name of the current encoding
|
/** returns the name of the current encoding
|
||||||
* @return current encoding name
|
* @return current encoding name
|
||||||
|
@ -391,11 +391,11 @@ public abstract class Entity {
|
||||||
//
|
//
|
||||||
|
|
||||||
/** Constructs a scanned entity. */
|
/** Constructs a scanned entity. */
|
||||||
public ScannedEntity(boolean reference, String name,
|
public ScannedEntity(boolean isGE, String name,
|
||||||
XMLResourceIdentifier entityLocation,
|
XMLResourceIdentifier entityLocation,
|
||||||
InputStream stream, Reader reader,
|
InputStream stream, Reader reader,
|
||||||
String encoding, boolean literal, boolean mayReadChunks, boolean isExternal) {
|
String encoding, boolean literal, boolean mayReadChunks, boolean isExternal) {
|
||||||
this.reference = reference;
|
this.isGE = isGE;
|
||||||
this.name = name ;
|
this.name = name ;
|
||||||
this.entityLocation = entityLocation;
|
this.entityLocation = entityLocation;
|
||||||
this.stream = stream;
|
this.stream = stream;
|
||||||
|
|
|
@ -71,12 +71,12 @@ public class StaxEntityResolverWrapper {
|
||||||
if(object == null) return null ;
|
if(object == null) return null ;
|
||||||
|
|
||||||
if(object instanceof java.io.InputStream){
|
if(object instanceof java.io.InputStream){
|
||||||
return new StaxXMLInputSource(new XMLInputSource(null, null, null, (InputStream)object, null));
|
return new StaxXMLInputSource(new XMLInputSource(null, null, null, (InputStream)object, null), true);
|
||||||
}
|
}
|
||||||
else if(object instanceof XMLStreamReader){
|
else if(object instanceof XMLStreamReader){
|
||||||
return new StaxXMLInputSource((XMLStreamReader)object) ;
|
return new StaxXMLInputSource((XMLStreamReader)object, true) ;
|
||||||
}else if(object instanceof XMLEventReader){
|
}else if(object instanceof XMLEventReader){
|
||||||
return new StaxXMLInputSource((XMLEventReader)object) ;
|
return new StaxXMLInputSource((XMLEventReader)object, true) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null ;
|
return null ;
|
||||||
|
|
|
@ -43,27 +43,22 @@ public class StaxXMLInputSource {
|
||||||
XMLEventReader fEventReader ;
|
XMLEventReader fEventReader ;
|
||||||
XMLInputSource fInputSource ;
|
XMLInputSource fInputSource ;
|
||||||
|
|
||||||
//indicate if the source is resolved by a resolver
|
//indicates if the source is created by a resolver
|
||||||
boolean fHasResolver = false;
|
boolean fIsCreatedByResolver = false;
|
||||||
|
|
||||||
/** Creates a new instance of StaxXMLInputSource */
|
/** Creates a new instance of StaxXMLInputSource */
|
||||||
public StaxXMLInputSource(XMLStreamReader streamReader) {
|
public StaxXMLInputSource(XMLStreamReader streamReader, boolean byResolver) {
|
||||||
fStreamReader = streamReader ;
|
fStreamReader = streamReader ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Creates a new instance of StaxXMLInputSource */
|
/** Creates a new instance of StaxXMLInputSource */
|
||||||
public StaxXMLInputSource(XMLEventReader eventReader) {
|
public StaxXMLInputSource(XMLEventReader eventReader, boolean byResolver) {
|
||||||
fEventReader = eventReader ;
|
fEventReader = eventReader ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StaxXMLInputSource(XMLInputSource inputSource){
|
public StaxXMLInputSource(XMLInputSource inputSource, boolean byResolver){
|
||||||
fInputSource = inputSource ;
|
fInputSource = inputSource ;
|
||||||
|
fIsCreatedByResolver = byResolver;
|
||||||
}
|
|
||||||
|
|
||||||
public StaxXMLInputSource(XMLInputSource inputSource, boolean hasResolver){
|
|
||||||
fInputSource = inputSource ;
|
|
||||||
fHasResolver = hasResolver;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public XMLStreamReader getXMLStreamReader(){
|
public XMLStreamReader getXMLStreamReader(){
|
||||||
|
@ -82,7 +77,7 @@ public class StaxXMLInputSource {
|
||||||
return (fStreamReader == null) && (fEventReader == null) ? false : true ;
|
return (fStreamReader == null) && (fEventReader == null) ? false : true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasResolver() {
|
public boolean isCreatedByResolver() {
|
||||||
return fHasResolver;
|
return fIsCreatedByResolver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,7 +351,7 @@ public interface XPath {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
||||||
* @throws NullPointerException If {@code expression or type} is {@code null}.
|
* @throws NullPointerException If {@code expression or type} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default <T>T evaluateExpression(String expression, Object item, Class<T> type)
|
default <T>T evaluateExpression(String expression, Object item, Class<T> type)
|
||||||
throws XPathExpressionException {
|
throws XPathExpressionException {
|
||||||
|
@ -399,7 +399,7 @@ public interface XPath {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
||||||
* @throws NullPointerException If {@code expression} is {@code null}.
|
* @throws NullPointerException If {@code expression} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default XPathEvaluationResult<?> evaluateExpression(String expression, Object item)
|
default XPathEvaluationResult<?> evaluateExpression(String expression, Object item)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
@ -445,7 +445,7 @@ public interface XPath {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
||||||
* @throws NullPointerException If {@code expression, source or type}is {@code null}.
|
* @throws NullPointerException If {@code expression, source or type}is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default <T>T evaluateExpression(String expression, InputSource source, Class<T> type)
|
default <T>T evaluateExpression(String expression, InputSource source, Class<T> type)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
@ -486,7 +486,7 @@ public interface XPath {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
||||||
* @throws NullPointerException If {@code expression or source} is {@code null}.
|
* @throws NullPointerException If {@code expression or source} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default XPathEvaluationResult<?> evaluateExpression(String expression, InputSource source)
|
default XPathEvaluationResult<?> evaluateExpression(String expression, InputSource source)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
|
|
@ -37,7 +37,7 @@ import org.w3c.dom.Node;
|
||||||
* @see <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version
|
* @see <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version
|
||||||
* 1.0</a>
|
* 1.0</a>
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
public interface XPathEvaluationResult<T> {
|
public interface XPathEvaluationResult<T> {
|
||||||
|
|
||||||
|
|
|
@ -246,7 +246,7 @@ public interface XPathExpression {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type is not available.
|
||||||
* @throws NullPointerException If {@code type} is {@code null}.
|
* @throws NullPointerException If {@code type} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default <T>T evaluateExpression(Object item, Class<T> type)
|
default <T>T evaluateExpression(Object item, Class<T> type)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
@ -292,7 +292,7 @@ public interface XPathExpression {
|
||||||
* does not support the
|
* does not support the
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default XPathEvaluationResult<?> evaluateExpression(Object item)
|
default XPathEvaluationResult<?> evaluateExpression(Object item)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
@ -338,7 +338,7 @@ public interface XPathExpression {
|
||||||
* is not available.
|
* is not available.
|
||||||
* @throws NullPointerException If {@code source or type} is {@code null}.
|
* @throws NullPointerException If {@code source or type} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default <T>T evaluateExpression(InputSource source, Class<T> type)
|
default <T>T evaluateExpression(InputSource source, Class<T> type)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
@ -377,7 +377,7 @@ public interface XPathExpression {
|
||||||
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
* {@link XPathEvaluationResult.XPathResultType#ANY ANY} type.
|
||||||
* @throws NullPointerException If {@code source} is {@code null}.
|
* @throws NullPointerException If {@code source} is {@code null}.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
default XPathEvaluationResult<?> evaluateExpression(InputSource source)
|
default XPathEvaluationResult<?> evaluateExpression(InputSource source)
|
||||||
throws XPathExpressionException
|
throws XPathExpressionException
|
||||||
|
|
|
@ -33,7 +33,7 @@ import org.w3c.dom.Node;
|
||||||
* in <a href="http://www.w3.org/TR/xpath/#node-sets">XML Path Language (XPath)
|
* in <a href="http://www.w3.org/TR/xpath/#node-sets">XML Path Language (XPath)
|
||||||
* Version 1.0, 3.3 Node-sets</a>.
|
* Version 1.0, 3.3 Node-sets</a>.
|
||||||
*
|
*
|
||||||
* @since 1.9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
public interface XPathNodes extends Iterable<Node> {
|
public interface XPathNodes extends Iterable<Node> {
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ package org.w3c.dom.ranges;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface DocumentRange {
|
public interface DocumentRange {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -47,7 +47,7 @@ import org.w3c.dom.DocumentFragment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface Range {
|
public interface Range {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -45,7 +45,7 @@ package org.w3c.dom.ranges;
|
||||||
* Range operations may throw a <code>RangeException</code> as specified in
|
* Range operations may throw a <code>RangeException</code> as specified in
|
||||||
* their method descriptions.
|
* their method descriptions.
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public class RangeException extends RuntimeException {
|
public class RangeException extends RuntimeException {
|
||||||
public RangeException(short code, String message) {
|
public RangeException(short code, String message) {
|
||||||
|
|
|
@ -53,7 +53,7 @@ import org.w3c.dom.DOMException;
|
||||||
* Traversal feature, <code>DocumentTraversal</code> will be implemented by
|
* Traversal feature, <code>DocumentTraversal</code> will be implemented by
|
||||||
* the same objects that implement the Document interface.
|
* the same objects that implement the Document interface.
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface DocumentTraversal {
|
public interface DocumentTraversal {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -59,7 +59,7 @@ import org.w3c.dom.Node;
|
||||||
* filter may be used with a number of different kinds of traversals,
|
* filter may be used with a number of different kinds of traversals,
|
||||||
* encouraging code reuse.
|
* encouraging code reuse.
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface NodeFilter {
|
public interface NodeFilter {
|
||||||
// Constants returned by acceptNode
|
// Constants returned by acceptNode
|
||||||
|
|
|
@ -55,7 +55,7 @@ import org.w3c.dom.DOMException;
|
||||||
* <code>NodeIterators</code> are created by calling
|
* <code>NodeIterators</code> are created by calling
|
||||||
* <code>DocumentTraversal</code><code>.createNodeIterator()</code>.
|
* <code>DocumentTraversal</code><code>.createNodeIterator()</code>.
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface NodeIterator {
|
public interface NodeIterator {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -60,7 +60,7 @@ import org.w3c.dom.DOMException;
|
||||||
* nodes will be siblings and appear as direct children of the root node, no
|
* nodes will be siblings and appear as direct children of the root node, no
|
||||||
* matter how deeply nested the structure of the original document.
|
* matter how deeply nested the structure of the original document.
|
||||||
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
* <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
|
||||||
* @since 1.9, DOM Level 2
|
* @since 9, DOM Level 2
|
||||||
*/
|
*/
|
||||||
public interface TreeWalker {
|
public interface TreeWalker {
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue