changeset 729:3bcf83c1bbc1 jdk9-b62

Merge
author lana
date Thu, 23 Apr 2015 16:12:16 -0700
parents d456b2db5d1b d0a2a4961274
children 4a8f895f0317
files
diffstat 68 files changed, 3905 insertions(+), 1412 deletions(-) [+]
line wrap: on
line diff
--- a/src/java.xml/share/classes/javax/xml/XMLConstants.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/XMLConstants.java	Thu Apr 23 16:12:16 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml;
 
 /**
- * <p>Utility class to contain basic XML values as constants.</p>
+ * <p>Utility class to contain basic XML values as constants.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @see <a href="http://www.w3.org/TR/xml11/">Extensible Markup Language (XML) 1.1</a>
@@ -42,15 +42,15 @@
 public final class XMLConstants {
 
     /**
-     * <p>Private constructor to prevent instantiation.</p>
+     * Private constructor to prevent instantiation.
      */
-        private XMLConstants() {
-        }
+    private XMLConstants() {
+    }
 
     /**
-     * <p>Namespace URI to use to represent that there is no Namespace.</p>
+     * Namespace URI to use to represent that there is no Namespace.
      *
-     * <p>Defined by the Namespace specification to be "".</p>
+     * <p>Defined by the Namespace specification to be "".
      *
      * @see <a href="http://www.w3.org/TR/REC-xml-names/#defaulting">
      * Namespaces in XML, 5.2 Namespace Defaulting</a>
@@ -58,9 +58,9 @@
     public static final String NULL_NS_URI = "";
 
     /**
-     * <p>Prefix to use to represent the default XML Namespace.</p>
+     * Prefix to use to represent the default XML Namespace.
      *
-     * <p>Defined by the XML specification to be "".</p>
+     * <p>Defined by the XML specification to be "".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -69,10 +69,10 @@
     public static final String DEFAULT_NS_PREFIX = "";
 
     /**
-     * <p>The official XML Namespace name URI.</p>
+     * The official XML Namespace name URI.
      *
      * <p>Defined by the XML specification to be
-     * "{@code http://www.w3.org/XML/1998/namespace}".</p>
+     * "{@code http://www.w3.org/XML/1998/namespace}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -82,23 +82,23 @@
         "http://www.w3.org/XML/1998/namespace";
 
     /**
-     * <p>The official XML Namespace prefix.</p>
+     * The official XML Namespace prefix.
      *
-     * <p>Defined by the XML specification to be "{@code xml}".</p>
+     * <p>Defined by the XML specification to be "{@code xml}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
-     * Namespaces in XML, 3. Qualified Names<</a>
+     * Namespaces in XML, 3. Qualified Names</a>
      */
     public static final String XML_NS_PREFIX = "xml";
 
     /**
-     * <p>The official XML attribute used for specifying XML Namespace
+     * The official XML attribute used for specifying XML Namespace
      * declarations, {@link #XMLNS_ATTRIBUTE
-     * XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.</p>
+     * XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.
      *
      * <p>Defined by the XML specification to be
-     * "{@code http://www.w3.org/2000/xmlns/}".</p>
+     * "{@code http://www.w3.org/2000/xmlns/}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -111,12 +111,12 @@
         "http://www.w3.org/2000/xmlns/";
 
     /**
-     * <p>The official XML attribute used for specifying XML Namespace
-     * declarations.</p>
+     * The official XML attribute used for specifying XML Namespace
+     * declarations.
      *
      * <p>It is <strong><em>NOT</em></strong> valid to use as a
      * prefix.  Defined by the XML specification to be
-     * "{@code xmlns}".</p>
+     * "{@code xmlns}".
      *
      * @see <a
      * href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
@@ -125,7 +125,7 @@
     public static final String XMLNS_ATTRIBUTE = "xmlns";
 
     /**
-     * <p>W3C XML Schema Namespace URI.</p>
+     * W3C XML Schema Namespace URI.
      *
      * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema}".
      *
@@ -138,9 +138,9 @@
         "http://www.w3.org/2001/XMLSchema";
 
     /**
-     * <p>W3C XML Schema Instance Namespace URI.</p>
+     * W3C XML Schema Instance Namespace URI.
      *
-     * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".</p>
+     * <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".
      *
      * @see <a href=
      *  "http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions">
@@ -150,33 +150,33 @@
     public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI =
         "http://www.w3.org/2001/XMLSchema-instance";
 
-        /**
-         * <p>W3C XPath Datatype Namespace URI.</p>
-         *
-         * <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".</p>
-         *
-         * @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
-         */
-        public static final String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
+    /**
+     * W3C XPath Datatype Namespace URI.
+     *
+     * <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".
+     *
+     * @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
+     */
+    public static final String W3C_XPATH_DATATYPE_NS_URI = "http://www.w3.org/2003/11/xpath-datatypes";
 
     /**
-     * <p>XML Document Type Declaration Namespace URI as an arbitrary value.</p>
+     * XML Document Type Declaration Namespace URI as an arbitrary value.
      *
      * <p>Since not formally defined by any existing standard, arbitrarily define to be "{@code http://www.w3.org/TR/REC-xml}".
      */
     public static final String XML_DTD_NS_URI = "http://www.w3.org/TR/REC-xml";
 
         /**
-         * <p>RELAX NG Namespace URI.</p>
+         * RELAX NG Namespace URI.
          *
-         * <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".</p>
+         * <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".
          *
          * @see <a href="http://relaxng.org/spec-20011203.html">RELAX NG Specification</a>
          */
         public static final String RELAXNG_NS_URI = "http://relaxng.org/ns/structure/1.0";
 
         /**
-         * <p>Feature for secure processing.</p>
+         * Feature for secure processing.
          *
          * <ul>
          *   <li>
@@ -193,14 +193,13 @@
 
 
         /**
-         * <p>Property: accessExternalDTD</p>
+         * Property: accessExternalDTD
          *
          * <p>
          * Restrict access to external DTDs and external Entity References to the protocols specified.
          * If access is denied due to the restriction of this property, a runtime exception that
          * is specific to the context is thrown. In the case of {@link javax.xml.parsers.SAXParser}
          * for example, {@link org.xml.sax.SAXException} is thrown.
-         * </p>
          *
          * <p>
          * <b>Value: </b> a list of protocols separated by comma. A protocol is the scheme portion of a
@@ -221,7 +220,6 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
          *<p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
@@ -231,20 +229,19 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
          *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
+         *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalDTD}.
-         * </p>
+         *
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
@@ -252,11 +249,8 @@
          * directory of the Java installation. If the file exists and the system
          * property is specified, its value will be used to override the default
          * of the property.
-         * </p>
          *
-         * <p>
          *
-         * </p>
          * @since 1.7
          */
         public static final String ACCESS_EXTERNAL_DTD = "http://javax.xml.XMLConstants/property/accessExternalDTD";
@@ -270,7 +264,7 @@
          * due to the restriction of this property, a runtime exception that is specific
          * to the context is thrown. In the case of {@link javax.xml.validation.SchemaFactory}
          * for example, org.xml.sax.SAXException is thrown.
-         * </p>
+         *
          * <p>
          * <b>Value:</b> a list of protocols separated by comma. A protocol is the scheme portion of a
          * {@link java.net.URI}, or in the case of the JAR protocol, "jar" plus the scheme portion
@@ -290,9 +284,8 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
-         *<p>
+         * <p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
          * The following options are provided for consideration:
          * <blockquote>
@@ -300,20 +293,18 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
+         *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
          *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalSchema}
-         * </p>
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
@@ -323,12 +314,11 @@
          * of the property.
          *
          * @since 1.7
-         * </p>
          */
         public static final String ACCESS_EXTERNAL_SCHEMA = "http://javax.xml.XMLConstants/property/accessExternalSchema";
 
         /**
-         * <p>Property: accessExternalStylesheet</p>
+         * Property: accessExternalStylesheet
          *
          * <p>
          * Restrict access to the protocols specified for external references set by the
@@ -338,7 +328,7 @@
          * {@link javax.xml.transform.Transformer} for example,
          * {@link javax.xml.transform.TransformerConfigurationException}
          * will be thrown by the {@link javax.xml.transform.TransformerFactory}.
-         * </p>
+         *
          * <p>
          * <b>Value:</b> a list of protocols separated by comma. A protocol is the scheme portion of a
          * {@link java.net.URI}, or in the case of the JAR protocol, "jar" plus the scheme portion
@@ -358,9 +348,8 @@
          * Examples of protocols are file, http, jar:file.
          *
          * </blockquote>
-         *</p>
          *
-         *<p>
+         * <p>
          * <b>Default value:</b> The default value is implementation specific and therefore not specified.
          * The following options are provided for consideration:
          * <blockquote>
@@ -368,20 +357,18 @@
          *     <LI>an empty string to deny all access to external references;</LI>
          *     <LI>a specific protocol, such as file, to give permission to only the protocol;</LI>
          *     <LI>the keyword "all" to grant  permission to all protocols.</LI>
-         *</UL><br>
+         * </UL><br>
          *      When FEATURE_SECURE_PROCESSING is enabled,  it is recommended that implementations
          *      restrict external connections by default, though this may cause problems for applications
          *      that process XML/XSD/XSL with external references.
          * </blockquote>
-         * </p>
+         *
          * <p>
          * <b>Granting all access:</b>  the keyword "all" grants permission to all protocols.
-         * </p>
          *
          * <p>
          * <b>System Property:</b> The value of this property can be set or overridden by
          * system property {@code javax.xml.accessExternalStylesheet}
-         * </p>
          *
          * <p>
          * <b>jaxp.properties:</b> This configuration file is in standard
--- a/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -32,11 +32,10 @@
 import java.util.regex.Pattern;
 
 /**
- * Factory that creates new <code>javax.xml.datatype</code> <code>Object</code>s that map XML to/from Java <code>Object</code>s.
+ * Factory that creates new {@code javax.xml.datatype} {@code Object}s that map XML to/from Java {@code Object}s.
  * <p>
  * A new instance of the {@code DatatypeFactory} is created through the {@link #newInstance()} method
  * that uses the following implementation resolution mechanisms to determine an implementation:
- * <p>
  * <ol>
  *    <li>
  *      If the system property specified by {@link #DATATYPEFACTORY_PROPERTY}, "{@code javax.xml.datatype.DatatypeFactory}",
@@ -89,9 +88,9 @@
 public abstract class DatatypeFactory {
 
     /**
-     * <p>Default property name as defined in JSR 206: Java(TM) API for XML Processing (JAXP) 1.3.</p>
+     * Default property name as defined in JSR 206: Java(TM) API for XML Processing (JAXP) 1.3.
      *
-     * <p>Default value is {@code javax.xml.datatype.DatatypeFactory}.</p>
+     * <p>Default value is {@code javax.xml.datatype.DatatypeFactory}.
      */
     public static final String DATATYPEFACTORY_PROPERTY =
             // We use a String constant here, rather than calling
@@ -100,16 +99,15 @@
             "javax.xml.datatype.DatatypeFactory";
 
     /**
-     * <p>Default implementation class name as defined in
-     * <em>JSR 206: Java(TM) API for XML Processing (JAXP) 1.3</em>.</p>
+     * Default implementation class name as defined in
+     * <em>JSR 206: Java(TM) API for XML Processing (JAXP) 1.3</em>.
      *
      * <p>Implementers should specify the name of an appropriate class
      * to be instantiated if no other implementation resolution mechanism
-     * succeeds.</p>
+     * succeeds.
      *
      * <p>Users should not refer to this field; it is intended only to
      * document a factory implementation detail.
-     * </p>
      */
     public static final String DATATYPEFACTORY_IMPLEMENTATION_CLASS =
         // We use new String() here to prevent javadoc from generating
@@ -130,18 +128,18 @@
         Pattern.compile("[^YM]*[DT].*");
 
     /**
-     * <p>Protected constructor to prevent instantiation outside of package.</p>
+     * Protected constructor to prevent instantiation outside of package.
      *
-     * <p>Use {@link #newInstance()} to create a {@code DatatypeFactory}.</p>
+     * <p>Use {@link #newInstance()} to create a {@code DatatypeFactory}.
      */
     protected DatatypeFactory() {
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DatatypeFactory}.</p>
+     * Obtain a new instance of a {@code DatatypeFactory}.
      *
      * <p>The implementation resolution mechanisms are <a href="#DatatypeFactory.newInstance">defined</a> in this
-     * <code>Class</code>'s documentation.</p>
+     * {@code Class}'s documentation.
      *
      * @return New instance of a {@code DatatypeFactory}
      *
@@ -161,33 +159,33 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DatatypeFactory} from class name.
+     * Obtain a new instance of a {@code DatatypeFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a {@code DatatypeFactory}
-     * it can use the factory to configure and obtain datatype instances.</P>
+     * it can use the factory to configure and obtain datatype instances.
      *
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.datatype.DatatypeFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code DatatypeFactory}
      *
-     * @throws DatatypeConfigurationException if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws DatatypeConfigurationException if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -201,11 +199,11 @@
      }
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as its string representation, "PnYnMnDTnHnMnS",
-     * as defined in XML Schema 1.0 section 3.2.6.1.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as its string representation, "PnYnMnDTnHnMnS",
+     * as defined in XML Schema 1.0 section 3.2.6.1.
      *
-     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines <code>duration</code> as:</p>
+     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines {@code duration} as:
      * <blockquote>
      * duration represents a duration of time.
      * The value space of duration is a six-dimensional space where the coordinates designate the
@@ -213,28 +211,28 @@
      * These components are ordered in their significance by their order of appearance i.e. as
      * year, month, day, hour, minute, and second.
      * </blockquote>
-     * <p>All six values are set and available from the created {@link Duration}</p>
+     * <p>All six values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * @param lexicalRepresentation <code>String</code> representation of a <code>Duration</code>.
+     * @param lexicalRepresentation {@code String} representation of a {@code Duration}.
      *
-     * @return New <code>Duration</code> created from parsing the <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created from parsing the {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code>.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is not a valid representation of a {@code Duration}.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException if <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException if {@code lexicalRepresentation} is {@code null}.
      */
     public abstract Duration newDuration(final String lexicalRepresentation);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as milliseconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as milliseconds.
      *
-     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines <code>duration</code> as:</p>
+     * <p>XML Schema Part 2: Datatypes, 3.2.6 duration, defines {@code duration} as:
      * <blockquote>
      * duration represents a duration of time.
      * The value space of duration is a six-dimensional space where the coordinates designate the
@@ -243,8 +241,8 @@
      * year, month, day, hour, minute, and second.
      * </blockquote>
      * <p>All six values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -259,38 +257,38 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getMonths()} and {@link Duration#getDays()} can be influenced.</p>
+     * so the result of {@link Duration#getMonths()} and {@link Duration#getDays()} can be influenced.
      *
      * @param durationInMilliSeconds Duration in milliseconds to create.
      *
-     * @return New <code>Duration</code> representing <code>durationInMilliSeconds</code>.
+     * @return New {@code Duration} representing {@code durationInMilliSeconds}.
      */
     public abstract Duration newDuration(final long durationInMilliSeconds);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as isPositive, years, months, days, hours, minutes, seconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as isPositive, years, months, days, hours, minutes, seconds.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param years of this <code>Duration</code>
-     * @param months of this <code>Duration</code>
-     * @param days of this <code>Duration</code>
-     * @param hours of this <code>Duration</code>
-     * @param minutes of this <code>Duration</code>
-     * @param seconds of this <code>Duration</code>
+     * @param years of this {@code Duration}
+     * @param months of this {@code Duration}
+     * @param days of this {@code Duration}
+     * @param hours of this {@code Duration}
+     * @param minutes of this {@code Duration}
+     * @param seconds of this {@code Duration}
      *
-     * @return New <code>Duration</code> created from the specified values.
+     * @return New {@code Duration} created from the specified values.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all the fields (years, months, ...) are null or
+     * {@code Duration}: if all the fields (years, months, ...) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -304,24 +302,24 @@
             final BigDecimal seconds);
 
     /**
-     * <p>Obtain a new instance of a <code>Duration</code>
-     * specifying the <code>Duration</code> as isPositive, years, months, days, hours, minutes, seconds.</p>
+     * Obtain a new instance of a {@code Duration}
+     * specifying the {@code Duration} as isPositive, years, months, days, hours, minutes, seconds.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param years of this <code>Duration</code>
-     * @param months of this <code>Duration</code>
-     * @param days of this <code>Duration</code>
-     * @param hours of this <code>Duration</code>
-     * @param minutes of this <code>Duration</code>
-     * @param seconds of this <code>Duration</code>
+     * @param years of this {@code Duration}
+     * @param months of this {@code Duration}
+     * @param days of this {@code Duration}
+     * @param hours of this {@code Duration}
+     * @param minutes of this {@code Duration}
+     * @param seconds of this {@code Duration}
      *
-     * @return New <code>Duration</code> created from the specified values.
+     * @return New {@code Duration} created from the specified values.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields is negative.
+     * {@code Duration}: if any of the fields is negative.
      *
      * @see #newDuration(
      *   boolean isPositive,
@@ -371,28 +369,30 @@
             }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> by parsing its <code>String</code> representation,
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration}
+     * by parsing its {@code String} representation,
      * "<em>PnDTnHnMnS</em>", <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
-     * <p>All four values are set and available from the created {@link Duration}</p>
+     * <p>All four values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
      * @param lexicalRepresentation Lexical representation of a duration.
      *
-     * @return New <code>Duration</code> created using the specified <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created using the specified {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code> expressed only in terms of days and time.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is
+     *         not a valid representation of a {@code Duration} expressed only in terms of days and time.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public Duration newDurationDayTime(final String lexicalRepresentation) {
         // lexicalRepresentation must be non-null
@@ -415,17 +415,18 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified milliseconds as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration}
+     * using the specified milliseconds as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
      * <p>All four values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -440,13 +441,13 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getDays()} can be influenced.</p>
+     * so the result of {@link Duration#getDays()} can be influenced.
      *
-     * <p>Any remaining milliseconds after determining the day, hour, minute and second are discarded.</p>
+     * <p>Any remaining milliseconds after determining the day, hour, minute and second are discarded.
      *
-     * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
+     * @param durationInMilliseconds Milliseconds of {@code Duration} to create.
      *
-     * @return New <code>Duration</code> created with the specified <code>durationInMilliseconds</code>.
+     * @return New {@code Duration} created with the specified {@code durationInMilliseconds}.
      *
      * @see <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
      *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>
@@ -457,34 +458,34 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified
-     * <code>day</code>, <code>hour</code>, <code>minute</code> and <code>second</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration} using the specified
+     * {@code day}, {@code hour}, {@code minute} and {@code second} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param day Day of <code>Duration</code>.
-     * @param hour Hour of <code>Duration</code>.
-     * @param minute Minute of <code>Duration</code>.
-     * @param second Second of <code>Duration</code>.
+     * @param day Day of {@code Duration}.
+     * @param hour Hour of {@code Duration}.
+     * @param minute Minute of {@code Duration}.
+     * @param second Second of {@code Duration}.
      *
-     * @return New <code>Duration</code> created with the specified <code>day</code>, <code>hour</code>, <code>minute</code>
-     * and <code>second</code>.
+     * @return New {@code Duration} created with the specified {@code day}, {@code hour}, {@code minute}
+     * and {@code second}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all the fields (day, hour, ...) are null or
+     * {@code Duration}: if all the fields (day, hour, ...) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -507,29 +508,29 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:dayTimeDuration</code> using the specified
-     * <code>day</code>, <code>hour</code>, <code>minute</code> and <code>second</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:dayTimeDuration} using the specified
+     * {@code day}, {@code hour}, {@code minute} and {@code second} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a>.
      *
-     * <p>The datatype <code>xdt:dayTimeDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:dayTimeDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only day, hour, minute, and second components.
-     * This datatype resides in the namespace <code>http://www.w3.org/2003/11/xpath-datatypes</code>.</p>
+     * This datatype resides in the namespace {@code http://www.w3.org/2003/11/xpath-datatypes}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param day Day of <code>Duration</code>.
-     * @param hour Hour of <code>Duration</code>.
-     * @param minute Minute of <code>Duration</code>.
-     * @param second Second of <code>Duration</code>.
+     * @param day Day of {@code Duration}.
+     * @param hour Hour of {@code Duration}.
+     * @param minute Minute of {@code Duration}.
+     * @param second Second of {@code Duration}.
      *
-     * @return New <code>Duration</code> created with the specified <code>day</code>, <code>hour</code>, <code>minute</code>
-     * and <code>second</code>.
+     * @return New {@code Duration} created with the specified {@code day}, {@code hour}, {@code minute}
+     * and {@code second}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields (day, hour, ...) is negative.
+     * {@code Duration}: if any of the fields (day, hour, ...) is negative.
      */
     public Duration newDurationDayTime(
             final boolean isPositive,
@@ -548,28 +549,30 @@
             }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> by parsing its <code>String</code> representation,
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration}
+     * by parsing its {@code String} representation,
      * "<em>PnYnM</em>", <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>The datatype <code>xdt:yearMonthDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:yearMonthDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only year and month components.
-     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.</p>
+     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.
      *
-     * <p>Both values are set and available from the created {@link Duration}</p>
+     * <p>Both values are set and available from the created {@link Duration}
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
-     * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
-     * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * Implementations may chose not to or be incapable of supporting
+     * arbitrarily large and/or small values. An {@link UnsupportedOperationException}
+     * will be thrown with a message indicating implementation limits
+     * if implementation capacities are exceeded.
      *
      * @param lexicalRepresentation Lexical representation of a duration.
      *
-     * @return New <code>Duration</code> created using the specified <code>lexicalRepresentation</code>.
+     * @return New {@code Duration} created using the specified {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If <code>lexicalRepresentation</code> is not a valid representation of a <code>Duration</code> expressed only in terms of years and months.
+     * @throws IllegalArgumentException If {@code lexicalRepresentation} is not a valid representation of a {@code Duration} expressed only in terms of years and months.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public Duration newDurationYearMonth(
             final String lexicalRepresentation) {
@@ -594,17 +597,18 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified milliseconds as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration}
+     * using the specified milliseconds as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>The datatype <code>xdt:yearMonthDuration</code> is a subtype of <code>xs:duration</code>
+     * <p>The datatype {@code xdt:yearMonthDuration} is a subtype of {@code xs:duration}
      * whose lexical representation contains only year and month components.
-     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.</p>
+     * This datatype resides in the namespace {@link javax.xml.XMLConstants#W3C_XPATH_DATATYPE_NS_URI}.
      *
      * <p>Both values are set by computing their values from the specified milliseconds
-     * and are available using the <code>get</code> methods of  the created {@link Duration}.
-     * The values conform to and are defined by:</p>
+     * and are available using the {@code get} methods of  the created {@link Duration}.
+     * The values conform to and are defined by:
      * <ul>
      *   <li>ISO 8601:2000(E) Section 5.5.3.2 Alternative format</li>
      *   <li><a href="http://www.w3.org/TR/xmlschema-2/#isoformats">
@@ -619,13 +623,13 @@
      * {@link java.util.Calendar#DATE} = 1, etc.
      * This is important as there are variations in the Gregorian Calendar,
      * e.g. leap years have different days in the month = {@link java.util.Calendar#FEBRUARY}
-     * so the result of {@link Duration#getMonths()} can be influenced.</p>
+     * so the result of {@link Duration#getMonths()} can be influenced.
      *
-     * <p>Any remaining milliseconds after determining the year and month are discarded.</p>
+     * <p>Any remaining milliseconds after determining the year and month are discarded.
      *
-     * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
+     * @param durationInMilliseconds Milliseconds of {@code Duration} to create.
      *
-     * @return New <code>Duration</code> created using the specified <code>durationInMilliseconds</code>.
+     * @return New {@code Duration} created using the specified {@code durationInMilliseconds}.
      */
     public Duration newDurationYearMonth(
             final long durationInMilliseconds) {
@@ -646,27 +650,27 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified
-     * <code>year</code> and <code>month</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration} using the specified
+     * {@code year} and {@code month} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
      * <p>The XML Schema specification states that values can be of an arbitrary size.
      * Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
      * An {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
-     * if implementation capacities are exceeded.</p>
+     * if implementation capacities are exceeded.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param year Year of <code>Duration</code>.
-     * @param month Month of <code>Duration</code>.
+     * @param year Year of {@code Duration}.
+     * @param month Month of {@code Duration}.
      *
-     * @return New <code>Duration</code> created using the specified <code>year</code> and <code>month</code>.
+     * @return New {@code Duration} created using the specified {@code year} and {@code month}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if all of the fields (year, month) are null or
+     * {@code Duration}: if all of the fields (year, month) are null or
      * if any of the fields is negative.
      * @throws UnsupportedOperationException If implementation cannot support requested values.
      */
@@ -687,22 +691,22 @@
     }
 
     /**
-     * <p>Create a <code>Duration</code> of type <code>xdt:yearMonthDuration</code> using the specified
-     * <code>year</code> and <code>month</code> as defined in
+     * Create a {@code Duration} of type {@code xdt:yearMonthDuration} using the specified
+     * {@code year} and {@code month} as defined in
      * <a href="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration">
-     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.</p>
+     *   XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a>.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param isPositive Set to <code>false</code> to create a negative duration. When the length
+     * @param isPositive Set to {@code false} to create a negative duration. When the length
      *   of the duration is zero, this parameter will be ignored.
-     * @param year Year of <code>Duration</code>.
-     * @param month Month of <code>Duration</code>.
+     * @param year Year of {@code Duration}.
+     * @param month Month of {@code Duration}.
      *
-     * @return New <code>Duration</code> created using the specified <code>year</code> and <code>month</code>.
+     * @return New {@code Duration} created using the specified {@code year} and {@code month}.
      *
      * @throws IllegalArgumentException If the values are not a valid representation of a
-     * <code>Duration</code>: if any of the fields (year, month) is negative.
+     * {@code Duration}: if any of the fields (year, month) is negative.
      */
     public Duration newDurationYearMonth(
             final boolean isPositive,
@@ -716,44 +720,44 @@
             }
 
     /**
-     * <p>Create a new instance of an <code>XMLGregorianCalendar</code>.</p>
+     * Create a new instance of an {@code XMLGregorianCalendar}.
      *
-     * <p>All date/time datatype fields set to {@link DatatypeConstants#FIELD_UNDEFINED} or null.</p>
+     * <p>All date/time datatype fields set to {@link DatatypeConstants#FIELD_UNDEFINED} or null.
      *
-     * @return New <code>XMLGregorianCalendar</code> with all date/time datatype fields set to
+     * @return New {@code XMLGregorianCalendar} with all date/time datatype fields set to
      *   {@link DatatypeConstants#FIELD_UNDEFINED} or null.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar();
 
     /**
-     * <p>Create a new XMLGregorianCalendar by parsing the String as a lexical representation.</p>
+     * Create a new XMLGregorianCalendar by parsing the String as a lexical representation.
      *
      * <p>Parsing the lexical string representation is defined in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">XML Schema 1.0 Part 2, Section 3.2.[7-14].1,
-     * <em>Lexical Representation</em>.</a></p>
+     * <em>Lexical Representation</em>.</a>
      *
-     * <p>The string representation may not have any leading and trailing whitespaces.</p>
+     * <p>The string representation may not have any leading and trailing whitespaces.
      *
      * <p>The parsing is done field by field so that
-     * the following holds for any lexically correct String x:</p>
+     * the following holds for any lexically correct String x:
      * <pre>
      * newXMLGregorianCalendar(x).toXMLFormat().equals(x)
      * </pre>
      * <p>Except for the noted lexical/canonical representation mismatches
      * listed in <a href="http://www.w3.org/2001/05/xmlschema-errata#e2-45">
-     * XML Schema 1.0 errata, Section 3.2.7.2</a>.</p>
+     * XML Schema 1.0 errata, Section 3.2.7.2</a>.
      *
      * @param lexicalRepresentation Lexical representation of one the eight XML Schema date/time datatypes.
      *
-     * @return <code>XMLGregorianCalendar</code> created from the <code>lexicalRepresentation</code>.
+     * @return {@code XMLGregorianCalendar} created from the {@code lexicalRepresentation}.
      *
-     * @throws IllegalArgumentException If the <code>lexicalRepresentation</code> is not a valid <code>XMLGregorianCalendar</code>.
-     * @throws NullPointerException If <code>lexicalRepresentation</code> is <code>null</code>.
+     * @throws IllegalArgumentException If the {@code lexicalRepresentation} is not a valid {@code XMLGregorianCalendar}.
+     * @throws NullPointerException If {@code lexicalRepresentation} is {@code null}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(final String lexicalRepresentation);
 
     /**
-     * <p>Create an <code>XMLGregorianCalendar</code> from a {@link GregorianCalendar}.</p>
+     * Create an {@code XMLGregorianCalendar} from a {@link GregorianCalendar}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
@@ -764,30 +768,30 @@
      *       </th>
      *     </tr>
      *     <tr>
-     *        <th><code>java.util.GregorianCalendar</code> field</th>
-     *        <th><code>javax.xml.datatype.XMLGregorianCalendar</code> field</th>
+     *        <th>{@code java.util.GregorianCalendar} field</th>
+     *        <th>{@code javax.xml.datatype.XMLGregorianCalendar} field</th>
      *     </tr>
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td><code>ERA == GregorianCalendar.BC ? -YEAR : YEAR</code></td>
+     *       <td>{@code ERA == GregorianCalendar.BC ? -YEAR : YEAR}</td>
      *       <td>{@link XMLGregorianCalendar#setYear(int year)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MONTH + 1</code></td>
+     *       <td>{@code MONTH + 1}</td>
      *       <td>{@link XMLGregorianCalendar#setMonth(int month)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>DAY_OF_MONTH</code></td>
+     *       <td>{@code DAY_OF_MONTH}</td>
      *       <td>{@link XMLGregorianCalendar#setDay(int day)}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND</code></td>
+     *       <td>{@code HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND}</td>
      *       <td>{@link XMLGregorianCalendar#setTime(int hour, int minute, int second, BigDecimal fractional)}</td>
      *     </tr>
      *     <tr>
      *       <td>
-     *         <code>(ZONE_OFFSET + DST_OFFSET) / (60*1000)</code><br/>
+     *         {@code (ZONE_OFFSET + DST_OFFSET) / (60*1000)}<br>
      *         <em>(in minutes)</em>
      *       </td>
      *       <td>{@link XMLGregorianCalendar#setTimezone(int offset)}<sup><em>*</em></sup>
@@ -796,49 +800,50 @@
      *   </tbody>
      * </table>
      * <p><em>*</em>conversion loss of information. It is not possible to represent
-     * a <code>java.util.GregorianCalendar</code> daylight savings timezone id in the
-     * XML Schema 1.0 date/time datatype representation.</p>
+     * a {@code java.util.GregorianCalendar} daylight savings timezone id in the
+     * XML Schema 1.0 date/time datatype representation.
      *
-     * <p>To compute the return value's <code>TimeZone</code> field,
+     * <p>To compute the return value's {@code TimeZone} field,
      * <ul>
-     * <li>when <code>this.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using the <code>this.getTimezone()</code>.</li>
-     * <li>else use the <code>GregorianCalendar</code> default timezone value
+     * <li>when {@code this.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using the {@code this.getTimezone()}.</li>
+     * <li>else use the {@code GregorianCalendar} default timezone value
      * for the host is defined as specified by
-     * <code>java.util.TimeZone.getDefault()</code>.</li></p>
+     * {@code java.util.TimeZone.getDefault()}.</li>
+     * </ul>
      *
-     * @param cal <code>java.util.GregorianCalendar</code> used to create <code>XMLGregorianCalendar</code>
+     * @param cal {@code java.util.GregorianCalendar} used to create {@code XMLGregorianCalendar}
      *
-     * @return <code>XMLGregorianCalendar</code> created from <code>java.util.GregorianCalendar</code>
+     * @return {@code XMLGregorianCalendar} created from {@code java.util.GregorianCalendar}
      *
-     * @throws NullPointerException If <code>cal</code> is <code>null</code>.
+     * @throws NullPointerException If {@code cal} is {@code null}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(final GregorianCalendar cal);
 
     /**
-     * <p>Constructor allowing for complete value spaces allowed by
+     * Constructor allowing for complete value spaces allowed by
      * W3C XML Schema 1.0 recommendation for xsd:dateTime and related
-     * builtin datatypes. Note that <code>year</code> parameter supports
+     * builtin datatypes. Note that {@code year} parameter supports
      * arbitrarily large numbers and fractionalSecond has infinite
-     * precision.</p>
+     * precision.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
-     * @param hour of <code>XMLGregorianCalendar</code> to be created.
-     * @param minute of <code>XMLGregorianCalendar</code> to be created.
-     * @param second of <code>XMLGregorianCalendar</code> to be created.
-     * @param fractionalSecond of <code>XMLGregorianCalendar</code> to be created.
-     * @param timezone of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
+     * @param hour of {@code XMLGregorianCalendar} to be created.
+     * @param minute of {@code XMLGregorianCalendar} to be created.
+     * @param second of {@code XMLGregorianCalendar} to be created.
+     * @param fractionalSecond of {@code XMLGregorianCalendar} to be created.
+     * @param timezone of {@code XMLGregorianCalendar} to be created.
      *
-     * @return <code>XMLGregorianCalendar</code> created from specified values.
+     * @return {@code XMLGregorianCalendar} created from specified values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public abstract XMLGregorianCalendar newXMLGregorianCalendar(
@@ -852,29 +857,29 @@
             final int timezone);
 
     /**
-     * <p>Constructor of value spaces that a
-     * <code>java.util.GregorianCalendar</code> instance would need to convert to an
-     * <code>XMLGregorianCalendar</code> instance.</p>
+     * Constructor of value spaces that a
+     * {@code java.util.GregorianCalendar} instance would need to convert to an
+     * {@code XMLGregorianCalendar} instance.
      *
-     * <p><code>XMLGregorianCalendar eon</code> and
-     * <code>fractionalSecond</code> are set to <code>null</code></p>
+     * <p>{@code XMLGregorianCalendar eon} and
+     * {@code fractionalSecond} are set to {@code null}
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
-     * @param hour of <code>XMLGregorianCalendar</code> to be created.
-     * @param minute of <code>XMLGregorianCalendar</code> to be created.
-     * @param second of <code>XMLGregorianCalendar</code> to be created.
-     * @param millisecond of <code>XMLGregorianCalendar</code> to be created.
-     * @param timezone of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
+     * @param hour of {@code XMLGregorianCalendar} to be created.
+     * @param minute of {@code XMLGregorianCalendar} to be created.
+     * @param second of {@code XMLGregorianCalendar} to be created.
+     * @param millisecond of {@code XMLGregorianCalendar} to be created.
+     * @param timezone of {@code XMLGregorianCalendar} to be created.
      *
-     * @return <code>XMLGregorianCalendar</code> created from specified values.
+     * @return {@code XMLGregorianCalendar} created from specified values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendar(
@@ -918,26 +923,26 @@
     }
 
     /**
-     * <p>Create a Java representation of XML Schema builtin datatype <code>date</code> or <code>g*</code>.</p>
+     * Create a Java representation of XML Schema builtin datatype {@code date} or {@code g*}.
      *
-     * <p>For example, an instance of <code>gYear</code> can be created invoking this factory
-     * with <code>month</code> and <code>day</code> parameters set to
-     * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>For example, an instance of {@code gYear} can be created invoking this factory
+     * with {@code month} and {@code day} parameters set to
+     * {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
-     * @param year of <code>XMLGregorianCalendar</code> to be created.
-     * @param month of <code>XMLGregorianCalendar</code> to be created.
-     * @param day of <code>XMLGregorianCalendar</code> to be created.
+     * @param year of {@code XMLGregorianCalendar} to be created.
+     * @param month of {@code XMLGregorianCalendar} to be created.
+     * @param day of {@code XMLGregorianCalendar} to be created.
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarDate(
@@ -958,20 +963,20 @@
             }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype <code>time</code>.</p>
+     * Create a Java instance of XML Schema builtin datatype {@code time}.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
      * @param seconds number of seconds
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
@@ -994,24 +999,24 @@
     }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype time.</p>
+     * Create a Java instance of XML Schema builtin datatype time.
      *
-     * <p>A <code>null</code> value indicates that field is not set.</p>
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@code null} value indicates that field is not set.
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
      * @param seconds number of seconds
-     * @param fractionalSecond value of <code>null</code> indicates that this optional field is not set.
+     * @param fractionalSecond value of {@code null} indicates that this optional field is not set.
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarTime(
@@ -1033,9 +1038,9 @@
             }
 
     /**
-     * <p>Create a Java instance of XML Schema builtin datatype time.</p>
+     * Create a Java instance of XML Schema builtin datatype time.
      *
-     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.</p>
+     * <p>A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field is not set.
      *
      * @param hours number of hours
      * @param minutes number of minutes
@@ -1043,13 +1048,13 @@
      * @param milliseconds number of milliseconds
      * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
      *
-     * @return <code>XMLGregorianCalendar</code> created from parameter values.
+     * @return {@code XMLGregorianCalendar} created from parameter values.
      *
      * @see DatatypeConstants#FIELD_UNDEFINED
      *
      * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
      *   as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
-     *   or if the composite values constitute an invalid <code>XMLGregorianCalendar</code> instance
+     *   or if the composite values constitute an invalid {@code XMLGregorianCalendar} instance
      *   as determined by {@link XMLGregorianCalendar#isValid()}.
      */
     public XMLGregorianCalendar newXMLGregorianCalendarTime(
--- a/src/java.xml/share/classes/javax/xml/datatype/Duration.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/datatype/Duration.java	Thu Apr 23 16:12:16 2015 -0700
@@ -35,37 +35,37 @@
 
 /**
  * <p>Immutable representation of a time span as defined in
- * the W3C XML Schema 1.0 specification.</p>
+ * the W3C XML Schema 1.0 specification.
  *
  * <p>A Duration object represents a period of Gregorian time,
  * which consists of six fields (years, months, days, hours,
- * minutes, and seconds) plus a sign (+/-) field.</p>
+ * minutes, and seconds) plus a sign (+/-) field.
  *
- * <p>The first five fields have non-negative (>=0) integers or null
+ * <p>The first five fields have non-negative ({@literal >=}0) integers or null
  * (which represents that the field is not set),
  * and the seconds field has a non-negative decimal or null.
- * A negative sign indicates a negative duration.</p>
+ * A negative sign indicates a negative duration.
  *
  * <p>This class provides a number of methods that make it easy
  * to use for the duration datatype of XML Schema 1.0 with
- * the errata.</p>
+ * the errata.
  *
  * <h2>Order relationship</h2>
  * <p>Duration objects only have partial order, where two values A and B
- * maybe either:</p>
+ * maybe either:
  * <ol>
- *  <li>A&lt;B (A is shorter than B)
- *  <li>A&gt;B (A is longer than B)
+ *  <li>A{@literal <}B (A is shorter than B)
+ *  <li>A{@literal >}B (A is longer than B)
  *  <li>A==B   (A and B are of the same duration)
- *  <li>A&lt;>B (Comparison between A and B is indeterminate)
+ *  <li>A{@literal <>}B (Comparison between A and B is indeterminate)
  * </ol>
  *
  * <p>For example, 30 days cannot be meaningfully compared to one month.
  * The {@link #compare(Duration duration)} method implements this
- * relationship.</p>
+ * relationship.
  *
  * <p>See the {@link #isLongerThan(Duration)} method for details about
- * the order relationship among <code>Duration</code> objects.</p>
+ * the order relationship among {@code Duration} objects.
  *
  * <h2>Operations over Duration</h2>
  * <p>This class provides a set of basic arithmetic operations, such
@@ -73,20 +73,20 @@
  * Because durations don't have total order, an operation could
  * fail for some combinations of operations. For example, you cannot
  * subtract 15 days from 1 month. See the javadoc of those methods
- * for detailed conditions where this could happen.</p>
+ * for detailed conditions where this could happen.
  *
  * <p>Also, division of a duration by a number is not provided because
- * the <code>Duration</code> class can only deal with finite precision
- * decimal numbers. For example, one cannot represent 1 sec divided by 3.</p>
+ * the {@code Duration} class can only deal with finite precision
+ * decimal numbers. For example, one cannot represent 1 sec divided by 3.
  *
  * <p>However, you could substitute a division by 3 with multiplying
- * by numbers such as 0.3 or 0.333.</p>
+ * by numbers such as 0.3 or 0.333.
  *
  * <h2>Range of allowed values</h2>
  * <p>
- * Because some operations of <code>Duration</code> rely on {@link Calendar}
+ * Because some operations of {@code Duration} rely on {@link Calendar}
  * even though {@link Duration} can hold very large or very small values,
- * some of the methods may not work correctly on such <code>Duration</code>s.
+ * some of the methods may not work correctly on such {@code Duration}s.
  * The impacted methods document their dependency on {@link Calendar}.
  *
  * @author <a href="mailto:Joseph.Fialli@Sun.COM">Joseph Fialli</a>
@@ -99,7 +99,7 @@
 public abstract class Duration {
 
     /**
-     * <p>Debugging <code>true</code> or <code>false</code>.</p>
+     * Debugging {@code true} or {@code false}.
      */
     private static final boolean DEBUG = true;
 
@@ -107,24 +107,24 @@
      * Default no-arg constructor.
      *
      * <p>Note: Always use the {@link DatatypeFactory} to
-     * construct an instance of <code>Duration</code>.
+     * construct an instance of {@code Duration}.
      * The constructor on this class cannot be guaranteed to
      * produce an object with a consistent state and may be
-     * removed in the future.</p>
+     * removed in the future.
      */
     public Duration() {
     }
 
     /**
-     * <p>Return the name of the XML Schema date/time type that this instance
+     * Return the name of the XML Schema date/time type that this instance
      * maps to. Type is computed based on fields that are set,
-     * i.e. {@link #isSet(DatatypeConstants.Field field)} == <code>true</code>.</p>
+     * i.e. {@link #isSet(DatatypeConstants.Field field)} == {@code true}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="7">
-     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br/>
+     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br>
      *         <i>(timezone is optional for all date/time datatypes)</i>
      *       </th>
      *     </tr>
@@ -238,16 +238,16 @@
     public abstract int getSign();
 
     /**
-     * <p>Get the years value of this <code>Duration</code> as an <code>int</code> or <code>0</code> if not present.</p>
+     * Get the years value of this {@code Duration} as an {@code int} or {@code 0} if not present.
      *
-     * <p><code>getYears()</code> is a convenience method for
-     * {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)}.</p>
+     * <p>{@code getYears()} is a convenience method for
+     * {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)}.
      *
-     * <p>As the return value is an <code>int</code>, an incorrect value will be returned for <code>Duration</code>s
-     * with years that go beyond the range of an <code>int</code>.
-     * Use {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)} to avoid possible loss of precision.</p>
+     * <p>As the return value is an {@code int}, an incorrect value will be returned for {@code Duration}s
+     * with years that go beyond the range of an {@code int}.
+     * Use {@link #getField(DatatypeConstants.Field field) getField(DatatypeConstants.YEARS)} to avoid possible loss of precision.
      *
-     * @return If the years field is present, return its value as an <code>int</code>, else return <code>0</code>.
+     * @return If the years field is present, return its value as an {@code int}, else return {@code 0}.
      */
     public int getYears() {
         return getField(DatatypeConstants.YEARS).intValue();
@@ -260,7 +260,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the MONTHS field.
      *
-     * @return Months of this <code>Duration</code>.
+     * @return Months of this {@code Duration}.
      */
     public int getMonths() {
         return getField(DatatypeConstants.MONTHS).intValue();
@@ -273,7 +273,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the DAYS field.
      *
-     * @return Days of this <code>Duration</code>.
+     * @return Days of this {@code Duration}.
      */
     public int getDays() {
         return getField(DatatypeConstants.DAYS).intValue();
@@ -286,7 +286,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the HOURS field.
      *
-     * @return Hours of this <code>Duration</code>.
+     * @return Hours of this {@code Duration}.
      *
      */
     public int getHours() {
@@ -300,7 +300,7 @@
      * This method works just like {@link #getYears()} except
      * that this method works on the MINUTES field.
      *
-     * @return Minutes of this <code>Duration</code>.
+     * @return Minutes of this {@code Duration}.
      *
      */
     public int getMinutes() {
@@ -323,32 +323,32 @@
     }
 
     /**
-     * <p>Returns the length of the duration in milli-seconds.</p>
+     * Returns the length of the duration in milli-seconds.
      *
      * <p>If the seconds field carries more digits than milli-second order,
      * those will be simply discarded (or in other words, rounded to zero.)
-     * For example, for any Calendar value <code>x</code>,</p>
+     * For example, for any Calendar value {@code x},
      * <pre>
-     * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>.
-     * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>.
+     * {@code new Duration("PT10.00099S").getTimeInMills(x) == 10000}
+     * {@code new Duration("-PT10.00099S").getTimeInMills(x) == -10000}
      * </pre>
      *
      * <p>
      * Note that this method uses the {@link #addTo(Calendar)} method,
-     * which may work incorrectly with <code>Duration</code> objects with
+     * which may work incorrectly with {@code Duration} objects with
      * very large values in its fields. See the {@link #addTo(Calendar)}
      * method for details.
      *
      * @param startInstant
-     *      The length of a month/year varies. The <code>startInstant</code> is
+     *      The length of a month/year varies. The {@code startInstant} is
      *      used to disambiguate this variance. Specifically, this method
-     *      returns the difference between <code>startInstant</code> and
-     *      <code>startInstant+duration</code>
+     *      returns the difference between {@code startInstant} and
+     *      {@code startInstant+duration}
      *
-     * @return milliseconds between <code>startInstant</code> and
-     *   <code>startInstant</code> plus this <code>Duration</code>
+     * @return milliseconds between {@code startInstant} and
+     *   {@code startInstant} plus this {@code Duration}
      *
-     * @throws NullPointerException if <code>startInstant</code> parameter
+     * @throws NullPointerException if {@code startInstant} parameter
      * is null.
      *
      */
@@ -360,33 +360,33 @@
     }
 
     /**
-     * <p>Returns the length of the duration in milli-seconds.</p>
+     * Returns the length of the duration in milli-seconds.
      *
      * <p>If the seconds field carries more digits than milli-second order,
      * those will be simply discarded (or in other words, rounded to zero.)
-     * For example, for any <code>Date</code> value <code>x</code>,</p>
+     * For example, for any {@code Date} value {@code x},
      * <pre>
-     * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>.
-     * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>.
+     * {@code new Duration("PT10.00099S").getTimeInMills(x) == 10000}
+     * {@code new Duration("-PT10.00099S").getTimeInMills(x) == -10000}
      * </pre>
      *
      * <p>
      * Note that this method uses the {@link #addTo(Date)} method,
-     * which may work incorrectly with <code>Duration</code> objects with
+     * which may work incorrectly with {@code Duration} objects with
      * very large values in its fields. See the {@link #addTo(Date)}
      * method for details.
      *
      * @param startInstant
-     *      The length of a month/year varies. The <code>startInstant</code> is
+     *      The length of a month/year varies. The {@code startInstant} is
      *      used to disambiguate this variance. Specifically, this method
-     *      returns the difference between <code>startInstant</code> and
-     *      <code>startInstant+duration</code>.
+     *      returns the difference between {@code startInstant} and
+     *      {@code startInstant+duration}.
      *
      * @throws NullPointerException
      *      If the startInstant parameter is null.
      *
-     * @return milliseconds between <code>startInstant</code> and
-     *   <code>startInstant</code> plus this <code>Duration</code>
+     * @return milliseconds between {@code startInstant} and
+     *   {@code startInstant} plus this {@code Duration}
      *
      * @see #getTimeInMillis(Calendar)
      */
@@ -418,7 +418,7 @@
      *      returns a {@link java.math.BigInteger} object. For SECONDS, this
      *      method returns a {@link java.math.BigDecimal}.
      *
-     * @throws NullPointerException If the <code>field</code> is <code>null</code>.
+     * @throws NullPointerException If the {@code field} is {@code null}.
      */
     public abstract Number getField(final DatatypeConstants.Field field);
 
@@ -440,9 +440,9 @@
     public abstract boolean isSet(final DatatypeConstants.Field field);
 
     /**
-     * <p>Computes a new duration whose value is <code>this+rhs</code>.</p>
+     * Computes a new duration whose value is {@code this+rhs}.
      *
-     * <p>For example,</p>
+     * <p>For example,
      * <pre>
      * "1 day" + "-3 days" = "-2 days"
      * "1 year" + "1 day" = "1 year and 1 day"
@@ -453,28 +453,28 @@
      *
      * <p>Since there's no way to meaningfully subtract 1 day from 1 month,
      * there are cases where the operation fails in
-     * {@link IllegalStateException}.</p>
+     * {@link IllegalStateException}.
      *
      * <p>
-     * Formally, the computation is defined as follows.</p>
+     * Formally, the computation is defined as follows.
      * <p>
-     * Firstly, we can assume that two <code>Duration</code>s to be added
+     * Firstly, we can assume that two {@code Duration}s to be added
      * are both positive without losing generality (i.e.,
-     * <code>(-X)+Y=Y-X</code>, <code>X+(-Y)=X-Y</code>,
-     * <code>(-X)+(-Y)=-(X+Y)</code>)
+     * {@code (-X)+Y=Y-X}, {@code X+(-Y)=X-Y},
+     * {@code (-X)+(-Y)=-(X+Y)})
      *
      * <p>
-     * Addition of two positive <code>Duration</code>s are simply defined as
+     * Addition of two positive {@code Duration}s are simply defined as
      * field by field addition where missing fields are treated as 0.
      * <p>
-     * A field of the resulting <code>Duration</code> will be unset if and
-     * only if respective fields of two input <code>Duration</code>s are unset.
+     * A field of the resulting {@code Duration} will be unset if and
+     * only if respective fields of two input {@code Duration}s are unset.
      * <p>
-     * Note that <code>lhs.add(rhs)</code> will be always successful if
-     * <code>lhs.signum()*rhs.signum()!=-1</code> or both of them are
-     * normalized.</p>
+     * Note that {@code lhs.add(rhs)} will be always successful if
+     * {@code lhs.signum()*rhs.signum()!=-1} or both of them are
+     * normalized.
      *
-     * @param rhs <code>Duration</code> to add to this <code>Duration</code>
+     * @param rhs {@code Duration} to add to this {@code Duration}
      *
      * @return
      *      non-null valid Duration object.
@@ -501,25 +501,22 @@
      * uses int to hold values, there are cases where this method
      * won't work correctly (for example if values of fields
      * exceed the range of int.)
-     * </p>
      *
      * <p>
      * Also, since this duration class is a Gregorian duration, this
      * method will not work correctly if the given {@link Calendar}
      * object is based on some other calendar systems.
-     * </p>
      *
      * <p>
-     * Any fractional parts of this <code>Duration</code> object
+     * Any fractional parts of this {@code Duration} object
      * beyond milliseconds will be simply ignored. For example, if
      * this duration is "P1.23456S", then 1 is added to SECONDS,
      * 234 is added to MILLISECONDS, and the rest will be unused.
-     * </p>
      *
      * <p>
      * Note that because {@link Calendar#add(int, int)} is using
-     * <code>int</code>, <code>Duration</code> with values beyond the
-     * range of <code>int</code> in its fields
+     * {@code int}, {@code Duration} with values beyond the
+     * range of {@code int} in its fields
      * will cause overflow/underflow to the given {@link Calendar}.
      * {@link XMLGregorianCalendar#add(Duration)} provides the same
      * basic operation as this method while avoiding
@@ -571,9 +568,9 @@
     }
 
     /**
-     * <p>Computes a new duration whose value is <code>this-rhs</code>.</p>
+     * Computes a new duration whose value is {@code this-rhs}.
      *
-     * <p>For example:</p>
+     * <p>For example:
      * <pre>
      * "1 day" - "-3 days" = "4 days"
      * "1 year" - "1 day" = IllegalStateException
@@ -583,31 +580,31 @@
      * </pre>
      *
      * <p>Since there's no way to meaningfully subtract 1 day from 1 month,
-     * there are cases where the operation fails in {@link IllegalStateException}.</p>
+     * there are cases where the operation fails in {@link IllegalStateException}.
      *
      * <p>Formally the computation is defined as follows.
-     * First, we can assume that two <code>Duration</code>s are both positive
+     * First, we can assume that two {@code Duration}s are both positive
      * without losing generality.  (i.e.,
-     * <code>(-X)-Y=-(X+Y)</code>, <code>X-(-Y)=X+Y</code>,
-     * <code>(-X)-(-Y)=-(X-Y)</code>)</p>
+     * {@code (-X)-Y=-(X+Y)}, {@code X-(-Y)=X+Y},
+     * {@code (-X)-(-Y)=-(X-Y)})
      *
      * <p>Then two durations are subtracted field by field.
-     * If the sign of any non-zero field <code>F</code> is different from
+     * If the sign of any non-zero field {@code F} is different from
      * the sign of the most significant field,
-     * 1 (if <code>F</code> is negative) or -1 (otherwise)
-     * will be borrowed from the next bigger unit of <code>F</code>.</p>
+     * 1 (if {@code F} is negative) or -1 (otherwise)
+     * will be borrowed from the next bigger unit of {@code F}.
      *
      * <p>This process is repeated until all the non-zero fields have
-     * the same sign.</p>
+     * the same sign.
      *
      * <p>If a borrow occurs in the days field (in other words, if
      * the computation needs to borrow 1 or -1 month to compensate
      * days), then the computation fails by throwing an
-     * {@link IllegalStateException}.</p>
+     * {@link IllegalStateException}.
      *
-     * @param rhs <code>Duration</code> to subtract from this <code>Duration</code>.
+     * @param rhs {@code Duration} to subtract from this {@code Duration}.
      *
-     * @return New <code>Duration</code> created from subtracting <code>rhs</code> from this <code>Duration</code>.
+     * @return New {@code Duration} created from subtracting {@code rhs} from this {@code Duration}.
      *
      * @throws IllegalStateException
      *      If two durations cannot be meaningfully subtracted. For
@@ -624,18 +621,18 @@
     }
 
     /**
-     * <p>Computes a new duration whose value is <code>factor</code> times
-     * longer than the value of this duration.</p>
+     * Computes a new duration whose value is {@code factor} times
+     * longer than the value of this duration.
      *
      * <p>This method is provided for the convenience.
-     * It is functionally equivalent to the following code:</p>
+     * It is functionally equivalent to the following code:
      * <pre>
      * multiply(new BigDecimal(String.valueOf(factor)))
      * </pre>
      *
-     * @param factor Factor times longer of new <code>Duration</code> to create.
+     * @param factor Factor times longer of new {@code Duration} to create.
      *
-     * @return New <code>Duration</code> that is <code>factor</code>times longer than this <code>Duration</code>.
+     * @return New {@code Duration} that is {@code factor}times longer than this {@code Duration}.
      *
      * @see #multiply(BigDecimal)
      */
@@ -644,7 +641,7 @@
     }
 
     /**
-     * Computes a new duration whose value is <code>factor</code> times
+     * Computes a new duration whose value is {@code factor} times
      * longer than the value of this duration.
      *
      * <p>
@@ -656,7 +653,7 @@
      * </pre>
      *
      * <p>
-     * Since the <code>Duration</code> class is immutable, this method
+     * Since the {@code Duration} class is immutable, this method
      * doesn't change the value of this object. It simply computes
      * a new Duration object and returns it.
      *
@@ -671,7 +668,7 @@
      * When fractions of month cannot be meaningfully carried down
      * to days, or year to months, this will cause an
      * {@link IllegalStateException} to be thrown.
-     * For example if you multiple one month by 0.5.</p>
+     * For example if you multiple one month by 0.5.
      *
      * <p>
      * To avoid {@link IllegalStateException}, use
@@ -681,39 +678,39 @@
      * @param factor to multiply by
      *
      * @return
-     *      returns a non-null valid <code>Duration</code> object
+     *      returns a non-null valid {@code Duration} object
      *
      * @throws IllegalStateException if operation produces fraction in
      * the months field.
      *
-     * @throws NullPointerException if the <code>factor</code> parameter is
-     * <code>null</code>.
+     * @throws NullPointerException if the {@code factor} parameter is
+     * {@code null}.
      *
      */
     public abstract Duration multiply(final BigDecimal factor);
 
     /**
-     * Returns a new <code>Duration</code> object whose
-     * value is <code>-this</code>.
+     * Returns a new {@code Duration} object whose
+     * value is {@code -this}.
      *
      * <p>
-     * Since the <code>Duration</code> class is immutable, this method
+     * Since the {@code Duration} class is immutable, this method
      * doesn't change the value of this object. It simply computes
      * a new Duration object and returns it.
      *
      * @return
-     *      always return a non-null valid <code>Duration</code> object.
+     *      always return a non-null valid {@code Duration} object.
      */
     public abstract Duration negate();
 
     /**
-     * <p>Converts the years and months fields into the days field
-     * by using a specific time instant as the reference point.</p>
+     * Converts the years and months fields into the days field
+     * by using a specific time instant as the reference point.
      *
      * <p>For example, duration of one month normalizes to 31 days
-     * given the start time instance "July 8th 2003, 17:40:32".</p>
+     * given the start time instance "July 8th 2003, 17:40:32".
      *
-     * <p>Formally, the computation is done as follows:</p>
+     * <p>Formally, the computation is done as follows:
      * <ol>
      *  <li>the given Calendar object is cloned</li>
      *  <li>the years, months and days fields will be added to the {@link Calendar} object
@@ -725,37 +722,37 @@
      *      Duration object.</li>
      * </ol>
      *
-     * <p>Note that since the Calendar class uses <code>int</code> to
+     * <p>Note that since the Calendar class uses {@code int} to
      * hold the value of year and month, this method may produce
      * an unexpected result if this duration object holds
-     * a very large value in the years or months fields.</p>
+     * a very large value in the years or months fields.
      *
-     * @param startTimeInstant <code>Calendar</code> reference point.
+     * @param startTimeInstant {@code Calendar} reference point.
      *
-     * @return <code>Duration</code> of years and months of this <code>Duration</code> as days.
+     * @return {@code Duration} of years and months of this {@code Duration} as days.
      *
      * @throws NullPointerException If the startTimeInstant parameter is null.
      */
     public abstract Duration normalizeWith(final Calendar startTimeInstant);
 
     /**
-     * <p>Partial order relation comparison with this <code>Duration</code> instance.</p>
+     * Partial order relation comparison with this {@code Duration} instance.
      *
      * <p>Comparison result must be in accordance with
      * <a href="http://www.w3.org/TR/xmlschema-2/#duration-order">W3C XML Schema 1.0 Part 2, Section 3.2.7.6.2,
-     * <i>Order relation on duration</i></a>.</p>
+     * <i>Order relation on duration</i></a>.
      *
-     * <p>Return:</p>
+     * <p>Return:
      * <ul>
-     *   <li>{@link DatatypeConstants#LESSER} if this <code>Duration</code> is shorter than <code>duration</code> parameter</li>
-     *   <li>{@link DatatypeConstants#EQUAL} if this <code>Duration</code> is equal to <code>duration</code> parameter</li>
-     *   <li>{@link DatatypeConstants#GREATER} if this <code>Duration</code> is longer than <code>duration</code> parameter</li>
+     *   <li>{@link DatatypeConstants#LESSER} if this {@code Duration} is shorter than {@code duration} parameter</li>
+     *   <li>{@link DatatypeConstants#EQUAL} if this {@code Duration} is equal to {@code duration} parameter</li>
+     *   <li>{@link DatatypeConstants#GREATER} if this {@code Duration} is longer than {@code duration} parameter</li>
      *   <li>{@link DatatypeConstants#INDETERMINATE} if a conclusive partial order relation cannot be determined</li>
      * </ul>
      *
      * @param duration to compare
      *
-     * @return the relationship between <code>this</code> <code>Duration</code>and <code>duration</code> parameter as
+     * @return the relationship between {@code this Duration} and {@code duration} parameter as
      *   {@link DatatypeConstants#LESSER}, {@link DatatypeConstants#EQUAL}, {@link DatatypeConstants#GREATER}
      *   or {@link DatatypeConstants#INDETERMINATE}.
      *
@@ -763,7 +760,7 @@
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException if <code>duration</code> is <code>null</code>.
+     * @throws NullPointerException if {@code duration} is {@code null}.
      *
      * @see #isShorterThan(Duration)
      * @see #isLongerThan(Duration)
@@ -771,23 +768,23 @@
     public abstract int compare(final Duration duration);
 
     /**
-     * <p>Checks if this duration object is strictly longer than
-     * another <code>Duration</code> object.</p>
+     * Checks if this duration object is strictly longer than
+     * another {@code Duration} object.
      *
-     * <p>Duration X is "longer" than Y if and only if X>Y
+     * <p>Duration X is "longer" than Y if and only if X {@literal >} Y
      * as defined in the section 3.2.6.2 of the XML Schema 1.0
-     * specification.</p>
+     * specification.
      *
-     * <p>For example, "P1D" (one day) > "PT12H" (12 hours) and
-     * "P2Y" (two years) > "P23M" (23 months).</p>
+     * <p>For example, "P1D" (one day) {@literal >} "PT12H" (12 hours) and
+     * "P2Y" (two years) {@literal >} "P23M" (23 months).
      *
-     * @param duration <code>Duration</code> to test this <code>Duration</code> against.
+     * @param duration {@code Duration} to test this {@code Duration} against.
      *
      * @throws UnsupportedOperationException If the underlying implementation
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException If <code>duration</code> is null.
+     * @throws NullPointerException If {@code duration} is null.
      *
      * @return
      *      true if the duration represented by this object
@@ -801,19 +798,19 @@
     }
 
     /**
-     * <p>Checks if this duration object is strictly shorter than
-     * another <code>Duration</code> object.</p>
+     * Checks if this duration object is strictly shorter than
+     * another {@code Duration} object.
      *
-     * @param duration <code>Duration</code> to test this <code>Duration</code> against.
+     * @param duration {@code Duration} to test this {@code Duration} against.
      *
-     * @return <code>true</code> if <code>duration</code> parameter is shorter than this <code>Duration</code>,
-     *   else <code>false</code>.
+     * @return {@code true} if {@code duration} parameter is shorter than this {@code Duration},
+     *   else {@code false}.
      *
      * @throws UnsupportedOperationException If the underlying implementation
      *   cannot reasonably process the request, e.g. W3C XML Schema allows for
      *   arbitrarily large/small/precise values, the request may be beyond the
      *   implementations capability.
-     * @throws NullPointerException if <code>duration</code> is null.
+     * @throws NullPointerException if {@code duration} is null.
      *
      * @see #isLongerThan(Duration duration)
      * @see #compare(Duration duration)
@@ -823,19 +820,19 @@
     }
 
     /**
-     * <p>Checks if this duration object has the same duration
-     * as another <code>Duration</code> object.</p>
+     * Checks if this duration object has the same duration
+     * as another {@code Duration} object.
      *
-     * <p>For example, "P1D" (1 day) is equal to "PT24H" (24 hours).</p>
+     * <p>For example, "P1D" (1 day) is equal to "PT24H" (24 hours).
      *
      * <p>Duration X is equal to Y if and only if time instant
      * t+X and t+Y are the same for all the test time instants
      * specified in the section 3.2.6.2 of the XML Schema 1.0
-     * specification.</p>
+     * specification.
      *
-     * <p>Note that there are cases where two <code>Duration</code>s are
+     * <p>Note that there are cases where two {@code Duration}s are
      * "incomparable" to each other, like one month and 30 days.
-     * For example,</p>
+     * For example,
      * <pre>
      * !new Duration("P1M").isShorterThan(new Duration("P30D"))
      * !new Duration("P1M").isLongerThan(new Duration("P30D"))
@@ -843,14 +840,14 @@
      * </pre>
      *
      * @param duration
-     *      The object to compare this <code>Duration</code> against.
+     *      The object to compare this {@code Duration} against.
      *
      * @return
-     *      <code>true</code> if this duration is the same length as
-     *         <code>duration</code>.
-     *      <code>false</code> if <code>duration</code> is <code>null</code>,
+     *      {@code true} if this duration is the same length as
+     *         {@code duration}.
+     *      {@code false} if {@code duration} is {@code null},
      *         is not a
-     *         <code>Duration</code> object,
+     *         {@code Duration} object,
      *         or its length is different from this duration.
      *
      * @throws UnsupportedOperationException If the underlying implementation
@@ -877,18 +874,19 @@
     public abstract int hashCode();
 
     /**
-     * <p>Returns a <code>String</code> representation of this <code>Duration</code> <code>Object</code>.</p>
+     * Returns a {@code String} representation of this {@code Duration Object}.
      *
-     * <p>The result is formatted according to the XML Schema 1.0 spec and can be always parsed back later into the
-     * equivalent <code>Duration</code> <code>Object</code> by {@link DatatypeFactory#newDuration(String  lexicalRepresentation)}.</p>
+     * <p>The result is formatted according to the XML Schema 1.0 spec
+     * and can be always parsed back later into the
+     * equivalent {@code Duration Object} by {@link DatatypeFactory#newDuration(String  lexicalRepresentation)}.
      *
-     * <p>Formally, the following holds for any <code>Duration</code>
-     * <code>Object</code> x:</p>
+     * <p>Formally, the following holds for any {@code Duration}
+     * {@code Object} x:
      * <pre>
      * new Duration(x.toString()).equals(x)
      * </pre>
      *
-     * @return A non-<code>null</code> valid <code>String</code> representation of this <code>Duration</code>.
+     * @return A non-{@code null} valid {@code String} representation of this {@code Duration}.
      */
     public String toString() {
 
@@ -934,14 +932,14 @@
     }
 
     /**
-     * <p>Turns {@link BigDecimal} to a string representation.</p>
+     * Turns {@link BigDecimal} to a string representation.
      *
      * <p>Due to a behavior change in the {@link BigDecimal#toString()}
-     * method in JDK1.5, this had to be implemented here.</p>
+     * method in JDK1.5, this had to be implemented here.
      *
-     * @param bd <code>BigDecimal</code> to format as a <code>String</code>
+     * @param bd {@code BigDecimal} to format as a {@code String}
      *
-     * @return  <code>String</code> representation of <code>BigDecimal</code>
+     * @return  {@code String} representation of {@code BigDecimal}
      */
     private String toString(BigDecimal bd) {
         String intString = bd.unscaledValue().toString();
@@ -972,15 +970,15 @@
 
 
     /**
-     * <p>Calls the {@link Calendar#getTimeInMillis} method.
+     * Calls the {@link Calendar#getTimeInMillis} method.
      * Prior to JDK1.4, this method was protected and therefore
-     * cannot be invoked directly.</p>
+     * cannot be invoked directly.
      *
-     * <p>TODO: In future, this should be replaced by <code>cal.getTimeInMillis()</code>.</p>
+     * <p>TODO: In future, this should be replaced by {@code cal.getTimeInMillis()}.
      *
-     * @param cal <code>Calendar</code> to get time in milliseconds.
+     * @param cal {@code Calendar} to get time in milliseconds.
      *
-     * @return Milliseconds of <code>cal</code>.
+     * @return Milliseconds of {@code cal}.
      */
     private static long getCalendarTimeInMillis(final Calendar cal) {
         return cal.getTime().getTime();
--- a/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Thu Apr 23 16:12:16 2015 -0700
@@ -43,17 +43,17 @@
  * {@link DatatypeConstants#GMONTH}, and
  * {@link DatatypeConstants#GDAY}
  * defined in the XML Namespace
- * <code>"http://www.w3.org/2001/XMLSchema"</code>.
+ * {@code "http://www.w3.org/2001/XMLSchema"}.
  * These datatypes are normatively defined in
- * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime">W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a>.</p>
+ * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime">W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a>.
  *
  * <p>The table below defines the mapping between XML Schema 1.0
  * date/time datatype fields and this class' fields. It also summarizes
  * the value constraints for the date and time fields defined in
  * <a href="http://www.w3.org/TR/xmlschema-2/#isoformats">W3C XML Schema 1.0 Part 2, Appendix D,
- * <i>ISO 8601 Date and Time Formats</i></a>.</p>
+ * <i>ISO 8601 Date and Time Formats</i></a>.
  *
- * <a name="datetimefieldmapping"/>
+ * <a name="datetimefieldmapping"></a>
  * <table border="2" rules="all" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -64,22 +64,22 @@
  *   </thead>
  *   <tbody>
  *     <tr>
- *       <th>XML Schema 1.0<br/>
- *           datatype<br/>
+ *       <th>XML Schema 1.0<br>
+ *           datatype<br>
  *            field</th>
- *       <th>Related<br/>XMLGregorianCalendar<br/>Accessor(s)</th>
+ *       <th>Related<br>XMLGregorianCalendar<br>Accessor(s)</th>
  *       <th>Value Range</th>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-year"/>year</td>
- *       <td> {@link #getYear()} + {@link #getEon()} or<br/>
+ *       <td><a name="datetimefield-year">year</a></td>
+ *       <td> {@link #getYear()} + {@link #getEon()} or<br>
  *            {@link #getEonAndYear}
  *       </td>
- *       <td> <code>getYear()</code> is a value between -(10^9-1) to (10^9)-1
- *            or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
- *            {@link #getEon()} is high order year value in billion of years.<br/>
- *            <code>getEon()</code> has values greater than or equal to (10^9) or less than or equal to -(10^9).
- *            A value of null indicates field is undefined.</br>
+ *       <td> {@code getYear()} is a value between -(10^9-1) to (10^9)-1
+ *            or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
+ *            {@link #getEon()} is high order year value in billion of years.<br>
+ *            {@code getEon()} has values greater than or equal to (10^9) or less than or equal to -(10^9).
+ *            A value of null indicates field is undefined.<br>
  *            Given that <a href="http://www.w3.org/2001/05/xmlschema-errata#e2-63">XML Schema 1.0 errata</a> states that the year zero
  *            will be a valid lexical value in a future version of XML Schema,
  *            this class allows the year field to be set to zero. Otherwise,
@@ -89,20 +89,20 @@
  *            </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-month"/>month</td>
+ *       <td><a name="datetimefield-month">month</a></td>
  *       <td> {@link #getMonth()} </td>
  *       <td> 1 to 12 or {@link DatatypeConstants#FIELD_UNDEFINED} </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-day"/>day</td>
+ *       <td><a name="datetimefield-day">day</a></td>
  *       <td> {@link #getDay()} </td>
- *       <td> Independent of month, max range is 1 to 31 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
+ *       <td> Independent of month, max range is 1 to 31 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
  *            The normative value constraint stated relative to month
  *            field's value is in <a href="http://www.w3.org/TR/xmlschema-2/#isoformats">W3C XML Schema 1.0 Part 2, Appendix D</a>.
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-hour"/>hour</td>
+ *       <td><a name="datetimefield-hour">hour</a></td>
  *       <td>{@link #getHour()}</td>
  *       <td>
  *         0 to 23 or {@link DatatypeConstants#FIELD_UNDEFINED}.
@@ -114,28 +114,28 @@
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-minute"/>minute</td>
+ *       <td><a name="datetimefield-minute">minute</a></td>
  *       <td> {@link #getMinute()} </td>
  *       <td> 0 to 59 or {@link DatatypeConstants#FIELD_UNDEFINED} </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-second"/>second</td>
+ *       <td><a name="datetimefield-second">second</a></td>
  *       <td>
- *         {@link #getSecond()} + {@link #getMillisecond()}/1000 or<br/>
+ *         {@link #getSecond()} + {@link #getMillisecond()}/1000 or<br>
  *         {@link #getSecond()} + {@link #getFractionalSecond()}
  *       </td>
  *       <td>
- *         {@link #getSecond()} from 0 to 60 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br/>
- *         <i>(Note: 60 only allowable for leap second.)</i><br/>
+ *         {@link #getSecond()} from 0 to 60 or {@link DatatypeConstants#FIELD_UNDEFINED}.<br>
+ *         <i>(Note: 60 only allowable for leap second.)</i><br>
  *         {@link #getFractionalSecond()} allows for infinite precision over the range from 0.0 to 1.0 when
- *         the {@link #getSecond()} is defined.<br/>
- *         <code>FractionalSecond</code> is optional and has a value of <code>null</code> when it is undefined.<br />
+ *         the {@link #getSecond()} is defined.<br>
+ *         {@code FractionalSecond} is optional and has a value of {@code null} when it is undefined.<br>
  *            {@link #getMillisecond()} is the convenience
  *            millisecond precision of value of {@link #getFractionalSecond()}.
  *       </td>
  *     </tr>
  *     <tr>
- *       <td><a name="datetimefield-timezone"/>timezone</td>
+ *       <td><a name="datetimefield-timezone">timezone</a></td>
  *       <td> {@link #getTimezone()} </td>
  *       <td> Number of minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.
  *         Value range from -14 hours (-14 * 60 minutes) to 14 hours (14 * 60 minutes).
@@ -145,14 +145,13 @@
  *  </table>
  *
  * <p>All maximum value space constraints listed for the fields in the table
- * above are checked by factory methods, @{link DatatypeFactory},
+ * above are checked by factory methods, {@link DatatypeFactory},
  * setter methods and parse methods of
- * this class. <code>IllegalArgumentException</code> is thrown when a
+ * this class. {@code IllegalArgumentException} is thrown when a
  * parameter's value is outside the value constraint for the field or
  * if the composite
  * values constitute an invalid XMLGregorianCalendar instance (for example, if
  * the 31st of June is specified).
- * </p>
  *
  * <p>The following operations are defined for this class:
  * <ul>
@@ -169,7 +168,6 @@
  *      W3C XML Schema 1.0 Part 2, Appendix E, <i>Adding durations to dateTimes</i></a>.
  *   </li>
  * </ul>
- * </p>
  *
  * @author <a href="mailto:Joseph.Fialli@Sun.com">Joseph Fialli</a>
  * @author <a href="mailto:Kohsuke.Kawaguchi@Sun.com">Kohsuke Kawaguchi</a>
@@ -187,26 +185,26 @@
          * Default no-arg constructor.
          *
          * <p>Note: Always use the {@link DatatypeFactory} to
-         * construct an instance of <code>XMLGregorianCalendar</code>.
+         * construct an instance of {@code XMLGregorianCalendar}.
          * The constructor on this class cannot be guaranteed to
          * produce an object with a consistent state and may be
-         * removed in the future.</p>
+         * removed in the future.
          */
          public XMLGregorianCalendar() {
          }
 
         /**
-         * <p>Unset all fields to undefined.</p>
+         * Unset all fields to undefined.
          *
          * <p>Set all int fields to {@link DatatypeConstants#FIELD_UNDEFINED} and reference fields
-         * to null.</p>
+         * to null.
          */
         public abstract void clear();
 
         /**
-         * <p>Reset this <code>XMLGregorianCalendar</code> to its original values.</p>
+         * Reset this {@code XMLGregorianCalendar} to its original values.
          *
-         * <p><code>XMLGregorianCalendar</code> is reset to the same values as when it was created with
+         * <p>{@code XMLGregorianCalendar} is reset to the same values as when it was created with
          * {@link DatatypeFactory#newXMLGregorianCalendar()},
          * {@link DatatypeFactory#newXMLGregorianCalendar(String lexicalRepresentation)},
          * {@link DatatypeFactory#newXMLGregorianCalendar(
@@ -250,83 +248,82 @@
          *   int seconds,
          *   int milliseconds,
          *   int timezone)}.
-         * </p>
          *
-         * <p><code>reset()</code> is designed to allow the reuse of existing <code>XMLGregorianCalendar</code>s
-         * thus saving resources associated with the creation of new <code>XMLGregorianCalendar</code>s.</p>
+         * <p>{@code reset()} is designed to allow the reuse of existing {@code XMLGregorianCalendar}s
+         * thus saving resources associated with the creation of new {@code XMLGregorianCalendar}s.
          */
         public abstract void reset();
 
     /**
-     * <p>Set low and high order component of XSD <code>dateTime</code> year field.</p>
+     * Set low and high order component of XSD {@code dateTime} year field.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of <code>null</code>.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@code null}.
      *
      * @param year value constraints summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>year</code> parameter is
+     * @throws IllegalArgumentException if {@code year} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setYear(BigInteger year);
 
     /**
-     * <p>Set year of XSD <code>dateTime</code> year field.</p>
+     * Set year of XSD {@code dateTime} year field.
      *
      * <p>Unset this field by invoking the setter with a parameter value of
-     * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
-     * <p>Note: if the absolute value of the <code>year</code> parameter
+     * <p>Note: if the absolute value of the {@code year} parameter
      * is less than 10^9, the eon component of the XSD year field is set to
-     * <code>null</code> by this method.</p>
+     * {@code null} by this method.
      *
      * @param year value constraints are summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
-     *   If year is {@link DatatypeConstants#FIELD_UNDEFINED}, then eon is set to <code>null</code>.
+     *   If year is {@link DatatypeConstants#FIELD_UNDEFINED}, then eon is set to {@code null}.
      */
     public abstract void setYear(int year);
 
     /**
-     * <p>Set month.</p>
+     * Set month.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param month value constraints summarized in <a href="#datetimefield-month">month field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>month</code> parameter is
+     * @throws IllegalArgumentException if {@code month} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setMonth(int month);
 
     /**
-     * <p>Set days in month.</p>
+     * Set days in month.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param day value constraints summarized in <a href="#datetimefield-day">day field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>day</code> parameter is
+     * @throws IllegalArgumentException if {@code day} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setDay(int day);
 
     /**
-     * <p>Set the number of minutes in the timezone offset.</p>
+     * Set the number of minutes in the timezone offset.
      *
-     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+     * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
      *
      * @param offset value constraints summarized in <a href="#datetimefield-timezone">
      *   timezone field of date/time field mapping table</a>.
      *
-     * @throws IllegalArgumentException if <code>offset</code> parameter is
+     * @throws IllegalArgumentException if {@code offset} parameter is
      * outside value constraints for the field as specified in
      * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      */
     public abstract void setTimezone(int offset);
 
     /**
-     * <p>Set time as one unit.</p>
+     * Set time as one unit.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -352,71 +349,71 @@
     }
 
         /**
-         * <p>Set hours.</p>
+         * Set hours.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param hour value constraints summarized in <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>hour</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code hour} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setHour(int hour);
 
         /**
-         * <p>Set minutes.</p>
+         * Set minutes.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param minute value constraints summarized in <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>minute</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code minute} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setMinute(int minute);
 
         /**
-         * <p>Set seconds.</p>
+         * Set seconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param second value constraints summarized in <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>second</code> parameter is outside value constraints for the field as specified in
+         * @throws IllegalArgumentException if {@code second} parameter is outside value constraints for the field as specified in
          *   <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setSecond(int second);
 
         /**
-         * <p>Set milliseconds.</p>
+         * Set milliseconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * @param millisecond value constraints summarized in
          *   <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>millisecond</code> parameter is outside value constraints for the field as specified
+         * @throws IllegalArgumentException if {@code millisecond} parameter is outside value constraints for the field as specified
          *   in <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setMillisecond(int millisecond);
 
         /**
-         * <p>Set fractional seconds.</p>
+         * Set fractional seconds.
          *
-         * <p>Unset this field by invoking the setter with a parameter value of <code>null</code>.</p>
+         * <p>Unset this field by invoking the setter with a parameter value of {@code null}.
          *
          * @param fractional value constraints summarized in
          *   <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @throws IllegalArgumentException if <code>fractional</code> parameter is outside value constraints for the field as specified
+         * @throws IllegalArgumentException if {@code fractional} parameter is outside value constraints for the field as specified
          *   in <a href="#datetimefieldmapping">date/time field mapping table</a>.
         */
         public abstract void setFractionalSecond(BigDecimal fractional);
 
 
     /**
-     * <p>Set time as one unit, including the optional infinite precision
-     * fractional seconds.</p>
+     * Set time as one unit, including the optional infinite precision
+     * fractional seconds.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -424,7 +421,7 @@
      * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
      * @param second value constraints are summarized in
      * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
-     * @param fractional value of <code>null</code> indicates this optional
+     * @param fractional value of {@code null} indicates this optional
      *   field is not set.
      *
      * @throws IllegalArgumentException if any parameter is
@@ -445,7 +442,7 @@
 
 
     /**
-     * <p>Set time as one unit, including optional milliseconds.</p>
+     * Set time as one unit, including optional milliseconds.
      *
      * @param hour value constraints are summarized in
      * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
@@ -469,13 +466,13 @@
     }
 
         /**
-         * <p>Return high order component for XML Schema 1.0 dateTime datatype field for
-         * <code>year</code>.
-         * <code>null</code> if this optional part of the year field is not defined.</p>
+         * Return high order component for XML Schema 1.0 dateTime datatype field for
+         * {@code year}.
+         * {@code null} if this optional part of the year field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
-         * @return eon of this <code>XMLGregorianCalendar</code>. The value
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
+         * @return eon of this {@code XMLGregorianCalendar}. The value
          * returned is an integer multiple of 10^9.
          *
          * @see #getYear()
@@ -484,13 +481,13 @@
         public abstract BigInteger getEon();
 
         /**
-         * <p>Return low order component for XML Schema 1.0 dateTime datatype field for
-         * <code>year</code> or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return low order component for XML Schema 1.0 dateTime datatype field for
+         * {@code year} or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
          *
-         * @return year  of this <code>XMLGregorianCalendar</code>.
+         * @return year  of this {@code XMLGregorianCalendar}.
          *
          * @see #getEon()
          * @see #getEonAndYear()
@@ -498,16 +495,16 @@
         public abstract int getYear();
 
         /**
-         * <p>Return XML Schema 1.0 dateTime datatype field for
-         * <code>year</code>.</p>
+         * Return XML Schema 1.0 dateTime datatype field for
+         * {@code year}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-year">year field of date/time field mapping table</a>.
          *
-         * @return sum of <code>eon</code> and <code>BigInteger.valueOf(year)</code>
-         * when both fields are defined. When only <code>year</code> is defined,
-         * return it. When both <code>eon</code> and <code>year</code> are not
-         * defined, return <code>null</code>.
+         * @return sum of {@code eon} and {@code BigInteger.valueOf(year)}
+         * when both fields are defined. When only {@code year} is defined,
+         * return it. When both {@code eon} and {@code year} are not
+         * defined, return {@code null}.
          *
          * @see #getEon()
          * @see #getYear()
@@ -515,21 +512,21 @@
         public abstract BigInteger getEonAndYear();
 
         /**
-         * <p>Return number of month or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return number of month or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-month">month field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-month">month field of date/time field mapping table</a>.
          *
-         * @return year  of this <code>XMLGregorianCalendar</code>.
+         * @return year  of this {@code XMLGregorianCalendar}.
          *
          */
         public abstract int getMonth();
 
         /**
-         * Return day in month or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return day in month or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-day">day field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-day">day field of date/time field mapping table</a>.
          *
          * @see #setDay(int)
          */
@@ -540,7 +537,7 @@
          * {@link DatatypeConstants#FIELD_UNDEFINED} if this optional field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-timezone">timezone field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-timezone">timezone field of date/time field mapping table</a>.
          *
          * @see #setTimezone(int)
          */
@@ -551,34 +548,34 @@
          * Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
          * @see #setTime(int, int, int)
          */
         public abstract int getHour();
 
         /**
-         * Return minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.
          * Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
          * @see #setTime(int, int, int)
          */
         public abstract int getMinute();
 
         /**
-         * <p>Return seconds or {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * Return seconds or {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Returns {@link DatatypeConstants#FIELD_UNDEFINED} if this field is not defined.
          * When this field is not defined, the optional xs:dateTime
          * fractional seconds field, represented by
          * {@link #getFractionalSecond()} and {@link #getMillisecond()},
-         * must not be defined.</p>
+         * must not be defined.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @return Second  of this <code>XMLGregorianCalendar</code>.
+         * @return Second  of this {@code XMLGregorianCalendar}.
          *
          * @see #getFractionalSecond()
          * @see #getMillisecond()
@@ -587,20 +584,20 @@
         public abstract int getSecond();
 
         /**
-         * <p>Return millisecond precision of {@link #getFractionalSecond()}.</p>
+         * Return millisecond precision of {@link #getFractionalSecond()}.
          *
          * <p>This method represents a convenience accessor to infinite
          * precision fractional second value returned by
          * {@link #getFractionalSecond()}. The returned value is the rounded
          * down to milliseconds value of
          * {@link #getFractionalSecond()}. When {@link #getFractionalSecond()}
-         * returns <code>null</code>, this method must return
-         * {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * returns {@code null}, this method must return
+         * {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
          * <p>Value constraints for this value are summarized in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
-         * @return Millisecond  of this <code>XMLGregorianCalendar</code>.
+         * @return Millisecond  of this {@code XMLGregorianCalendar}.
          *
          * @see #getFractionalSecond()
          * @see #setTime(int, int, int)
@@ -618,18 +615,18 @@
         }
 
         /**
-         * <p>Return fractional seconds.</p>
+         * Return fractional seconds.
          *
-         * <p><code>null</code> is returned when this optional field is not defined.</p>
+         * <p>{@code null} is returned when this optional field is not defined.
          *
          * <p>Value constraints are detailed in
-         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.</p>
+         * <a href="#datetimefield-second">second field of date/time field mapping table</a>.
          *
          * <p>This optional field can only have a defined value when the
          * xs:dateTime second field, represented by {@link #getSecond()},
-         * does not return {@link DatatypeConstants#FIELD_UNDEFINED}.</p>
+         * does not return {@link DatatypeConstants#FIELD_UNDEFINED}.
          *
-         * @return fractional seconds  of this <code>XMLGregorianCalendar</code>.
+         * @return fractional seconds  of this {@code XMLGregorianCalendar}.
          *
          * @see #getSecond()
          * @see #setTime(int, int, int, BigDecimal)
@@ -638,51 +635,51 @@
 
     // comparisons
     /**
-     * <p>Compare two instances of W3C XML Schema 1.0 date/time datatypes
+     * Compare two instances of W3C XML Schema 1.0 date/time datatypes
      * according to partial order relation defined in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">W3C XML Schema 1.0 Part 2, Section 3.2.7.3,
-     * <i>Order relation on dateTime</i></a>.</p>
+     * <i>Order relation on dateTime</i></a>.
      *
-     * <p><code>xsd:dateTime</code> datatype field mapping to accessors of
+     * <p>{@code xsd:dateTime} datatype field mapping to accessors of
      * this class are defined in
-     * <a href="#datetimefieldmapping">date/time field mapping table</a>.</p>
+     * <a href="#datetimefieldmapping">date/time field mapping table</a>.
      *
-     * @param xmlGregorianCalendar Instance of <code>XMLGregorianCalendar</code> to compare
+     * @param xmlGregorianCalendar Instance of {@code XMLGregorianCalendar} to compare
      *
-     * @return The relationship between <code>this</code> <code>XMLGregorianCalendar</code> and
-     *   the specified <code>xmlGregorianCalendar</code> as
+     * @return The relationship between {@code this} {@code XMLGregorianCalendar} and
+     *   the specified {@code xmlGregorianCalendar} as
      *   {@link DatatypeConstants#LESSER},
      *   {@link DatatypeConstants#EQUAL},
      *   {@link DatatypeConstants#GREATER} or
      *   {@link DatatypeConstants#INDETERMINATE}.
      *
-     * @throws NullPointerException if <code>xmlGregorianCalendar</code> is null.
+     * @throws NullPointerException if {@code xmlGregorianCalendar} is null.
      */
     public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar);
 
     /**
-     * <p>Normalize this instance to UTC.</p>
+     * Normalize this instance to UTC.
      *
-     * <p>2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z</p>
-     * <p>Implements W3C XML Schema Part 2, Section 3.2.7.3 (A).</p>
+     * <p>2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z
+     * <p>Implements W3C XML Schema Part 2, Section 3.2.7.3 (A).
      *
-     * @return <code>this</code> <code>XMLGregorianCalendar</code> normalized to UTC.
+     * @return {@code this} {@code XMLGregorianCalendar} normalized to UTC.
      */
     public abstract XMLGregorianCalendar normalize();
 
     /**
-     * <p>Compares this calendar to the specified object. The result is
-     * <code>true</code> if and only if the argument is not null and is an
-     * <code>XMLGregorianCalendar</code> object that represents the same
-     * instant in time as this object.</p>
+     * Compares this calendar to the specified object. The result is
+     * {@code true} if and only if the argument is not null and is an
+     * {@code XMLGregorianCalendar} object that represents the same
+     * instant in time as this object.
      *
      * @param obj to compare.
      *
-     * @return <code>true</code> when <code>obj</code> is an instance of
-     * <code>XMLGregorianCalendar</code> and
+     * @return {@code true} when {@code obj} is an instance of
+     * {@code XMLGregorianCalendar} and
      * {@link #compare(XMLGregorianCalendar obj)}
      * returns {@link DatatypeConstants#EQUAL},
-     * otherwise <code>false</code>.
+     * otherwise {@code false}.
      */
     public boolean equals(Object obj) {
 
@@ -693,7 +690,7 @@
     }
 
     /**
-     * <p>Returns a hash code consistent with the definition of the equals method.</p>
+     * Returns a hash code consistent with the definition of the equals method.
      *
      * @return hash code of this object.
      */
@@ -721,15 +718,15 @@
     }
 
     /**
-     * <p>Return the lexical representation of <code>this</code> instance.
+     * Return the lexical representation of {@code this} instance.
      * The format is specified in
      * <a href="http://www.w3.org/TR/xmlschema-2/#dateTime-order">XML Schema 1.0 Part 2, Section 3.2.[7-14].1,
-     * <i>Lexical Representation</i>".</a></p>
+     * <i>Lexical Representation</i>".</a>
      *
      * <p>Specific target lexical representation format is determined by
-     * {@link #getXMLSchemaType()}.</p>
+     * {@link #getXMLSchemaType()}.
      *
-     * @return XML, as <code>String</code>, representation of this <code>XMLGregorianCalendar</code>
+     * @return XML, as {@code String}, representation of this {@code XMLGregorianCalendar}
      *
      * @throws IllegalStateException if the combination of set fields
      *    does not match one of the eight defined XML Schema builtin date/time datatypes.
@@ -737,14 +734,14 @@
     public abstract String toXMLFormat();
 
     /**
-     * <p>Return the name of the XML Schema date/time type that this instance
-     * maps to. Type is computed based on fields that are set.</p>
+     * Return the name of the XML Schema date/time type that this instance
+     * maps to. Type is computed based on fields that are set.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="7">
-     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br/>
+     *         Required fields for XML Schema 1.0 Date/Time Datatypes.<br>
      *         <i>(timezone is optional for all date/time datatypes)</i>
      *       </th>
      *     </tr>
@@ -850,11 +847,11 @@
     public abstract QName getXMLSchemaType();
 
         /**
-         * <p>Returns a <code>String</code> representation of this <code>XMLGregorianCalendar</code> <code>Object</code>.</p>
+         * Returns a {@code String} representation of this {@code XMLGregorianCalendar} {@code Object}.
          *
-         * <p>The result is a lexical representation generated by {@link #toXMLFormat()}.</p>
+         * <p>The result is a lexical representation generated by {@link #toXMLFormat()}.
          *
-         * @return A non-<code>null</code> valid <code>String</code> representation of this <code>XMLGregorianCalendar</code>.
+         * @return A non-{@code null} valid {@code String} representation of this {@code XMLGregorianCalendar}.
          *
      * @throws IllegalStateException if the combination of set fields
      *    does not match one of the eight defined XML Schema builtin date/time datatypes.
@@ -867,89 +864,89 @@
     }
 
     /**
-     * Validate instance by <code>getXMLSchemaType()</code> constraints.
+     * Validate instance by {@code getXMLSchemaType()} constraints.
      * @return true if data values are valid.
      */
     public abstract boolean isValid();
 
     /**
-     * <p>Add <code>duration</code> to this instance.</p>
+     * Add {@code duration} to this instance.
      *
      * <p>The computation is specified in
      * <a href="http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes">XML Schema 1.0 Part 2, Appendix E,
-     * <i>Adding durations to dateTimes</i>></a>.
+     * <i>Adding durations to dateTimes</i></a>.
      * <a href="#datetimefieldmapping">date/time field mapping table</a>
-     * defines the mapping from XML Schema 1.0 <code>dateTime</code> fields
-     * to this class' representation of those fields.</p>
+     * defines the mapping from XML Schema 1.0 {@code dateTime} fields
+     * to this class' representation of those fields.
      *
-     * @param duration Duration to add to this <code>XMLGregorianCalendar</code>.
+     * @param duration Duration to add to this {@code XMLGregorianCalendar}.
      *
-     * @throws NullPointerException  when <code>duration</code> parameter is <code>null</code>.
+     * @throws NullPointerException  when {@code duration} parameter is {@code null}.
      */
     public abstract void add(Duration duration);
 
     /**
-     * <p>Convert this <code>XMLGregorianCalendar</code> to a {@link GregorianCalendar}.</p>
+     * Convert this {@code XMLGregorianCalendar} to a {@link GregorianCalendar}.
      *
-     * <p>When <code>this</code> instance has an undefined field, this
-     * conversion relies on the <code>java.util.GregorianCalendar</code> default
+     * <p>When {@code this} instance has an undefined field, this
+     * conversion relies on the {@code java.util.GregorianCalendar} default
      * for its corresponding field. A notable difference between
-     * XML Schema 1.0 date/time datatypes and <code>java.util.GregorianCalendar</code>
+     * XML Schema 1.0 date/time datatypes and {@code java.util.GregorianCalendar}
      * is that Timezone value is optional for date/time datatypes and it is
-     * a required field for <code>java.util.GregorianCalendar</code>. See javadoc
-     * for <code>java.util.TimeZone.getDefault()</code> on how the default
-     * is determined. To explicitly specify the <code>TimeZone</code>
+     * a required field for {@code java.util.GregorianCalendar}. See javadoc
+     * for {@code java.util.TimeZone.getDefault()} on how the default
+     * is determined. To explicitly specify the {@code TimeZone}
      * instance, see
-     * {@link #toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar)}.</p>
+     * {@link #toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar)}.
      *
      * <table border="2" rules="all" cellpadding="2">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="2">
      *          Field by Field Conversion from this class to
-     *          <code>java.util.GregorianCalendar</code>
+     *          {@code java.util.GregorianCalendar}
      *       </th>
      *     </tr>
      *   </thead>
      *   <tbody>
      *     <tr>
-     *        <td><code>java.util.GregorianCalendar</code> field</td>
-     *        <td><code>javax.xml.datatype.XMLGregorianCalendar</code> field</td>
+     *        <td>{@code java.util.GregorianCalendar} field</td>
+     *        <td>{@code javax.xml.datatype.XMLGregorianCalendar} field</td>
      *     </tr>
      *     <tr>
-     *       <td><code>ERA</code></td>
-     *       <td>{@link #getEonAndYear()}<code>.signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD</code></td>
+     *       <td>{@code ERA}</td>
+     *       <td>{@link #getEonAndYear()}{@code .signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>YEAR</code></td>
-     *       <td>{@link #getEonAndYear()}<code>.abs().intValue()</code><i>*</i></td>
+     *       <td>{@code YEAR}</td>
+     *       <td>{@link #getEonAndYear()}{@code .abs().intValue()}<i>*</i></td>
      *     </tr>
      *     <tr>
-     *       <td><code>MONTH</code></td>
+     *       <td>{@code MONTH}</td>
      *       <td>{@link #getMonth()} - {@link DatatypeConstants#JANUARY} + {@link GregorianCalendar#JANUARY}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>DAY_OF_MONTH</code></td>
+     *       <td>{@code DAY_OF_MONTH}</td>
      *       <td>{@link #getDay()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>HOUR_OF_DAY</code></td>
+     *       <td>{@code HOUR_OF_DAY}</td>
      *       <td>{@link #getHour()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MINUTE</code></td>
+     *       <td>{@code MINUTE}</td>
      *       <td>{@link #getMinute()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>SECOND</code></td>
+     *       <td>{@code SECOND}</td>
      *       <td>{@link #getSecond()}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>MILLISECOND</code></td>
+     *       <td>{@code MILLISECOND}</td>
      *       <td>get millisecond order from {@link #getFractionalSecond()}<i>*</i> </td>
      *     </tr>
      *     <tr>
-     *       <td><code>GregorianCalendar.setTimeZone(TimeZone)</code></td>
+     *       <td>{@code GregorianCalendar.setTimeZone(TimeZone)}</td>
      *       <td>{@link #getTimezone()} formatted into Custom timezone id</td>
      *     </tr>
      *   </tbody>
@@ -958,74 +955,74 @@
      * to source datatype having higher precision than target datatype.
      *
      * <p>To ensure consistency in conversion implementations, the new
-     * <code>GregorianCalendar</code> should be instantiated in following
+     * {@code GregorianCalendar} should be instantiated in following
      * manner.
      * <ul>
-     *   <li>Using <code>timeZone</code> value as defined above, create a new
-     * <code>java.util.GregorianCalendar(timeZone,Locale.getDefault())</code>.
+     *   <li>Using {@code timeZone} value as defined above, create a new
+     * {@code java.util.GregorianCalendar(timeZone,Locale.getDefault())}.
      *   </li>
      *   <li>Initialize all GregorianCalendar fields by calling {@link java.util.GregorianCalendar#clear()}.</li>
      *   <li>Obtain a pure Gregorian Calendar by invoking
-     *   <code>GregorianCalendar.setGregorianChange(
-     *   new Date(Long.MIN_VALUE))</code>.</li>
+     *   {@code GregorianCalendar.setGregorianChange(
+     *   new Date(Long.MIN_VALUE))}.</li>
      *   <li>Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY,
      *       MINUTE, SECOND and MILLISECOND are set using the method
-     *       <code>Calendar.set(int,int)</code></li>
+     *       {@code Calendar.set(int,int)}</li>
      * </ul>
-     * </p>
      *
      * @see #toGregorianCalendar(java.util.TimeZone, java.util.Locale, XMLGregorianCalendar)
      */
     public abstract GregorianCalendar toGregorianCalendar();
 
     /**
-     * <p>Convert this <code>XMLGregorianCalendar</code> along with provided parameters
-     * to a {@link GregorianCalendar} instance.</p>
+     * Convert this {@code XMLGregorianCalendar} along with provided parameters
+     * to a {@link GregorianCalendar} instance.
      *
      * <p> Since XML Schema 1.0 date/time datetypes has no concept of
      * timezone ids or daylight savings timezone ids, this conversion operation
      * allows the user to explicitly specify one with
-     * <code>timezone</code> parameter.</p>
+     * {@code timezone} parameter.
      *
-     * <p>To compute the return value's <code>TimeZone</code> field,
+     * <p>To compute the return value's {@code TimeZone} field,
      * <ul>
-     * <li>when parameter <code>timeZone</code> is non-null,
+     * <li>when parameter {@code timeZone} is non-null,
      * it is the timezone field.</li>
-     * <li>else when <code>this.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using the <code>this.getTimezone()</code>.</li>
-     * <li>else when <code>defaults.getTimezone() != FIELD_UNDEFINED</code>,
-     * create a <code>java.util.TimeZone</code> with a custom timezone id
-     * using <code>defaults.getTimezone()</code>.</li>
-     * <li>else use the <code>GregorianCalendar</code> default timezone value
+     * <li>else when {@code this.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using the {@code this.getTimezone()}.</li>
+     * <li>else when {@code defaults.getTimezone() != FIELD_UNDEFINED},
+     * create a {@code java.util.TimeZone} with a custom timezone id
+     * using {@code defaults.getTimezone()}.</li>
+     * <li>else use the {@code GregorianCalendar} default timezone value
      * for the host is defined as specified by
-     * <code>java.util.TimeZone.getDefault()</code>.</li></p>
+     * {@code java.util.TimeZone.getDefault()}.</li>
+     * </ul>
      *
      * <p>To ensure consistency in conversion implementations, the new
-     * <code>GregorianCalendar</code> should be instantiated in following
+     * {@code GregorianCalendar} should be instantiated in following
      * manner.
      * <ul>
-     *   <li>Create a new <code>java.util.GregorianCalendar(TimeZone,
-     *       Locale)</code> with TimeZone set as specified above and the
-     *       <code>Locale</code> parameter.
+     *   <li>Create a new {@code java.util.GregorianCalendar(TimeZone,
+     *       Locale)} with TimeZone set as specified above and the
+     *       {@code Locale} parameter.
      *   </li>
      *   <li>Initialize all GregorianCalendar fields by calling {@link GregorianCalendar#clear()}</li>
      *   <li>Obtain a pure Gregorian Calendar by invoking
-     *   <code>GregorianCalendar.setGregorianChange(
-     *   new Date(Long.MIN_VALUE))</code>.</li>
+     *   {@code GregorianCalendar.setGregorianChange(
+     *   new Date(Long.MIN_VALUE))}.</li>
      *   <li>Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY,
      *       MINUTE, SECOND and MILLISECOND are set using the method
-     *       <code>Calendar.set(int,int)</code></li>
+     *       {@code Calendar.set(int,int)}</li>
      * </ul>
      *
-     * @param timezone provide Timezone. <code>null</code> is a legal value.
+     * @param timezone provide Timezone. {@code null} is a legal value.
      * @param aLocale  provide explicit Locale. Use default GregorianCalendar locale if
-     *                 value is <code>null</code>.
+     *                 value is {@code null}.
      * @param defaults provide default field values to use when corresponding
      *                 field for this instance is FIELD_UNDEFINED or null.
-     *                 If <code>defaults</code>is <code>null</code> or a field
-     *                 within the specified <code>defaults</code> is undefined,
-     *                 just use <code>java.util.GregorianCalendar</code> defaults.
+     *                 If {@code defaults}is {@code null} or a field
+     *                 within the specified {@code defaults} is undefined,
+     *                 just use {@code java.util.GregorianCalendar} defaults.
      * @return a java.util.GregorianCalendar conversion of this instance.
      */
     public abstract GregorianCalendar toGregorianCalendar(
@@ -1034,7 +1031,7 @@
                 XMLGregorianCalendar defaults);
 
     /**
-     * <p>Returns a <code>java.util.TimeZone</code> for this class.</p>
+     * Returns a {@code java.util.TimeZone} for this class.
      *
      * <p>If timezone field is defined for this instance,
      * returns TimeZone initialized with custom timezone id
@@ -1042,7 +1039,7 @@
      * try the defaultZoneoffset that was passed in.
      * If defaultZoneoffset is FIELD_UNDEFINED, return
      * default timezone for this host.
-     * (Same default as java.util.GregorianCalendar).</p>
+     * (Same default as java.util.GregorianCalendar).
      *
      * @param defaultZoneoffset default zoneoffset if this zoneoffset is
      * {@link DatatypeConstants#FIELD_UNDEFINED}.
@@ -1054,9 +1051,9 @@
 
 
     /**
-     * <p>Creates and returns a copy of this object.</p>
+     * Creates and returns a copy of this object.
      *
-     * @return copy of this <code>Object</code>
+     * @return copy of this {@code Object}
      */
    public abstract Object clone();
 }
--- a/src/java.xml/share/classes/javax/xml/namespace/NamespaceContext.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/namespace/NamespaceContext.java	Thu Apr 23 16:12:16 2015 -0700
@@ -28,44 +28,44 @@
 import java.util.Iterator;
 
 /**
- * <p>Interface for read only XML Namespace context processing.</p>
+ * Interface for read only XML Namespace context processing.
  *
- * <p>An XML Namespace has the properties:</p>
+ * <p>An XML Namespace has the properties:
  * <ul>
  *   <li>Namespace URI:
  *       Namespace name expressed as a URI to which the prefix is bound</li>
  *   <li>prefix: syntactically, this is the part of the attribute name
- *       following the <code>XMLConstants.XMLNS_ATTRIBUTE</code>
+ *       following the {@code XMLConstants.XMLNS_ATTRIBUTE}
  *       ("xmlns") in the Namespace declaration</li>
  * </ul>
  * <p>example:
- * <code>&lt;element xmlns:prefix="http://Namespace-name-URI"&gt;</code></p>
+ * {@code <element xmlns:prefix="http://Namespace-name-URI">}
  *
- * <p>All <code>get*(*)</code> methods operate in the current scope
- * for Namespace URI and prefix resolution.</p>
+ * <p>All {@code get*(*)} methods operate in the current scope
+ * for Namespace URI and prefix resolution.
  *
  * <p>Note that a Namespace URI can be bound to
  * <strong>multiple</strong> prefixes in the current scope.  This can
- * occur when multiple <code>XMLConstants.XMLNS_ATTRIBUTE</code>
+ * occur when multiple {@code XMLConstants.XMLNS_ATTRIBUTE}
  * ("xmlns") Namespace declarations occur in the same Start-Tag and
- * refer to the same Namespace URI. e.g.<br />
- * <pre>
- * &lt;element xmlns:prefix1="http://Namespace-name-URI"
- *          xmlns:prefix2="http://Namespace-name-URI"&gt;
+ * refer to the same Namespace URI. e.g.<br>
+ * <pre> {@code
+ * <element xmlns:prefix1="http://Namespace-name-URI"
+ *          xmlns:prefix2="http://Namespace-name-URI"> }
  * </pre>
  * This can also occur when the same Namespace URI is used in multiple
- * <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns") Namespace
- * declarations in the logical parent element hierarchy.  e.g.<br />
- * <pre>
- * &lt;parent xmlns:prefix1="http://Namespace-name-URI">
- *   &lt;child xmlns:prefix2="http://Namespace-name-URI"&gt;
+ * {@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns") Namespace
+ * declarations in the logical parent element hierarchy.  e.g.<br>
+ * <pre> {@code
+ * <parent xmlns:prefix1="http://Namespace-name-URI">
+ *   <child xmlns:prefix2="http://Namespace-name-URI">
  *     ...
- *   &lt;/child&gt;
- * &lt;/parent&gt;
- * </pre></p>
+ *   </child>
+ * </parent> }
+ * </pre>
  *
  * <p>A prefix can only be bound to a <strong>single</strong>
- * Namespace URI in the current scope.</p>
+ * Namespace URI in the current scope.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @see javax.xml.XMLConstants
@@ -82,17 +82,17 @@
 public interface NamespaceContext {
 
     /**
-     * <p>Get Namespace URI bound to a prefix in the current scope.</p>
+     * Get Namespace URI bound to a prefix in the current scope.
      *
      * <p>When requesting a Namespace URI by prefix, the following
      * table describes the returned Namespace URI value for all
-     * possible prefix values:</p>
+     * possible prefix values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
      *       <td align="center" colspan="2">
-     *         <code>getNamespaceURI(prefix)</code>
+     *         {@code getNamespaceURI(prefix)}
      *         return value for specified prefixes
      *       </td>
      *     </tr>
@@ -103,9 +103,9 @@
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td><code>DEFAULT_NS_PREFIX</code> ("")</td>
+     *       <td>{@code DEFAULT_NS_PREFIX} ("")</td>
      *       <td>default Namespace URI in the current scope or
-     *         <code>{@link
+     *         <code> {@link
      *         javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}
      *         </code>
      *         when there is no default Namespace URI in the current scope</td>
@@ -117,24 +117,24 @@
      *     <tr>
      *       <td>unbound prefix</td>
      *       <td>
-     *         <code>{@link
+     *         <code> {@link
      *         javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}
      *         </code>
      *       </td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *         ("http://www.w3.org/2000/xmlns/")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *    </tbody>
      * </table>
@@ -143,26 +143,26 @@
      *
      * @return Namespace URI bound to prefix in the current scope
      *
-     * @throws IllegalArgumentException When <code>prefix</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code prefix} is
+     *   {@code null}
      */
     String getNamespaceURI(String prefix);
 
     /**
-     * <p>Get prefix bound to Namespace URI in the current scope.</p>
+     * Get prefix bound to Namespace URI in the current scope.
      *
      * <p>To get all prefixes bound to a Namespace URI in the current
-     * scope, use {@link #getPrefixes(String namespaceURI)}.</p>
+     * scope, use {@link #getPrefixes(String namespaceURI)}.
      *
      * <p>When requesting a prefix by Namespace URI, the following
      * table describes the returned prefix value for all Namespace URI
-     * values:</p>
+     * values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
      *       <th align="center" colspan="2">
-     *         <code>getPrefix(namespaceURI)</code> return value for
+     *         {@code getPrefix(namespaceURI)} return value for
      *         specified Namespace URIs
      *       </th>
      *     </tr>
@@ -173,8 +173,8 @@
      *   </thead>
      *   <tbody>
      *     <tr>
-     *       <td>&lt;default Namespace URI&gt;</td>
-     *       <td><code>XMLConstants.DEFAULT_NS_PREFIX</code> ("")
+     *       <td>{@code <default Namespace URI>}</td>
+     *       <td>{@code XMLConstants.DEFAULT_NS_PREFIX} ("")
      *       </td>
      *     </tr>
      *     <tr>
@@ -186,21 +186,21 @@
      *     </tr>
      *     <tr>
      *       <td>unbound Namespace URI</td>
-     *       <td><code>null</code></td>
+     *       <td>{@code null}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
-     *       <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
+     *       <td>{@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *           ("http://www.w3.org/2000/xmlns/")</td>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *   </tbody>
      * </table>
@@ -209,32 +209,32 @@
      *
      * @return prefix bound to Namespace URI in current context
      *
-     * @throws IllegalArgumentException When <code>namespaceURI</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code namespaceURI} is
+     *   {@code null}
      */
     String getPrefix(String namespaceURI);
 
     /**
-     * <p>Get all prefixes bound to a Namespace URI in the current
-     * scope.</p>
+     * Get all prefixes bound to a Namespace URI in the current
+     * scope.
      *
      * <p>An Iterator over String elements is returned in an arbitrary,
-     * <strong>implementation dependent</strong>, order.</p>
+     * <strong>implementation dependent</strong>, order.
      *
-     * <p><strong>The <code>Iterator</code> is
+     * <p><strong>The {@code Iterator} is
      * <em>not</em> modifiable.  e.g. the
-     * <code>remove()</code> method will throw
-     * <code>UnsupportedOperationException</code>.</strong></p>
+     * {@code remove()} method will throw
+     * {@code UnsupportedOperationException}.</strong>
      *
      * <p>When requesting prefixes by Namespace URI, the following
      * table describes the returned prefixes value for all Namespace
-     * URI values:</p>
+     * URI values:
      *
      * <table border="2" rules="all" cellpadding="4">
      *   <thead>
      *     <tr>
-     *       <th align="center" colspan="2"><code>
-     *         getPrefixes(namespaceURI)</code> return value for
+     *       <th align="center" colspan="2">{@code
+     *         getPrefixes(namespaceURI)} return value for
      *         specified Namespace URIs</th>
      *     </tr>
      *     <tr>
@@ -245,9 +245,9 @@
      *   <tbody>
      *     <tr>
      *       <td>bound Namespace URI,
-     *         including the &lt;default Namespace URI&gt;</td>
+     *         including the {@code <default Namespace URI>}</td>
      *       <td>
-     *         <code>Iterator</code> over prefixes bound to Namespace URI in
+     *         {@code Iterator} over prefixes bound to Namespace URI in
      *         the current scope in an arbitrary,
      *         <strong>implementation dependent</strong>,
      *         order
@@ -255,34 +255,34 @@
      *     </tr>
      *     <tr>
      *       <td>unbound Namespace URI</td>
-     *       <td>empty <code>Iterator</code></td>
+     *       <td>empty {@code Iterator}</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XML_NS_URI</code>
+     *       <td>{@code XMLConstants.XML_NS_URI}
      *           ("http://www.w3.org/XML/1998/namespace")</td>
-     *       <td><code>Iterator</code> with one element set to
-     *         <code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td>
+     *       <td>{@code Iterator} with one element set to
+     *         {@code XMLConstants.XML_NS_PREFIX} ("xml")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code>
+     *       <td>{@code XMLConstants.XMLNS_ATTRIBUTE_NS_URI}
      *           ("http://www.w3.org/2000/xmlns/")</td>
-     *       <td><code>Iterator</code> with one element set to
-     *         <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td>
+     *       <td>{@code Iterator} with one element set to
+     *         {@code XMLConstants.XMLNS_ATTRIBUTE} ("xmlns")</td>
      *     </tr>
      *     <tr>
-     *       <td><code>null</code></td>
-     *       <td><code>IllegalArgumentException</code> is thrown</td>
+     *       <td>{@code null}</td>
+     *       <td>{@code IllegalArgumentException} is thrown</td>
      *     </tr>
      *   </tbody>
      * </table>
      *
      * @param namespaceURI URI of Namespace to lookup
      *
-     * @return <code>Iterator</code> for all prefixes bound to the
+     * @return {@code Iterator} for all prefixes bound to the
      *   Namespace URI in the current scope
      *
-     * @throws IllegalArgumentException When <code>namespaceURI</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code namespaceURI} is
+     *   {@code null}
      */
     Iterator getPrefixes(String namespaceURI);
 }
--- a/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -47,8 +47,8 @@
     private boolean coalescing = false;
 
     /**
-     * <p>Protected constructor to prevent instantiation.
-     * Use {@link #newInstance()}.</p>
+     * Protected constructor to prevent instantiation.
+     * Use {@link #newInstance()}.
      */
     protected DocumentBuilderFactory () {
     }
@@ -60,7 +60,6 @@
      * This method uses the following ordered lookup procedure to determine
      * the {@code DocumentBuilderFactory} implementation class to
      * load:
-     * <p>
      * <ul>
      * <li>
      * Use the {@code javax.xml.parsers.DocumentBuilderFactory} system
@@ -131,7 +130,7 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code DocumentBuilderFactory} from class name.
+     * Obtain a new instance of a {@code DocumentBuilderFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
      * should be loaded.
@@ -143,21 +142,22 @@
      * <h2>Tip for Trouble-shooting</h2>
      * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to {@code System.err} about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
-     * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.parsers.DocumentBuilderFactory}.
+     * @param factoryClassName fully qualified factory class name that provides
+     *        implementation of {@code javax.xml.parsers.DocumentBuilderFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code DocumentBuilderFactory}
      *
-     * @throws FactoryConfigurationError if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws FactoryConfigurationError if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -187,7 +187,7 @@
     /**
      * Specifies that the parser produced by this code will
      * provide support for XML namespaces. By default the value of this is set
-     * to <code>false</code>
+     * to {@code false}
      *
      * @param awareness true if the parser produced will provide support
      *                  for XML namespaces; false otherwise.
@@ -200,7 +200,7 @@
     /**
      * Specifies that the parser produced by this code will
      * validate documents as they are parsed. By default the value of this
-     * is set to <code>false</code>.
+     * is set to {@code false}.
      *
      * <p>
      * Note that "the validation" here means
@@ -208,15 +208,13 @@
      * parser</a> as defined in the XML recommendation.
      * In other words, it essentially just controls the DTD validation.
      * (except the legacy two properties defined in JAXP 1.2.)
-     * </p>
      *
      * <p>
      * To use modern schema languages such as W3C XML Schema or
      * RELAX NG instead of DTD, you can configure your parser to be
      * a non-validating parser by leaving the {@link #setValidating(boolean)}
-     * method <code>false</code>, then use the {@link #setSchema(Schema)}
+     * method {@code false}, then use the {@link #setSchema(Schema)}
      * method to associate a schema to a parser.
-     * </p>
      *
      * @param validating true if the parser produced will validate documents
      *                   as they are parsed; false otherwise.
@@ -234,7 +232,7 @@
      * element content that has an element only content model (see XML
      * Rec 3.2.1) will be eliminated. Due to reliance on the content model
      * this setting requires the parser to be in validating mode. By default
-     * the value of this is set to <code>false</code>.
+     * the value of this is set to {@code false}.
      *
      * @param whitespace true if the parser created must eliminate whitespace
      *                   in the element content when parsing XML documents;
@@ -248,7 +246,7 @@
     /**
      * Specifies that the parser produced by this code will
      * expand entity reference nodes. By default the value of this is set to
-     * <code>true</code>
+     * {@code true}
      *
      * @param expandEntityRef true if the parser produced will expand entity
      *                        reference nodes; false otherwise.
@@ -259,11 +257,10 @@
     }
 
     /**
-     * <p>Specifies that the parser produced by this code will
-     * ignore comments. By default the value of this is set to <code>false
-     * </code>.</p>
+     * Specifies that the parser produced by this code will
+     * ignore comments. By default the value of this is set to {@code false}.
      *
-     * @param ignoreComments <code>boolean</code> value to ignore comments during processing
+     * @param ignoreComments {@code boolean} value to ignore comments during processing
      */
 
     public void setIgnoringComments(boolean ignoreComments) {
@@ -274,7 +271,7 @@
      * Specifies that the parser produced by this code will
      * convert CDATA nodes to Text nodes and append it to the
      * adjacent (if any) text node. By default the value of this is set to
-     * <code>false</code>
+     * {@code false}
      *
      * @param coalescing  true if the parser produced will convert CDATA nodes
      *                    to Text nodes and append it to the adjacent (if any)
@@ -367,25 +364,23 @@
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
-     *      <p>
      *      Setting the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property
      *      restricts the access to external DTDs, external Entity References to the
      *      protocols specified by the property.
      *      If access is denied during parsing due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the parse methods defined by
      *      {@link javax.xml.parsers.DocumentBuilder}.
-     *      </p>
-     *      <p>
+     *   </li>
+     *   <li>
      *      Setting the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} property
      *      restricts the access to external Schema set by the schemaLocation attribute to
      *      the protocols specified by the property.  If access is denied during parsing
      *      due to the restriction of this property, {@link org.xml.sax.SAXException}
      *      will be thrown by the parse methods defined by
      *      {@link javax.xml.parsers.DocumentBuilder}.
-     *      </p>
      *   </li>
      * </ul>
      *
@@ -413,61 +408,61 @@
                 throws IllegalArgumentException;
 
     /**
-     * <p>Set a feature for this {@code DocumentBuilderFactory} and <code>DocumentBuilder</code>s created by this factory.</p>
+     * Set a feature for this {@code DocumentBuilderFactory}
+     * and {@code DocumentBuilder}s created by this factory.
      *
      * <p>
      * Feature names are fully qualified {@link java.net.URI}s.
      * Implementations may define their own features.
      * A {@link ParserConfigurationException} is thrown if this {@code DocumentBuilderFactory} or the
-     * <code>DocumentBuilder</code>s it creates cannot support the feature.
+     * {@code DocumentBuilder}s it creates cannot support the feature.
      * It is possible for a {@code DocumentBuilderFactory} to expose a feature value but be unable to change its state.
-     * </p>
+     *
      *
      * <p>
      * All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is:</p>
+     * When the feature is:
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *    {@link org.xml.sax.ErrorHandler#fatalError(SAXParseException exception)}.
      *     See {@link  DocumentBuilder#setErrorHandler(org.xml.sax.ErrorHandler errorHandler)}.
      *   </li>
      *   <li>
-     *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+     *     {@code false}: the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
      *
      * @param name Feature name.
-     * @param value Is feature state <code>true</code> or <code>false</code>.
+     * @param value Is feature state {@code true} or {@code false}.
      *
-     * @throws ParserConfigurationException if this {@code DocumentBuilderFactory} or the <code>DocumentBuilder</code>s
+     * @throws ParserConfigurationException if this {@code DocumentBuilderFactory} or the {@code DocumentBuilder}s
      *   it creates cannot support this feature.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      * @since 1.5
      */
     public abstract void setFeature(String name, boolean value)
             throws ParserConfigurationException;
 
     /**
-     * <p>Get the state of the named feature.</p>
+     * Get the state of the named feature.
      *
      * <p>
      * Feature names are fully qualified {@link java.net.URI}s.
      * Implementations may define their own features.
      * An {@link ParserConfigurationException} is thrown if this {@code DocumentBuilderFactory} or the
-     * <code>DocumentBuilder</code>s it creates cannot support the feature.
+     * {@code DocumentBuilder}s it creates cannot support the feature.
      * It is possible for an {@code DocumentBuilderFactory} to expose a feature value but be unable to change its state.
-     * </p>
      *
      * @param name Feature name.
      *
      * @return State of the named feature.
      *
      * @throws ParserConfigurationException if this {@code DocumentBuilderFactory}
-     *   or the <code>DocumentBuilder</code>s it creates cannot support this feature.
+     *   or the {@code DocumentBuilder}s it creates cannot support this feature.
      * @since 1.5
      */
     public abstract boolean getFeature(String name)
@@ -501,7 +496,7 @@
     }
 
     /**
-     * <p>Set the {@link Schema} to be used by parsers created
+     * Set the {@link Schema} to be used by parsers created
      * from this factory.
      *
      * <p>
@@ -529,26 +524,26 @@
      *
      * <p>
      * This processing will take effect even if
-     * the {@link #isValidating()} method returns <code>false</code>.
+     * the {@link #isValidating()} method returns {@code false}.
      *
      * <p>It is an error to use
-     * the <code>http://java.sun.com/xml/jaxp/properties/schemaSource</code>
-     * property and/or the <code>http://java.sun.com/xml/jaxp/properties/schemaLanguage</code>
+     * the {@code http://java.sun.com/xml/jaxp/properties/schemaSource}
+     * property and/or the {@code http://java.sun.com/xml/jaxp/properties/schemaLanguage}
      * property in conjunction with a {@link Schema} object.
      * Such configuration will cause a {@link ParserConfigurationException}
-     * exception when the {@link #newDocumentBuilder()} is invoked.</p>
+     * exception when the {@link #newDocumentBuilder()} is invoked.
      *
      *
-     * <h4>Note for implementors</h4>
+     * <h3>Note for implementors</h3>
      *
      * <p>
      * A parser must be able to work with any {@link Schema}
      * implementation. However, parsers and schemas are allowed
      * to use implementation-specific custom mechanisms
      * as long as they yield the result described in the specification.
-     * </p>
      *
-     * @param schema <code>Schema</code> to use or <code>null</code>
+     *
+     * @param schema {@code Schema} to use or {@code null}
      *   to remove a schema.
      *
      * @throws UnsupportedOperationException When implementation does not
@@ -569,16 +564,16 @@
 
 
     /**
-     * <p>Set state of XInclude processing.</p>
+     * Set state of XInclude processing.
      *
      * <p>If XInclude markup is found in the document instance, should it be
      * processed as specified in <a href="http://www.w3.org/TR/xinclude/">
-     * XML Inclusions (XInclude) Version 1.0</a>.</p>
+     * XML Inclusions (XInclude) Version 1.0</a>.
      *
-     * <p>XInclude processing defaults to <code>false</code>.</p>
+     * <p>XInclude processing defaults to {@code false}.
      *
-     * @param state Set XInclude processing to <code>true</code> or
-     *   <code>false</code>
+     * @param state Set XInclude processing to {@code true} or
+     *   {@code false}
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method.
@@ -594,7 +589,7 @@
     }
 
     /**
-     * <p>Get state of XInclude processing.</p>
+     * Get state of XInclude processing.
      *
      * @return current state of XInclude processing
      *
--- a/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -42,17 +42,17 @@
 public abstract class SAXParserFactory {
 
     /**
-     * <p>Should Parsers be validating?</p>
+     * Should Parsers be validating?
      */
     private boolean validating = false;
 
     /**
-     * <p>Should Parsers be namespace aware?</p>
+     * Should Parsers be namespace aware?
      */
     private boolean namespaceAware = false;
 
     /**
-     * <p>Protected constructor to force use of {@link #newInstance()}.</p>
+     * Protected constructor to force use of {@link #newInstance()}.
      */
     protected SAXParserFactory () {
 
@@ -64,7 +64,6 @@
      * This method uses the following ordered lookup procedure to determine
      * the {@code SAXParserFactory} implementation class to
      * load:
-     * <p>
      * <ul>
      * <li>
      * Use the {@code javax.xml.parsers.SAXParserFactory} system
@@ -138,19 +137,19 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code SAXParserFactory} from class name.
+     * Obtain a new instance of a {@code SAXParserFactory} from class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a {@code SAXParserFactory}
-     * it can use the factory to configure and obtain parser instances.</p>
+     * it can use the factory to configure and obtain parser instances.
      *
      *
      * <h2>Tip for Trouble-shooting</h2>
      * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to {@code System.err} about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
      * <p>
      * If you have problems, try:
@@ -160,12 +159,12 @@
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.parsers.SAXParserFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return New instance of a {@code SAXParserFactory}
      *
-     * @throws FactoryConfigurationError if <code>factoryClassName</code> is <code>null</code>, or
+     * @throws FactoryConfigurationError if {@code factoryClassName} is {@code null}, or
      *                                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -179,8 +178,8 @@
     }
 
     /**
-     * <p>Creates a new instance of a SAXParser using the currently
-     * configured factory parameters.</p>
+     * Creates a new instance of a SAXParser using the currently
+     * configured factory parameters.
      *
      * @return A new instance of a SAXParser.
      *
@@ -196,7 +195,7 @@
     /**
      * Specifies that the parser produced by this code will
      * provide support for XML namespaces. By default the value of this is set
-     * to <code>false</code>.
+     * to {@code false}.
      *
      * @param awareness true if the parser produced by this code will
      *                  provide support for XML namespaces; false otherwise.
@@ -209,7 +208,7 @@
     /**
      * Specifies that the parser produced by this code will
      * validate documents as they are parsed. By default the value of this is
-     * set to <code>false</code>.
+     * set to {@code false}.
      *
      * <p>
      * Note that "the validation" here means
@@ -217,15 +216,13 @@
      * parser</a> as defined in the XML recommendation.
      * In other words, it essentially just controls the DTD validation.
      * (except the legacy two properties defined in JAXP 1.2.)
-     * </p>
      *
      * <p>
      * To use modern schema languages such as W3C XML Schema or
      * RELAX NG instead of DTD, you can configure your parser to be
      * a non-validating parser by leaving the {@link #setValidating(boolean)}
-     * method <code>false</code>, then use the {@link #setSchema(Schema)}
+     * method {@code false}, then use the {@link #setSchema(Schema)}
      * method to associate a schema to a parser.
-     * </p>
      *
      * @param validating true if the parser produced by this code will
      *                   validate documents as they are parsed; false otherwise.
@@ -260,24 +257,23 @@
     }
 
     /**
-     *
-     * <p>Sets the particular feature in the underlying implementation of
+     * Sets the particular feature in the underlying implementation of
      * org.xml.sax.XMLReader.
      * A list of the core features and properties can be found at
-     * <a href="http://www.saxproject.org/">http://www.saxproject.org/</a></p>
+     * <a href="http://www.saxproject.org/">http://www.saxproject.org/</a>
      *
      * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is</p>
+     * When the feature is
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *     {@link org.xml.sax.ErrorHandler#fatalError(SAXParseException exception)}.
-     *     See {@link SAXParser} <code>parse</code> methods for handler specification.
+     *     See {@link SAXParser} {@code parse} methods for handler specification.
      *   </li>
      *   <li>
-     *     When the feature is <code>false</code>, the implementation will processing XML according to the XML specifications without
+     *     When the feature is {@code false}, the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
@@ -292,7 +288,7 @@
      * @throws SAXNotSupportedException When the underlying XMLReader
      *            recognizes the property name but doesn't support the
      *            property.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      *
      * @see org.xml.sax.XMLReader#setFeature
      */
@@ -302,8 +298,8 @@
 
     /**
      *
-     * <p>Returns the particular property requested for in the underlying
-     * implementation of org.xml.sax.XMLReader.</p>
+     * Returns the particular property requested for in the underlying
+     * implementation of org.xml.sax.XMLReader.
      *
      * @param name The name of the property to be retrieved.
      *
@@ -347,12 +343,12 @@
     }
 
     /**
-     * <p>Set the {@link Schema} to be used by parsers created
-     * from this factory.</p>
+     * Set the {@link Schema} to be used by parsers created
+     * from this factory.
      *
      * <p>When a {@link Schema} is non-null, a parser will use a validator
      * created from it to validate documents before it passes information
-     * down to the application.</p>
+     * down to the application.
      *
      * <p>When warnings/errors/fatal errors are found by the validator, the parser must
      * handle them as if those errors were found by the parser itself.
@@ -364,29 +360,28 @@
      * <p>A validator may modify the SAX event stream (for example by
      * adding default values that were missing in documents), and a parser
      * is responsible to make sure that the application will receive
-     * those modified event stream.</p>
+     * those modified event stream.
      *
-     * <p>Initially, <code>null</code> is set as the {@link Schema}.</p>
+     * <p>Initially, {@code null} is set as the {@link Schema}.
      *
      * <p>This processing will take effect even if
-     * the {@link #isValidating()} method returns <code>false</code>.
+     * the {@link #isValidating()} method returns {@code false}.
      *
      * <p>It is an error to use
-     * the <code>http://java.sun.com/xml/jaxp/properties/schemaSource</code>
-     * property and/or the <code>http://java.sun.com/xml/jaxp/properties/schemaLanguage</code>
+     * the {@code http://java.sun.com/xml/jaxp/properties/schemaSource}
+     * property and/or the {@code http://java.sun.com/xml/jaxp/properties/schemaLanguage}
      * property in conjunction with a non-null {@link Schema} object.
      * Such configuration will cause a {@link SAXException}
-     * exception when those properties are set on a {@link SAXParser}.</p>
+     * exception when those properties are set on a {@link SAXParser}.
      *
-     * <h4>Note for implementors</h4>
+     * <h3>Note for implementors</h3>
      * <p>
      * A parser must be able to work with any {@link Schema}
      * implementation. However, parsers and schemas are allowed
      * to use implementation-specific custom mechanisms
      * as long as they yield the result described in the specification.
-     * </p>
      *
-     * @param schema <code>Schema</code> to use, <code>null</code> to remove a schema.
+     * @param schema {@code Schema} to use, {@code null} to remove a schema.
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method
@@ -404,16 +399,16 @@
     }
 
     /**
-     * <p>Set state of XInclude processing.</p>
+     * Set state of XInclude processing.
      *
      * <p>If XInclude markup is found in the document instance, should it be
      * processed as specified in <a href="http://www.w3.org/TR/xinclude/">
-     * XML Inclusions (XInclude) Version 1.0</a>.</p>
+     * XML Inclusions (XInclude) Version 1.0</a>.
      *
-     * <p>XInclude processing defaults to <code>false</code>.</p>
+     * <p>XInclude processing defaults to {@code false}.
      *
-     * @param state Set XInclude processing to <code>true</code> or
-     *   <code>false</code>
+     * @param state Set XInclude processing to {@code true} or
+     *   {@code false}
      *
      * @throws UnsupportedOperationException When implementation does not
      *   override this method
@@ -429,7 +424,7 @@
     }
 
     /**
-     * <p>Get state of XInclude processing.</p>
+     * Get state of XInclude processing.
      *
      * @return current state of XInclude processing
      *
--- a/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -70,7 +70,6 @@
    * This static method creates a new factory instance.
    * This method uses the following ordered lookup procedure to determine
    * the XMLEventFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the javax.xml.stream.XMLEventFactory system property.
@@ -158,7 +157,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLEventFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the value of the system property identified by {@code factoryId}.
--- a/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -160,7 +160,7 @@
    * This static method creates a new factory instance.
    * This method uses the following ordered lookup procedure to determine
    * the XMLInputFactory implementation class to load:
-   * </p>
+   *
    * <ul>
    * <li>
    *   <p>Use the javax.xml.stream.XMLInputFactory system property.
@@ -201,12 +201,11 @@
    * <p>
    *   Once an application has obtained a reference to a XMLInputFactory it
    *   can use the factory to configure and obtain stream instances.
-   * </p>
    * <p>
    *   Note that this is a new method that replaces the deprecated newInstance() method.
    *     No changes in behavior are defined by this replacement method relative to
    *     the deprecated method.
-   * </p>
+   *
    * @throws FactoryConfigurationError in case of {@linkplain
    *   java.util.ServiceConfigurationError service configuration error} or if
    *   the implementation is not available or cannot be instantiated.
@@ -245,7 +244,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLInputFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   <p>
@@ -488,7 +486,6 @@
    * <p>
    * All implementations that implement JAXP 1.5 or newer are required to
    * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
-   * </p>
    * <ul>
    *   <li>
    *        <p>
@@ -497,7 +494,7 @@
    *        due to the restriction of this property, {@link javax.xml.stream.XMLStreamException}
    *        will be thrown by the {@link javax.xml.stream.XMLStreamReader#next()} or
    *        {@link javax.xml.stream.XMLEventReader#nextEvent()} method.
-   *        </p>
+   *
    *   </li>
    * </ul>
    * @param name The name of the property (may not be null)
--- a/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -54,17 +54,18 @@
  *        <th>Default Value</th>
  *        <th>Required</th>
  *              </tr>
- *         <tr><td>javax.xml.stream.isRepairingNamespaces</td><td>defaults prefixes on the output side</td><td>Boolean</td><td>False</td><td>Yes</td></tr>
+ *         <tr><td>javax.xml.stream.isRepairingNamespaces</td><td>defaults prefixes
+ *                 on the output side</td><td>Boolean</td><td>False</td><td>Yes</td></tr>
  *      </tbody>
  *   </table>
  *
- * <p>The following paragraphs describe the namespace and prefix repair algorithm:</p>
+ * <p>The following paragraphs describe the namespace and prefix repair algorithm:
  *
  * <p>The property can be set with the following code line:
- * <code>setProperty("javax.xml.stream.isRepairingNamespaces",new Boolean(true|false));</code></p>
+ * {@code setProperty("javax.xml.stream.isRepairingNamespaces", new Boolean(true|false));}
  *
  * <p>This property specifies that the writer default namespace prefix declarations.
- * The default value is false. </p>
+ * The default value is false.
  *
  * <p>If a writer isRepairingNamespaces it will create a namespace declaration
  * on the current StartElement for
@@ -74,11 +75,11 @@
  * has not been declared in a parent of the current StartElement it will be declared
  * on the current StartElement.  If the defaultNamespace is bound and in scope
  * and the default namespace matches the URI of the attribute or StartElement
- * QName no prefix will be assigned.</p>
+ * QName no prefix will be assigned.
  *
  * <p>If an element or attribute name has a prefix, but is not
  * bound to any namespace URI, then the prefix will be removed
- * during serialization.</p>
+ * during serialization.
  *
  * <p>If element and/or attribute names in the same start or
  * empty-element tag are bound to different namespace URIs and
@@ -86,20 +87,20 @@
  * occurring attribute retains the original prefix and the
  * following attributes have their prefixes replaced with a
  * new prefix that is bound to the namespace URIs of those
- * attributes. </p>
+ * attributes.
  *
  * <p>If an element or attribute name uses a prefix that is
  * bound to a different URI than that inherited from the
  * namespace context of the parent of that element and there
  * is no namespace declaration in the context of the current
- * element then such a namespace declaration is added. </p>
+ * element then such a namespace declaration is added.
  *
  * <p>If an element or attribute name is bound to a prefix and
  * there is a namespace declaration that binds that prefix
  * to a different URI then that namespace declaration is
  * either removed if the correct mapping is inherited from
  * the parent context of that element, or changed to the
- * namespace URI of the element or attribute using that prefix.</p>
+ * namespace URI of the element or attribute using that prefix.
  *
  * @version 1.2
  * @author Copyright (c) 2009, 2015 by Oracle Corporation. All Rights Reserved.
@@ -136,7 +137,6 @@
    * This static method creates a new factory instance. This method uses the
    * following ordered lookup procedure to determine the XMLOutputFactory
    * implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the javax.xml.stream.XMLOutputFactory system property.
@@ -177,6 +177,7 @@
    *   <p>
    *   Otherwise, the system-default implementation is returned.
    * </li>
+   * </ul>
    * <p>
    * Once an application has obtained a reference to a XMLOutputFactory it
    * can use the factory to configure and obtain stream instances.
@@ -222,7 +223,6 @@
    * <p>
    * This method uses the following ordered lookup procedure to determine
    * the XMLOutputFactory implementation class to load:
-   * <p>
    * <ul>
    * <li>
    *   Use the value of the system property identified by {@code factoryId}.
--- a/src/java.xml/share/classes/javax/xml/stream/XMLStreamReader.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/stream/XMLStreamReader.java	Thu Apr 23 16:12:16 2015 -0700
@@ -57,9 +57,9 @@
  * javax.xml.stream.notations and javax.xml.stream.entities.
  * When the current event is a DTD the following call will return a
  * list of Notations
- *  <code>List l = (List) getProperty("javax.xml.stream.notations");</code>
+ * {@code List l = (List) getProperty("javax.xml.stream.notations");}
  * The following call will return a list of entity declarations:
- * <code>List l = (List) getProperty("javax.xml.stream.entities");</code>
+ * {@code List l = (List) getProperty("javax.xml.stream.entities");}
  * These properties can only be accessed during a DTD event and
  * are defined to return null if the information is not available.
  *
@@ -97,12 +97,13 @@
  *            getElementText(), nextTag()
  *       </td>
  *     </tr>
+ *     <tr>
  *       <td> ATTRIBUTE  </td>
  *       <td> next(), nextTag()
  *            getAttributeXXX(), isAttributeSpecified(),
  *       </td>
  *     </tr>
- *     </tr>
+ *     <tr>
  *       <td> NAMESPACE  </td>
  *       <td> next(), nextTag()
  *            getNamespaceXXX()
@@ -184,7 +185,7 @@
    * If element content is empty (i.e. content is "") then no CHARACTERS event will be reported.
    *
    * <p>Given the following XML:<br>
-   * &lt;foo>&lt;!--description-->content text&lt;![CDATA[&lt;greeting>Hello&lt;/greeting>]]>other content&lt;/foo><br>
+   * {@code <foo><!--description-->content text<![CDATA[<greeting>Hello>/greeting>]]>other content>/foo>}<br>
    * The behavior of calling next() when being on foo will be:<br>
    * 1- the comment (COMMENT)<br>
    * 2- then the characters section (CHARACTERS)<br>
@@ -192,14 +193,14 @@
    * 4- then the next characters section (another CHARACTERS)<br>
    * 5- then the END_ELEMENT<br>
    *
-   * <p><b>NOTE:</b> empty element (such as &lt;tag/>) will be reported
+   * <p><b>NOTE:</b> empty element (such as {@code <tag/>}) will be reported
    *  with  two separate events: START_ELEMENT, END_ELEMENT - This preserves
-   *   parsing equivalency of empty element to &lt;tag>&lt;/tag>.
+   *   parsing equivalency of empty element to {@code <tag></tag>}.
    *
    * This method will throw an IllegalStateException if it is called after hasNext() returns false.
    * @see javax.xml.stream.events.XMLEvent
    * @return the integer code corresponding to the current parse event
-   * @throws NoSuchElementException if this is called when hasNext() returns false
+   * @throws java.util.NoSuchElementException if this is called when hasNext() returns false
    * @throws XMLStreamException  if there is an error processing the underlying XML source
    */
   public int next() throws XMLStreamException;
@@ -219,38 +220,39 @@
    * Reads the content of a text-only element, an exception is thrown if this is
    * not a text-only element.
    * Regardless of value of javax.xml.stream.isCoalescing this method always returns coalesced content.
-   * <br /> Precondition: the current event is START_ELEMENT.
-   * <br /> Postcondition: the current event is the corresponding END_ELEMENT.
+   * <br> Precondition: the current event is START_ELEMENT.
+   * <br> Postcondition: the current event is the corresponding END_ELEMENT.
    *
-   * <br />The method does the following (implementations are free to optimized
+   * <br>The method does the following (implementations are free to optimized
    * but must do equivalent processing):
    * <pre>
    * if(getEventType() != XMLStreamConstants.START_ELEMENT) {
-   * throw new XMLStreamException(
-   * "parser must be on START_ELEMENT to read next text", getLocation());
+   *     throw new XMLStreamException(
+   *     "parser must be on START_ELEMENT to read next text", getLocation());
    * }
+   *
    * int eventType = next();
    * StringBuffer content = new StringBuffer();
-   * while(eventType != XMLStreamConstants.END_ELEMENT ) {
-   * if(eventType == XMLStreamConstants.CHARACTERS
-   * || eventType == XMLStreamConstants.CDATA
-   * || eventType == XMLStreamConstants.SPACE
-   * || eventType == XMLStreamConstants.ENTITY_REFERENCE) {
-   * buf.append(getText());
-   * } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
-   * || eventType == XMLStreamConstants.COMMENT) {
-   * // skipping
-   * } else if(eventType == XMLStreamConstants.END_DOCUMENT) {
-   * throw new XMLStreamException(
-   * "unexpected end of document when reading element text content", this);
-   * } else if(eventType == XMLStreamConstants.START_ELEMENT) {
-   * throw new XMLStreamException(
-   * "element text content may not contain START_ELEMENT", getLocation());
-   * } else {
-   * throw new XMLStreamException(
-   * "Unexpected event type "+eventType, getLocation());
-   * }
-   * eventType = next();
+   * while(eventType != XMLStreamConstants.END_ELEMENT) {
+   *     if(eventType == XMLStreamConstants.CHARACTERS
+   *        || eventType == XMLStreamConstants.CDATA
+   *        || eventType == XMLStreamConstants.SPACE
+   *        || eventType == XMLStreamConstants.ENTITY_REFERENCE) {
+   *           buf.append(getText());
+   *     } else if(eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
+   *               || eventType == XMLStreamConstants.COMMENT) {
+   *         // skipping
+   *     } else if(eventType == XMLStreamConstants.END_DOCUMENT) {
+   *         throw new XMLStreamException(
+   *         "unexpected end of document when reading element text content", this);
+   *     } else if(eventType == XMLStreamConstants.START_ELEMENT) {
+   *         throw new XMLStreamException(
+   *         "element text content may not contain START_ELEMENT", getLocation());
+   *     } else {
+   *         throw new XMLStreamException(
+   *         "Unexpected event type "+eventType, getLocation());
+   *     }
+   *     eventType = next();
    * }
    * return buf.toString();
    * </pre>
@@ -268,33 +270,33 @@
    * are encountered, an exception is thrown. This method should
    * be used when processing element-only content seperated by white space.
    *
-   * <br /> Precondition: none
-   * <br /> Postcondition: the current event is START_ELEMENT or END_ELEMENT
+   * <br> Precondition: none
+   * <br> Postcondition: the current event is START_ELEMENT or END_ELEMENT
    * and cursor may have moved over any whitespace event.
    *
-   * <br />Essentially it does the following (implementations are free to optimized
+   * <br>Essentially it does the following (implementations are free to optimized
    * but must do equivalent processing):
-   * <pre>
+   * <pre> {@code
    * int eventType = next();
-   * while((eventType == XMLStreamConstants.CHARACTERS &amp;&amp; isWhiteSpace()) // skip whitespace
-   * || (eventType == XMLStreamConstants.CDATA &amp;&amp; isWhiteSpace())
+   * while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
+   * || (eventType == XMLStreamConstants.CDATA && isWhiteSpace())
    * // skip whitespace
    * || eventType == XMLStreamConstants.SPACE
    * || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
    * || eventType == XMLStreamConstants.COMMENT
    * ) {
-   * eventType = next();
+   *     eventType = next();
    * }
-   * if (eventType != XMLStreamConstants.START_ELEMENT &amp;&amp; eventType != XMLStreamConstants.END_ELEMENT) {
-   * throw new String XMLStreamException("expected start or end tag", getLocation());
+   * if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) {
+   *     throw new String XMLStreamException("expected start or end tag", getLocation());
    * }
-   * return eventType;
+   * return eventType; }
    * </pre>
    *
    * @return the event type of the element read (START_ELEMENT or END_ELEMENT)
    * @throws XMLStreamException if the current event is not white space, PROCESSING_INSTRUCTION,
    * START_ELEMENT or END_ELEMENT
-   * @throws NoSuchElementException if this is called when hasNext() returns false
+   * @throws java.util.NoSuchElementException if this is called when hasNext() returns false
    */
   public int nextTag() throws XMLStreamException;
 
@@ -309,7 +311,7 @@
   public boolean hasNext() throws XMLStreamException;
 
   /**
-   * Frees any resources associated with this Reader.  This method does not close the
+   * Frees any resources associated with this Reader. This method does not close the
    * underlying input source.
    * @throws XMLStreamException if there are errors freeing associated resources
    */
@@ -542,7 +544,7 @@
    * If the number of characters actually copied is less than the "length", then there is no more text.
    * Otherwise, subsequent calls need to be made until all text has been retrieved. For example:
    *
-   *<code>
+   * <pre>{@code
    * int length = 1024;
    * char[] myBuffer = new char[ length ];
    *
@@ -553,7 +555,7 @@
    *   if (nCopied < length)
    *       break;
    * }
-   * </code>
+   * } </pre>
    * XMLStreamException may be thrown if there are any XML errors in the underlying source.
    * The "targetStart" argument must be greater than or equal to 0 and less than the length of "target",
    * Length must be greater than 0 and "targetStart + length" must be less than or equal to length of "target".
@@ -564,8 +566,8 @@
    * @param length the number of characters to copy
    * @return the number of characters actually copied
    * @throws XMLStreamException if the underlying XML source is not well-formed
-   * @throws IndexOutOfBoundsException if targetStart < 0 or > than the length of target
-   * @throws IndexOutOfBoundsException if length < 0 or targetStart + length > length of target
+   * @throws IndexOutOfBoundsException if targetStart {@literal <} 0 or {@literal >} than the length of target
+   * @throws IndexOutOfBoundsException if length {@literal <} 0 or targetStart + length {@literal >} length of target
    * @throws UnsupportedOperationException if this method is not supported
    * @throws NullPointerException is if target is null
    */
--- a/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java	Thu Apr 23 16:12:16 2015 -0700
@@ -33,9 +33,9 @@
 /**
  * The XMLStreamWriter interface specifies how to write XML.  The XMLStreamWriter  does
  * not perform well formedness checking on its input.  However
- * the writeCharacters method is required to escape &amp; , &lt; and &gt;
+ * the writeCharacters method is required to escape {@literal &, < and >}
  * For attribute values the writeAttribute method will escape the
- * above characters plus &quot; to ensure that all character content
+ * above characters plus {@literal "} to ensure that all character content
  * and attribute values are well formed.
  *
  * Each NAMESPACE
@@ -44,12 +44,12 @@
  * <table border="1" cellpadding="2" cellspacing="0">
  *     <thead>
  *         <tr>
- *             <th colspan="5">XML Namespaces, <code>javax.xml.stream.isRepairingNamespaces</code> and write method behaviour</th>
+ *             <th colspan="5">XML Namespaces, {@code javax.xml.stream.isRepairingNamespaces} and write method behaviour</th>
  *         </tr>
  *         <tr>
  *             <th>Method</th> <!-- method -->
- *             <th colspan="2"><code>isRepairingNamespaces</code> == true</th>
- *             <th colspan="2"><code>isRepairingNamespaces</code> == false</th>
+ *             <th colspan="2">{@code isRepairingNamespaces} == true</th>
+ *             <th colspan="2">{@code isRepairingNamespaces} == false</th>
  *         </tr>
  *         <tr>
  *             <th></th> <!-- method -->
@@ -62,7 +62,7 @@
  *
  *     <tbody>
  *         <tr>
- *             <th><code>writeAttribute(namespaceURI, localName, value)</code></th>
+ *             <th>{@code writeAttribute(namespaceURI, localName, value)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
@@ -79,19 +79,19 @@
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 <code>XMLStreamException</code>
+ *                 {@code XMLStreamException}
  *             </td>
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeAttribute(prefix, namespaceURI, localName, value)</code></th>
+ *             <th>{@code writeAttribute(prefix, namespaceURI, localName, value)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 prefix:localName="value"&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
+ *                 bound to same prefix:<br>
+ *                 prefix:localName="value"&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
  *                 xmlns:{generated}="namespaceURI" {generated}:localName="value"
  *             </td>
  *             <td>
@@ -101,11 +101,11 @@
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 prefix:localName="value"&nbsp;<sup>[1][2]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 <code>XMLStreamException</code><sup>[2]</sup>
+ *                 bound to same prefix:<br>
+ *                 prefix:localName="value"&nbsp;<sup>[1][2]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code XMLStreamException}<sup>[2]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
@@ -114,58 +114,58 @@
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeStartElement(namespaceURI, localName)</code><br />
- *                 <br />
- *                 <code>writeEmptyElement(namespaceURI, localName)</code></th>
+ *             <th>{@code writeStartElement(namespaceURI, localName)}<br>
+ *                 <br>
+ *                 {@code writeEmptyElement(namespaceURI, localName)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td >
  *                 <!-- namespaceURI bound -->
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;{generated}:localName xmlns:{generated}="namespaceURI"&gt;
+ *                 {@code <{generated}:localName xmlns:{generated}="namespaceURI">}
  *             </td>
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup>
+ *                 {@code prefix:localName>}&nbsp;<sup>[1]</sup>
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 <code>XMLStreamException</code>
+ *                 {@code XMLStreamException}
  *             </td>
  *         </tr>
  *
  *         <tr>
- *             <th><code>writeStartElement(prefix, localName, namespaceURI)</code><br />
- *                 <br />
- *                 <code>writeEmptyElement(prefix, localName, namespaceURI)</code></th>
+ *             <th>{@code writeStartElement(prefix, localName, namespaceURI)}<br>
+ *                 <br>
+ *                 {@code writeEmptyElement(prefix, localName, namespaceURI)}</th>
  *             <!-- isRepairingNamespaces == true -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 &lt;{generated}:localName xmlns:{generated}="namespaceURI"&gt;
+ *                 bound to same prefix:<br>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code <{generated}:localName xmlns:{generated}="namespaceURI">}
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;prefix:localName xmlns:prefix="namespaceURI"&gt;&nbsp;<sup>[4]</sup>
+ *                 {@code <prefix:localName xmlns:prefix="namespaceURI">}&nbsp;<sup>[4]</sup>
  *             </td>
  *             <!-- isRepairingNamespaces == false -->
  *             <td>
  *                 <!-- namespaceURI bound -->
- *                 bound to same prefix:<br />
- *                 &lt;prefix:localName&gt;&nbsp;<sup>[1]</sup><br />
- *                 <br />
- *                 bound to different prefix:<br />
- *                 <code>XMLStreamException</code>
+ *                 bound to same prefix:<br>
+ *                 {@code <prefix:localName>}&nbsp;<sup>[1]</sup><br>
+ *                 <br>
+ *                 bound to different prefix:<br>
+ *                 {@code XMLStreamException}
  *             </td>
  *             <td>
  *                 <!-- namespaceURI unbound -->
- *                 &lt;prefix:localName&gt;&nbsp;
+ *                 {@code <prefix:localName>}&nbsp;
  *             </td>
  *         </tr>
  *     </tbody>
@@ -175,10 +175,14 @@
  *                 Notes:
  *                 <ul>
  *                     <li>[1] if namespaceURI == default Namespace URI, then no prefix is written</li>
- *                     <li>[2] if prefix == "" || null && namespaceURI == "", then no prefix or Namespace declaration is generated or written</li>
+ *                     <li>[2] if prefix == "" || null {@literal &&} namespaceURI == "", then
+ *                        no prefix or Namespace declaration is generated or written</li>
  *                     <li>[3] if prefix == "" || null, then a prefix is randomly generated</li>
- *                     <li>[4] if prefix == "" || null, then it is treated as the default Namespace and no prefix is generated or written, an xmlns declaration is generated and written if the namespaceURI is unbound</li>
- *                     <li>[5] if prefix == "" || null, then it is treated as an invalid attempt to define the default Namespace and an XMLStreamException is thrown</li>
+ *                     <li>[4] if prefix == "" || null, then it is treated as the default Namespace and
+ *                        no prefix is generated or written, an xmlns declaration is generated
+ *                        and written if the namespaceURI is unbound</li>
+ *                     <li>[5] if prefix == "" || null, then it is treated as an invalid attempt to
+ *                        define the default Namespace and an XMLStreamException is thrown</li>
  *                 </ul>
  *             </td>
  *         </tr>
--- a/src/java.xml/share/classes/javax/xml/transform/Result.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/transform/Result.java	Thu Apr 23 16:12:16 2015 -0700
@@ -27,7 +27,7 @@
 
 /**
  * <p>An object that implements this interface contains the information
- * needed to build a transformation result tree.</p>
+ * needed to build a transformation result tree.
  *
  * @author <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @since 1.4
@@ -38,7 +38,7 @@
      * The name of the processing instruction that is sent if the
      * result tree disables output escaping.
      *
-     * <p>Normally, result tree serialization escapes & and < (and
+     * <p>Normally, result tree serialization escapes{@literal & and <} (and
      * possibly other characters) when outputting text nodes.
      * This ensures that the output is well-formed XML. However,
      * it is sometimes convenient to be able to produce output that is
@@ -46,10 +46,10 @@
      * the output may include ill-formed sections that will
      * be transformed into well-formed XML by a subsequent non-XML aware
      * process. If a processing instruction is sent with this name,
-     * serialization should be output without any escaping. </p>
+     * serialization should be output without any escaping.
      *
      * <p>Result DOM trees may also have PI_DISABLE_OUTPUT_ESCAPING and
-     * PI_ENABLE_OUTPUT_ESCAPING inserted into the tree.</p>
+     * PI_ENABLE_OUTPUT_ESCAPING inserted into the tree.
      *
      * @see <a href="http://www.w3.org/TR/xslt#disable-output-escaping">disable-output-escaping in XSLT Specification</a>
      */
@@ -71,7 +71,7 @@
      *
      * <p>If the Result is not to be written to a file, the system identifier is optional.
      * The application may still want to provide one, however, for use in error messages
-     * and warnings, or to resolve relative output identifiers.</p>
+     * and warnings, or to resolve relative output identifiers.
      *
      * @param systemId The system identifier as a URI string.
      */
--- a/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -28,13 +28,13 @@
 /**
  * <p>A TransformerFactory instance can be used to create
  * {@link javax.xml.transform.Transformer} and
- * {@link javax.xml.transform.Templates} objects.</p>
+ * {@link javax.xml.transform.Templates} objects.
  *
  * <p>The system property that determines which Factory implementation
- * to create is named <code>"javax.xml.transform.TransformerFactory"</code>.
+ * to create is named {@code "javax.xml.transform.TransformerFactory"}.
  * This property names a concrete subclass of the
  * {@code TransformerFactory} abstract class. If the property is not
- * defined, a platform default is be used.</p>
+ * defined, a platform default is be used.
  *
  * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @author <a href="mailto:Neeraj.Bajaj@sun.com">Neeraj Bajaj</a>
@@ -51,14 +51,11 @@
 
 
     /**
-     * <p>
      * Obtain a new instance of a {@code TransformerFactory}.
      * This static method creates a new factory instance.
      * <p>
      * This method uses the following ordered lookup procedure to determine
-     * the {@code TransformerFactory} implementation class to
-     * load:
-     * <p>
+     * the {@code TransformerFactory} implementation class to load:
      * <ul>
      * <li>
      * Use the {@code javax.xml.transform.TransformerFactory} system
@@ -118,34 +115,34 @@
     }
 
     /**
-     * <p>Obtain a new instance of a {@code TransformerFactory} from factory class name.
+     * Obtain a new instance of a {@code TransformerFactory} from factory class name.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <p>Once an application has obtained a reference to a
      * {@code TransformerFactory} it can use the factory to configure
-     * and obtain transformer instances.</p>
+     * and obtain transformer instances.
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.transform.TransformerFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
      * @return new TransformerFactory instance, never null.
      *
      * @throws TransformerFactoryConfigurationError
-     *                    if <code>factoryClassName</code> is <code>null</code>, or
+     *                    if {@code factoryClassName} is {@code null}, or
      *                   the factory class cannot be loaded, instantiated.
      *
      * @see #newInstance()
@@ -160,29 +157,29 @@
                     factoryClassName, classLoader, false, false);
     }
     /**
-     * <p>Process the <code>Source</code> into a <code>Transformer</code>
-     * <code>Object</code>.  The <code>Source</code> is an XSLT document that
+     * Process the {@code Source} into a {@code Transformer}
+     * {@code Object}.  The {@code Source} is an XSLT document that
      * conforms to <a href="http://www.w3.org/TR/xslt">
      * XSL Transformations (XSLT) Version 1.0</a>.  Care must
-     * be taken not to use this <code>Transformer</code> in multiple
-     * <code>Thread</code>s running concurrently.
-     * Different <code>TransformerFactories</code> can be used concurrently by
-     * different <code>Thread</code>s.</p>
+     * be taken not to use this {@code Transformer} in multiple
+     * {@code Thread}s running concurrently.
+     * Different {@code TransformerFactories} can be used concurrently by
+     * different {@code Thread}s.
      *
-     * @param source <code>Source </code> of XSLT document used to create
-     *   <code>Transformer</code>.
-     *   Examples of XML <code>Source</code>s include
+     * @param source {@code Source } of XSLT document used to create
+     *   {@code Transformer}.
+     *   Examples of XML {@code Source}s include
      *   {@link javax.xml.transform.dom.DOMSource DOMSource},
      *   {@link javax.xml.transform.sax.SAXSource SAXSource}, and
      *   {@link javax.xml.transform.stream.StreamSource StreamSource}.
      *
-     * @return A <code>Transformer</code> object that may be used to perform
-     *   a transformation in a single <code>Thread</code>, never
-     *   <code>null</code>.
+     * @return A {@code Transformer} object that may be used to perform
+     *   a transformation in a single {@code Thread}, never
+     *   {@code null}.
      *
      * @throws TransformerConfigurationException Thrown if there are errors when
-     *    parsing the <code>Source</code> or it is not possible to create a
-     *   <code>Transformer</code> instance.
+     *    parsing the {@code Source} or it is not possible to create a
+     *   {@code Transformer} instance.
      *
      * @see <a href="http://www.w3.org/TR/xslt">
      *   XSL Transformations (XSLT) Version 1.0</a>
@@ -191,15 +188,15 @@
         throws TransformerConfigurationException;
 
     /**
-     * <p>Create a new <code>Transformer</code> that performs a copy
-     * of the <code>Source</code> to the <code>Result</code>.
-     * i.e. the "<em>identity transform</em>".</p>
+     * Create a new {@code Transformer} that performs a copy
+     * of the {@code Source} to the {@code Result}.
+     * i.e. the "<em>identity transform</em>".
      *
      * @return A Transformer object that may be used to perform a transformation
      * in a single thread, never null.
      *
      * @throws TransformerConfigurationException When it is not
-     *   possible to create a <code>Transformer</code> instance.
+     *   possible to create a {@code Transformer} instance.
      */
     public abstract Transformer newTransformer()
         throws TransformerConfigurationException;
@@ -215,7 +212,7 @@
      * @param source An object that holds a URL, input stream, etc.
      *
      * @return A Templates object capable of being used for transformation
-     *   purposes, never <code>null</code>.
+     *   purposes, never {@code null}.
      *
      * @throws TransformerConfigurationException When parsing to
      *   construct the Templates object fails.
@@ -224,13 +221,13 @@
         throws TransformerConfigurationException;
 
     /**
-     * <p>Get the stylesheet specification(s) associated with the
-     * XML <code>Source</code> document via the
+     * Get the stylesheet specification(s) associated with the
+     * XML {@code Source} document via the
      * <a href="http://www.w3.org/TR/xml-stylesheet/">
      * xml-stylesheet processing instruction</a> that match the given criteria.
      * Note that it is possible to return several stylesheets, in which case
      * they are applied as if they were a list of imports or cascades in a
-     * single stylesheet.</p>
+     * single stylesheet.
      *
      * @param source The XML source document.
      * @param media The media attribute to be matched.  May be null, in which
@@ -238,12 +235,12 @@
      * @param title The value of the title attribute to match.  May be null.
      * @param charset The value of the charset attribute to match.  May be null.
      *
-     * @return A <code>Source</code> <code>Object</code> suitable for passing
+     * @return A {@code Source} {@code Object} suitable for passing
      *   to the {@code TransformerFactory}.
      *
-     * @throws TransformerConfigurationException An <code>Exception</code>
+     * @throws TransformerConfigurationException An {@code Exception}
      *   is thrown if an error occurings during parsing of the
-     *   <code>source</code>.
+     *   {@code source}.
      *
      * @see <a href="http://www.w3.org/TR/xml-stylesheet/">
      *   Associating Style Sheets with XML documents Version 1.0</a>
@@ -275,22 +272,21 @@
     //======= CONFIGURATION METHODS =======
 
         /**
-         * <p>Set a feature for this {@code TransformerFactory} and <code>Transformer</code>s
-         * or <code>Template</code>s created by this factory.</p>
+         * <p>Set a feature for this {@code TransformerFactory} and {@code Transformer}s
+         * or {@code Template}s created by this factory.
          *
          * <p>
          * Feature names are fully qualified {@link java.net.URI}s.
          * Implementations may define their own features.
          * An {@link TransformerConfigurationException} is thrown if this {@code TransformerFactory} or the
-         * <code>Transformer</code>s or <code>Template</code>s it creates cannot support the feature.
+         * {@code Transformer}s or {@code Template}s it creates cannot support the feature.
          * It is possible for an {@code TransformerFactory} to expose a feature value but be unable to change its state.
-         * </p>
          *
          * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-         * When the feature is:</p>
+         * When the feature is:
          * <ul>
          *   <li>
-         *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits
+         *     {@code true}: the implementation will limit XML processing to conform to implementation limits
          *     and behave in a secure fashion as defined by the implementation.
          *     Examples include resolving user defined style sheets and functions.
          *     If XML processing is limited for security reasons, it will be reported via a call to the registered
@@ -298,17 +294,17 @@
          *     See {@link  #setErrorListener(ErrorListener listener)}.
          *   </li>
          *   <li>
-         *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+         *     {@code false}: the implementation will processing XML according to the XML specifications without
          *     regard to possible implementation limits.
          *   </li>
          * </ul>
          *
          * @param name Feature name.
-         * @param value Is feature state <code>true</code> or <code>false</code>.
+         * @param value Is feature state {@code true} or {@code false}.
          *
          * @throws TransformerConfigurationException if this {@code TransformerFactory}
-         *   or the <code>Transformer</code>s or <code>Template</code>s it creates cannot support this feature.
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+         *   or the {@code Transformer}s or {@code Template}s it creates cannot support this feature.
+     * @throws NullPointerException If the {@code name} parameter is null.
          */
         public abstract void setFeature(String name, boolean value)
                 throws TransformerConfigurationException;
@@ -319,16 +315,15 @@
          * <p>
          * Feature names are fully qualified {@link java.net.URI}s.
          * Implementations may define their own features.
-         * <code>false</code> is returned if this {@code TransformerFactory} or the
-         * <code>Transformer</code>s or <code>Template</code>s it creates cannot support the feature.
+         * {@code false} is returned if this {@code TransformerFactory} or the
+         * {@code Transformer}s or {@code Template}s it creates cannot support the feature.
          * It is possible for an {@code TransformerFactory} to expose a feature value but be unable to change its state.
-         * </p>
          *
          * @param name Feature name.
          *
-     * @return The current state of the feature, <code>true</code> or <code>false</code>.
+     * @return The current state of the feature, {@code true} or {@code false}.
      *
-     * @throws NullPointerException If the <code>name</code> parameter is null.
+     * @throws NullPointerException If the {@code name} parameter is null.
      */
     public abstract boolean getFeature(String name);
 
@@ -336,13 +331,13 @@
      * Allows the user to set specific attributes on the underlying
      * implementation.  An attribute in this context is defined to
      * be an option that the implementation provides.
-     * An <code>IllegalArgumentException</code> is thrown if the underlying
+     * An {@code IllegalArgumentException} is thrown if the underlying
      * implementation doesn't recognize the attribute.
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD}  and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_STYLESHEET} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>
@@ -351,7 +346,7 @@
      *      If access is denied during transformation due to the restriction of this property,
      *      {@link javax.xml.transform.TransformerException} will be thrown by
      *      {@link javax.xml.transform.Transformer#transform(Source, Result)}.
-     *      </p>
+     *
      *      <p>
      *      Access to external DTDs in the stylesheet is restricted to the protocols
      *      specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
@@ -359,7 +354,7 @@
      *      restriction of this property,
      *      {@link javax.xml.transform.TransformerConfigurationException} will be thrown
      *      by the {@link #newTransformer(Source)} method.
-     *      </p>
+     *
      *      <p>
      *      Access to external reference set by the stylesheet processing instruction,
      *      Import and Include element is restricted to the protocols specified by the
@@ -368,14 +363,14 @@
      *      restriction of this property,
      *      {@link javax.xml.transform.TransformerConfigurationException} will be thrown
      *      by the {@link #newTransformer(Source)} method.
-     *      </p>
+     *
      *      <p>
      *      Access to external document through XSLT document function is restricted
      *      to the protocols specified by the property. If access is denied during
      *      the transformation due to the restriction of this property,
      *      {@link javax.xml.transform.TransformerException} will be thrown by the
      *      {@link javax.xml.transform.Transformer#transform(Source, Result)} method.
-     *      </p>
+     *
      *   </li>
      * </ul>
      *
@@ -390,7 +385,7 @@
     /**
      * Allows the user to retrieve specific attributes on the underlying
      * implementation.
-     * An <code>IllegalArgumentException</code> is thrown if the underlying
+     * An {@code IllegalArgumentException} is thrown if the underlying
      * implementation doesn't recognize the attribute.
      *
      * @param name The name of the attribute.
@@ -406,13 +401,13 @@
      * Set the error event listener for the TransformerFactory, which
      * is used for the processing of transformation instructions,
      * and not for the transformation itself.
-     * An <code>IllegalArgumentException</code> is thrown if the
-     * <code>ErrorListener</code> listener is <code>null</code>.
+     * An {@code IllegalArgumentException} is thrown if the
+     * {@code ErrorListener} listener is {@code null}.
      *
      * @param listener The new error listener.
      *
-     * @throws IllegalArgumentException When <code>listener</code> is
-     *   <code>null</code>
+     * @throws IllegalArgumentException When {@code listener} is
+     *   {@code null}
      */
     public abstract void setErrorListener(ErrorListener listener);
 
--- a/src/java.xml/share/classes/javax/xml/transform/dom/DOMResult.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/transform/dom/DOMResult.java	Thu Apr 23 16:12:16 2015 -0700
@@ -29,29 +29,32 @@
 import org.w3c.dom.Node;
 
 /**
- * <p>Acts as a holder for a transformation result tree in the form of a Document Object Model (DOM) tree.</p>
+ * Acts as a holder for a transformation result tree
+ * in the form of a Document Object Model (DOM) tree.
  *
- * <p>If no output DOM source is set, the transformation will create a Document node as the holder for the result of the transformation,
- * which may be retrieved with {@link #getNode()}.</p>
+ * <p>If no output DOM source is set, the transformation will create
+ * a Document node as the holder for the result of the transformation,
+ * which may be retrieved with {@link #getNode()}.
  *
  * @author <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
  * @since 1.4
  */
 public class DOMResult implements Result {
 
-    /** <p>If {@link javax.xml.transform.TransformerFactory#getFeature}
-     * returns <code>true</code> when passed this value as an argument,
-     * the <code>Transformer</code> supports <code>Result</code> output of this type.</p>
+    /**
+     * If {@link javax.xml.transform.TransformerFactory#getFeature}
+     * returns {@code true} when passed this value as an argument,
+     * the {@code Transformer} supports {@code Result} output of this type.
      */
     public static final String FEATURE = "http://javax.xml.transform.dom.DOMResult/feature";
 
     /**
-     * <p>Zero-argument default constructor.</p>
+     * Zero-argument default constructor.
      *
-     * <p><code>node</code>,
-     * <code>siblingNode</code> and
-     * <code>systemId</code>
-     * will be set to <code>null</code>.</p>
+     * <p>{@code node},
+     * {@code siblingNode} and
+     * {@code systemId}
+     * will be set to {@code null}.
      */
     public DOMResult() {
         setNode(null);
@@ -60,17 +63,17 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target.</p>
+     * Use a DOM node to create a new output target.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p><code>siblingNode</code> and
-     * <code>systemId</code>
-     * will be set to <code>null</code>.</p>
+     * <p>{@code siblingNode} and
+     * {@code systemId}
+     * will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      */
@@ -81,15 +84,15 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target with the specified System ID.<p>
+     * Use a DOM node to create a new output target with the specified System ID.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p><code>siblingNode</code> will be set to <code>null</code>.</p>
+     * <p>{@code siblingNode} will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      * @param systemId The system identifier which may be used in association with this node.
@@ -101,32 +104,33 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before.</p>
+     * Use a DOM node to create a new output target specifying
+     * the child node where the result nodes should be inserted before.
      *
-     * <p>In practice, <code>node</code> and <code>nextSibling</code> should be
+     * <p>In practice, {@code node} and {@code nextSibling} should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * where the result nodes should be inserted before.
-     * If <code>nextSibling</code> is not a sibling of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a sibling of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node)},
-     * i.e. append the result nodes as the last child of the specified <code>node</code>.</p>
+     * i.e. append the result nodes as the last child of the specified {@code node}.
      *
-     * <p><code>systemId</code> will be set to <code>null</code>.</p>
+     * <p>{@code systemId} will be set to {@code null}.
      *
      * @param node The DOM node that will contain the result tree.
      * @param nextSibling The child node where the result nodes should be inserted before.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a sibling of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and <code>nextSibling</code>
-     *   is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a sibling of {@code node} or
+     *   {@code node} is {@code null} and {@code nextSibling}
+     *   is not {@code null}.
      *
      * @since 1.5
      */
@@ -151,33 +155,35 @@
     }
 
     /**
-     * <p>Use a DOM node to create a new output target specifying the child node where the result nodes should be inserted before and
-     * the specified System ID.</p>
+     * Use a DOM node to create a new output target specifying the child
+     * node where the result nodes should be inserted before and
+     * the specified System ID.
      *
-     * <p>In practice, <code>node</code> and <code>nextSibling</code> should be
+     * <p>In practice, {@code node} and {@code nextSibling} should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or a
      * {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * where the result nodes should be inserted before.
-     * If <code>nextSibling</code> is not a sibling of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a sibling of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node, String systemId)},
-     * i.e. append the result nodes as the last child of the specified node and use the specified System ID.</p>
+     * i.e. append the result nodes as the last child of the specified
+     * node and use the specified System ID.
      *
      * @param node The DOM node that will contain the result tree.
      * @param nextSibling The child node where the result nodes should be inserted before.
      * @param systemId The system identifier which may be used in association with this node.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a
-     *   sibling of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and <code>nextSibling</code>
-     *   is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a
+     *   sibling of {@code node} or
+     *   {@code node} is {@code null} and {@code nextSibling}
+     *   is not {@code null}.
      *
      * @since 1.5
      */
@@ -202,27 +208,27 @@
     }
 
     /**
-     * <p>Set the node that will contain the result DOM tree.<p>
+     * Set the node that will contain the result DOM tree.
      *
      * <p>In practice, the node should be
      * a {@link org.w3c.dom.Document} node,
      * a {@link org.w3c.dom.DocumentFragment} node, or
      * a {@link org.w3c.dom.Element} node.
-     * In other words, a node that accepts children.</p>
+     * In other words, a node that accepts children.
      *
-     * <p>An <code>IllegalStateException</code> is thrown if
-     * <code>nextSibling</code> is not <code>null</code> and
-     * <code>node</code> is not a parent of <code>nextSibling</code>.
-     * An <code>IllegalStateException</code> is thrown if <code>node</code> is <code>null</code> and
-     * <code>nextSibling</code> is not <code>null</code>.</p>
+     * <p>An {@code IllegalStateException} is thrown if
+     * {@code nextSibling} is not {@code null} and
+     * {@code node} is not a parent of {@code nextSibling}.
+     * An {@code IllegalStateException} is thrown if {@code node} is {@code null} and
+     * {@code nextSibling} is not {@code null}.
      *
      * @param node The node to which the transformation will be appended.
      *
-     * @throws IllegalStateException If <code>nextSibling</code> is not
-     *   <code>null</code> and
-     *   <code>nextSibling</code> is not a child of <code>node</code> or
-     *   <code>node</code> is <code>null</code> and
-     *   <code>nextSibling</code> is not <code>null</code>.
+     * @throws IllegalStateException If {@code nextSibling} is not
+     *   {@code null} and
+     *   {@code nextSibling} is not a child of {@code node} or
+     *   {@code node} is {@code null} and
+     *   {@code nextSibling} is not {@code null}.
      */
     public void setNode(Node node) {
         // does the corrent parent/child relationship exist?
@@ -242,7 +248,7 @@
     }
 
     /**
-     * <p>Get the node that will contain the result DOM tree.</p>
+     * Get the node that will contain the result DOM tree.
      *
      * <p>If no node was set via
      * {@link #DOMResult(Node node)},
@@ -251,7 +257,7 @@
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setNode(Node node)},
      * then the node will be set by the transformation, and may be obtained from this method once the transformation is complete.
-     * Calling this method before the transformation will return <code>null</code>.</p>
+     * Calling this method before the transformation will return {@code null}.
      *
      * @return The node to which the transformation will be appended.
      */
@@ -260,24 +266,24 @@
     }
 
     /**
-     * <p>Set the child node before which the result nodes will be inserted.</p>
+     * Set the child node before which the result nodes will be inserted.
      *
-     * <p>Use <code>nextSibling</code> to specify the child node
+     * <p>Use {@code nextSibling} to specify the child node
      * before which the result nodes should be inserted.
-     * If <code>nextSibling</code> is not a descendant of <code>node</code>,
-     * then an <code>IllegalArgumentException</code> is thrown.
-     * If <code>node</code> is <code>null</code> and <code>nextSibling</code> is not <code>null</code>,
-     * then an <code>IllegalStateException</code> is thrown.
-     * If <code>nextSibling</code> is <code>null</code>,
+     * If {@code nextSibling} is not a descendant of {@code node},
+     * then an {@code IllegalArgumentException} is thrown.
+     * If {@code node} is {@code null} and {@code nextSibling} is not {@code null},
+     * then an {@code IllegalStateException} is thrown.
+     * If {@code nextSibling} is {@code null},
      * then the behavior is the same as calling {@link #DOMResult(Node node)},
-     * i.e. append the result nodes as the last child of the specified <code>node</code>.</p>
+     * i.e. append the result nodes as the last child of the specified {@code node}.
      *
      * @param nextSibling The child node before which the result nodes will be inserted.
      *
-     * @throws IllegalArgumentException If <code>nextSibling</code> is not a
-     *   descendant of <code>node</code>.
-     * @throws IllegalStateException If <code>node</code> is <code>null</code>
-     *   and <code>nextSibling</code> is not <code>null</code>.
+     * @throws IllegalArgumentException If {@code nextSibling} is not a
+     *   descendant of {@code node}.
+     * @throws IllegalStateException If {@code node} is {@code null}
+     *   and {@code nextSibling} is not {@code null}.
      *
      * @since 1.5
      */
@@ -300,13 +306,13 @@
     }
 
     /**
-     * <p>Get the child node before which the result nodes will be inserted.</p>
+     * Get the child node before which the result nodes will be inserted.
      *
      * <p>If no node was set via
      * {@link #DOMResult(Node node, Node nextSibling)},
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setNextSibling(Node nextSibling)},
-     * then <code>null</code> will be returned.</p>
+     * then {@code null} will be returned.
      *
      * @return The child node before which the result nodes will be inserted.
      *
@@ -317,7 +323,7 @@
     }
 
     /**
-     * <p>Set the systemId that may be used in association with the node.</p>
+     * Set the systemId that may be used in association with the node.
      *
      * @param systemId The system identifier as a URI string.
      */
@@ -326,13 +332,13 @@
     }
 
     /**
-     * <p>Get the System Identifier.</p>
+     * Get the System Identifier.
      *
      * <p>If no System ID was set via
      * {@link #DOMResult(Node node, String systemId)},
      * {@link #DOMResult(Node node, Node nextSibling, String systemId)} or
      * {@link #setSystemId(String systemId)},
-     * then <code>null</code> will be returned.</p>
+     * then {@code null} will be returned.
      *
      * @return The system identifier.
      */
@@ -345,19 +351,19 @@
     //////////////////////////////////////////////////////////////////////
 
     /**
-     * <p>The node to which the transformation will be appended.</p>
+     * The node to which the transformation will be appended.
      */
     private Node node = null;
 
     /**
-     * <p>The child node before which the result nodes will be inserted.</p>
+     * The child node before which the result nodes will be inserted.
      *
      * @since 1.5
      */
     private Node nextSibling = null;
 
     /**
-     * <p>The System ID that may be used in association with the node.</p>
+     * The System ID that may be used in association with the node.
      */
     private String systemId = null;
 }
--- a/src/java.xml/share/classes/javax/xml/transform/stax/package.html	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/transform/stax/package.html	Thu Apr 23 16:12:16 2015 -0700
@@ -65,9 +65,6 @@
 			<li>@see XMLEventReader</li>
 		</ul>
 		
-		<p>
-			@since 1.6
-		</p>
-
+		@since 1.6
 	</body>
 </html>
--- a/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -37,7 +37,7 @@
 import org.xml.sax.SAXParseException;
 
 /**
- * Factory that creates {@link Schema} objects&#x2E; Entry-point to
+ * Factory that creates {@link Schema} objects. Entry-point to
  * the validation API.
  *
  * <p>
@@ -49,12 +49,12 @@
  * it is the application's responsibility to ensure that at most
  * one thread is using a {@link SchemaFactory} object at any
  * given moment. Implementations are encouraged to mark methods
- * as <code>synchronized</code> to protect themselves from broken clients.
+ * as {@code synchronized} to protect themselves from broken clients.
  *
  * <p>
  * {@link SchemaFactory} is not re-entrant. While one of the
- * <code>newSchema</code> methods is being invoked, applications
- * may not attempt to recursively invoke the <code>newSchema</code> method,
+ * {@code newSchema} methods is being invoked, applications
+ * may not attempt to recursively invoke the {@code newSchema} method,
  * even from the same thread.
  *
  * <h2><a name="schemaLanguage"></a>Schema Language</h2>
@@ -92,11 +92,11 @@
  *   </thead>
  *   <tbody>
  *     <tr>
- *       <td>{@link javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI} ("<code>http://www.w3.org/2001/XMLSchema</code>")</td>
+ *       <td>{@link javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI} ("{@code http://www.w3.org/2001/XMLSchema}")</td>
  *       <td><a href="http://www.w3.org/TR/xmlschema-1">W3C XML Schema 1.0</a></td>
  *     </tr>
  *     <tr>
- *       <td>{@link javax.xml.XMLConstants#RELAXNG_NS_URI} ("<code>http://relaxng.org/ns/structure/1.0</code>")</td>
+ *       <td>{@link javax.xml.XMLConstants#RELAXNG_NS_URI} ("{@code http://relaxng.org/ns/structure/1.0}")</td>
  *       <td><a href="http://www.relaxng.org/">RELAX NG 1.0</a></td>
  *     </tr>
  *   </tbody>
@@ -112,24 +112,24 @@
      private static SecuritySupport ss = new SecuritySupport();
 
     /**
-     * <p>Constructor for derived classes.</p>
+     * Constructor for derived classes.
      *
-     * <p>The constructor does nothing.</p>
+     * <p>The constructor does nothing.
      *
      * <p>Derived classes must create {@link SchemaFactory} objects that have
-     * <code>null</code> {@link ErrorHandler} and
-     * <code>null</code> {@link LSResourceResolver}.</p>
+     * {@code null} {@link ErrorHandler} and
+     * {@code null} {@link LSResourceResolver}.
      */
     protected SchemaFactory() {
     }
 
     /**
-     * <p>Lookup an implementation of the <code>SchemaFactory</code> that supports the specified
-     * schema language and return it.</p>
+     * Lookup an implementation of the {@code SchemaFactory} that supports the specified
+     * schema language and return it.
      *
-     * <p>To find a <code>SchemaFactory</code> object for a given schema language,
+     * <p>To find a {@code SchemaFactory} object for a given schema language,
      * this method looks the following places in the following order
-     * where "the class loader" refers to the context class loader:</p>
+     * where "the class loader" refers to the context class loader:
      * <ol>
      *  <li>
      *     <p>
@@ -178,9 +178,9 @@
      *   </li>
      *   <li>
      *     <p>
-     *     Platform default <code>SchemaFactory</code> is located
+     *     Platform default {@code SchemaFactory} is located
      *     in a implementation specific way. There must be a platform default
-     *     <code>SchemaFactory</code> for W3C XML Schema.
+     *     {@code SchemaFactory} for W3C XML Schema.
      *   </li>
      * </ol>
      *
@@ -201,12 +201,12 @@
      *      <a href="#schemaLanguage">the list of available
      *      schema languages</a> for the possible values.
      *
-     * @return New instance of a <code>SchemaFactory</code>
+     * @return New instance of a {@code SchemaFactory}
      *
      * @throws IllegalArgumentException
      *      If no implementation of the schema language is available.
      * @throws NullPointerException
-     *      If the <code>schemaLanguage</code> parameter is null.
+     *      If the {@code schemaLanguage} parameter is null.
      * @throws SchemaFactoryConfigurationError
      *      If a configuration error is encountered.
      *
@@ -233,42 +233,42 @@
     }
 
     /**
-     * <p>Obtain a new instance of a <code>SchemaFactory</code> from class name. <code>SchemaFactory</code>
+     * Obtain a new instance of a {@code SchemaFactory} from class name. {@code SchemaFactory}
      * is returned if specified factory class name supports the specified schema language.
      * This function is useful when there are multiple providers in the classpath.
      * It gives more control to the application as it can specify which provider
-     * should be loaded.</p>
+     * should be loaded.
      *
      * <h2>Tip for Trouble-shooting</h2>
-     * <p>Setting the <code>jaxp.debug</code> system property will cause
+     * <p>Setting the {@code jaxp.debug} system property will cause
      * this method to print a lot of debug messages
-     * to <code>System.err</code> about what it is doing and where it is looking at.</p>
+     * to {@code System.err} about what it is doing and where it is looking at.
      *
-     * <p> If you have problems try:</p>
+     * <p> If you have problems try:
      * <pre>
      * java -Djaxp.debug=1 YourProgram ....
      * </pre>
      *
      * @param schemaLanguage Specifies the schema language which the returned
-     *                          <code>SchemaFactory</code> will understand. See
+     *                          {@code SchemaFactory} will understand. See
      *                          <a href="#schemaLanguage">the list of available
      *                          schema languages</a> for the possible values.
      *
-     * @param factoryClassName fully qualified factory class name that provides implementation of <code>javax.xml.validation.SchemaFactory</code>.
+     * @param factoryClassName fully qualified factory class name that provides implementation of {@code javax.xml.validation.SchemaFactory}.
      *
-     * @param classLoader <code>ClassLoader</code> used to load the factory class. If <code>null</code>
-     *                     current <code>Thread</code>'s context classLoader is used to load the factory class.
+     * @param classLoader {@code ClassLoader} used to load the factory class. If {@code null}
+     *                     current {@code Thread}'s context classLoader is used to load the factory class.
      *
-     * @return New instance of a <code>SchemaFactory</code>
+     * @return New instance of a {@code SchemaFactory}
      *
      * @throws IllegalArgumentException
-     *                   if <code>factoryClassName</code> is <code>null</code>, or
+     *                   if {@code factoryClassName} is {@code null}, or
      *                   the factory class cannot be loaded, instantiated or doesn't
-     *                   support the schema language specified in <code>schemLanguage</code>
+     *                   support the schema language specified in {@code schemLanguage}
      *                   parameter.
      *
      * @throws NullPointerException
-     *      If the <code>schemaLanguage</code> parameter is null.
+     *      If the {@code schemaLanguage} parameter is null.
      *
      * @see #newInstance(String schemaLanguage)
      *
@@ -299,16 +299,16 @@
     }
 
     /**
-     * <p>Is specified schema supported by this <code>SchemaFactory</code>?</p>
+     * Is specified schema supported by this {@code SchemaFactory}?
      *
-     * @param schemaLanguage Specifies the schema language which the returned <code>SchemaFactory</code> will understand.
-     *    <code>schemaLanguage</code> must specify a <a href="#schemaLanguage">valid</a> schema language.
+     * @param schemaLanguage Specifies the schema language which the returned {@code SchemaFactory} will understand.
+     *    {@code schemaLanguage} must specify a <a href="#schemaLanguage">valid</a> schema language.
      *
-     * @return <code>true</code> if <code>SchemaFactory</code> supports <code>schemaLanguage</code>, else <code>false</code>.
+     * @return {@code true} if {@code SchemaFactory} supports {@code schemaLanguage}, else {@code false}.
      *
-     * @throws NullPointerException If <code>schemaLanguage</code> is <code>null</code>.
-     * @throws IllegalArgumentException If <code>schemaLanguage.length() == 0</code>
-     *   or <code>schemaLanguage</code> does not specify a <a href="#schemaLanguage">valid</a> schema language.
+     * @throws NullPointerException If {@code schemaLanguage} is {@code null}.
+     * @throws IllegalArgumentException If {@code schemaLanguage.length() == 0}
+     *   or {@code schemaLanguage} does not specify a <a href="#schemaLanguage">valid</a> schema language.
      */
     public abstract boolean isSchemaLanguageSupported(String schemaLanguage);
 
@@ -320,7 +320,7 @@
      * temporarily be unable to return its value.
      *
      * <p>Implementors are free (and encouraged) to invent their own features,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      *
@@ -331,7 +331,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the feature name but
      *   cannot determine its value at this time.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #setFeature(String, boolean)
      */
@@ -345,38 +345,37 @@
     }
 
     /**
-     * <p>Set a feature for this <code>SchemaFactory</code>,
+     * Set a feature for this {@code SchemaFactory},
      * {@link Schema}s created by this factory, and by extension,
      * {@link Validator}s and {@link ValidatorHandler}s created by
      * those {@link Schema}s.
-     * </p>
      *
      * <p>Implementors and developers should pay particular attention
      * to how the special {@link Schema} object returned by {@link
      * #newSchema()} is processed. In some cases, for example, when the
-     * <code>SchemaFactory</code> and the class actually loading the
+     * {@code SchemaFactory} and the class actually loading the
      * schema come from different implementations, it may not be possible
-     * for <code>SchemaFactory</code> features to be inherited automatically.
+     * for {@code SchemaFactory} features to be inherited automatically.
      * Developers should
      * make sure that features, such as secure processing, are explicitly
-     * set in both places.</p>
+     * set in both places.
      *
      * <p>The feature name is any fully-qualified URI. It is
      * possible for a {@link SchemaFactory} to expose a feature value but
-     * to be unable to change the current value.</p>
+     * to be unable to change the current value.
      *
      * <p>All implementations are required to support the {@link javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING} feature.
-     * When the feature is:</p>
+     * When the feature is:
      * <ul>
      *   <li>
-     *     <code>true</code>: the implementation will limit XML processing to conform to implementation limits.
+     *     {@code true}: the implementation will limit XML processing to conform to implementation limits.
      *     Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources.
      *     If XML processing is limited for security reasons, it will be reported via a call to the registered
      *    {@link ErrorHandler#fatalError(SAXParseException exception)}.
      *     See {@link #setErrorHandler(ErrorHandler errorHandler)}.
      *   </li>
      *   <li>
-     *     <code>false</code>: the implementation will processing XML according to the XML specifications without
+     *     {@code false}: the implementation will processing XML according to the XML specifications without
      *     regard to possible implementation limits.
      *   </li>
      * </ul>
@@ -389,7 +388,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the feature name but
      *   cannot set the requested value.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #getFeature(String)
      */
@@ -405,15 +404,15 @@
     /**
      * Set the value of a property.
      *
-     * <p>The property name is any fully-qualified URI.  It is
+     * <p>The property name is any fully-qualified URI. It is
      * possible for a {@link SchemaFactory} to recognize a property name but
-     * to be unable to change the current value.</p>
+     * to be unable to change the current value.
      *
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>Access to external DTDs in Schema files is restricted to the protocols
@@ -421,14 +420,14 @@
      *      If access is denied during the creation of new Schema due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link #newSchema(Source)} or {@link #newSchema(File)}
-     *      or {@link #newSchema(URL)} or  or {@link #newSchema(Source[])} method.</p>
+     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.
      *
      *      <p>Access to external DTDs in xml source files is restricted to the protocols
      *      specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} property.
      *      If access is denied during validation due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link javax.xml.validation.Validator#validate(Source)} or
-     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.</p>
+     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.
      *
      *      <p>Access to external reference set by the schemaLocation attribute is
      *      restricted to the protocols specified by the
@@ -436,7 +435,7 @@
      *      If access is denied during validation due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link javax.xml.validation.Validator#validate(Source)} or
-     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.</p>
+     *      {@link javax.xml.validation.Validator#validate(Source, Result)} method.
      *
      *      <p>Access to external reference set by the Import
      *      and Include element is restricted to the protocols specified by the
@@ -444,7 +443,7 @@
      *      If access is denied during the creation of new Schema due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
      *      {@link #newSchema(Source)} or {@link #newSchema(File)}
-     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.</p>
+     *      or {@link #newSchema(URL)} or {@link #newSchema(Source[])} method.
      *   </li>
      * </ul>
      *
@@ -456,7 +455,7 @@
      * @throws SAXNotSupportedException When the
      *   {@link SchemaFactory} recognizes the property name but
      *   cannot set the requested value.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      */
     public void setProperty(String name, Object object)
         throws SAXNotRecognizedException, SAXNotSupportedException {
@@ -472,13 +471,13 @@
      *
      * <p>The property name is any fully-qualified URI.  It is
      * possible for a {@link SchemaFactory} to recognize a property name but
-     * temporarily be unable to return its value.</p>
+     * temporarily be unable to return its value.
      *
      * <p>{@link SchemaFactory}s are not required to recognize any specific
-     * property names.</p>
+     * property names.
      *
      * <p>Implementors are free (and encouraged) to invent their own properties,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The property name, which is a non-null fully-qualified URI.
      *
@@ -489,7 +488,7 @@
      * @throws SAXNotSupportedException When the
      *   XMLReader recognizes the property name but
      *   cannot determine its value at this time.
-     * @throws NullPointerException If <code>name</code> is <code>null</code>.
+     * @throws NullPointerException If {@code name} is {@code null}.
      *
      * @see #setProperty(String, Object)
      */
@@ -504,7 +503,7 @@
 
     /**
      * Sets the {@link ErrorHandler} to receive errors encountered
-     * during the <code>newSchema</code> method invocation.
+     * during the {@code newSchema} method invocation.
      *
      * <p>
      * Error handler can be used to customize the error handling process
@@ -521,7 +520,7 @@
      * <p>
      * If any {@link Throwable} (or instances of its derived classes)
      * is thrown from an {@link ErrorHandler},
-     * the caller of the <code>newSchema</code> method will be thrown
+     * the caller of the {@code newSchema} method will be thrown
      * the same {@link Throwable} object.
      *
      * <p>
@@ -557,7 +556,7 @@
      * {@link ValidatorHandler}s that are created from this {@link SchemaFactory}.
      *
      * @param errorHandler A new error handler to be set.
-     *   This parameter can be <code>null</code>.
+     *   This parameter can be {@code null}.
      */
     public abstract void setErrorHandler(ErrorHandler errorHandler);
 
@@ -583,7 +582,7 @@
      * when it needs to locate external resources while parsing schemas,
      * although exactly what constitutes "locating external resources" is
      * up to each schema language. For example, for W3C XML Schema,
-     * this includes files <code>&lt;include></code>d or <code>&lt;import></code>ed,
+     * this includes files {@code <include>}d or {@code <import>}ed,
      * and DTD referenced from schema files, etc.
      *
      * <p>
@@ -607,7 +606,7 @@
      * If a {@link LSResourceResolver} throws a {@link RuntimeException}
      *  (or instances of its derived classes),
      * then the {@link SchemaFactory} will abort the parsing and
-     * the caller of the <code>newSchema</code> method will receive
+     * the caller of the {@code newSchema} method will receive
      * the same {@link RuntimeException}.
      *
      * <p>
@@ -635,48 +634,48 @@
     public abstract LSResourceResolver getResourceResolver();
 
     /**
-     * <p>Parses the specified source as a schema and returns it as a schema.</p>
+     * Parses the specified source as a schema and returns it as a schema.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source[] schemas)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source[] schemas)}.
      *
      * @param schema Source that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(Source schema) throws SAXException {
         return newSchema(new Source[]{schema});
     }
 
     /**
-     * <p>Parses the specified <code>File</code> as a schema and returns it as a <code>Schema</code>.</p>
+     * Parses the specified {@code File} as a schema and returns it as a {@code Schema}.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source schema)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source schema)}.
      *
      * @param schema File that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(File schema) throws SAXException {
         return newSchema(new StreamSource(schema));
     }
 
     /**
-     * <p>Parses the specified <code>URL</code> as a schema and returns it as a <code>Schema</code>.</p>
+     * Parses the specified {@code URL} as a schema and returns it as a {@code Schema}.
      *
-     * <p>This is a convenience method for {@link #newSchema(Source schema)}.</p>
+     * <p>This is a convenience method for {@link #newSchema(Source schema)}.
      *
-     * @param schema <code>URL</code> that represents a schema.
+     * @param schema {@code URL} that represents a schema.
      *
-     * @return New <code>Schema</code> from parsing <code>schema</code>.
+     * @return New {@code Schema} from parsing {@code schema}.
      *
      * @throws SAXException If a SAX error occurs during parsing.
-     * @throws NullPointerException if <code>schema</code> is null.
+     * @throws NullPointerException if {@code schema} is null.
      */
     public Schema newSchema(URL schema) throws SAXException {
         return newSchema(new StreamSource(schema.toExternalForm()));
@@ -710,7 +709,7 @@
      * regard.  While a processor should be consistent in its treatment of
      * JAXP schema sources and XML Schema imports, the behaviour between
      * JAXP-compliant parsers may vary; in particular, parsers may choose
-     * to ignore all but the first &lt;import> for a given namespace,
+     * to ignore all but the first {@code <import>} for a given namespace,
      * regardless of information provided in schemaLocation.
      *
      * <p>
@@ -721,7 +720,7 @@
      * <h2>RELAX NG</h2>
      *
      * <p>For RELAX NG, this method must throw {@link UnsupportedOperationException}
-     * if <code>schemas.length!=1</code>.
+     * if {@code schemas.length!=1}.
      *
      *
      * @param schemas
@@ -748,7 +747,7 @@
      *      When an {@link ErrorHandler} is set, errors are reported to
      *      there first. See {@link #setErrorHandler(ErrorHandler)}.
      * @throws NullPointerException
-     *      If the <code>schemas</code> parameter itself is null or
+     *      If the {@code schemas} parameter itself is null or
      *      any item in the array is null.
      * @throws IllegalArgumentException
      *      If any item in the array is not recognized by this method.
@@ -765,7 +764,7 @@
      * is created.
      *
      * <p>Also, implementations are allowed to use implementation-specific
-     * property/feature to alter the semantics of this method.</p>
+     * property/feature to alter the semantics of this method.
      *
      * <p>Implementors and developers should pay particular attention
      * to how the features set on this {@link SchemaFactory} are
@@ -776,7 +775,7 @@
      * for {@link SchemaFactory} features to be inherited automatically.
      * Developers should
      * make sure that features, such as secure processing, are explicitly
-     * set in both places.</p>
+     * set in both places.
      *
      * <h2>W3C XML Schema 1.0</h2>
      * <p>
--- a/src/java.xml/share/classes/javax/xml/validation/Validator.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/validation/Validator.java	Thu Apr 23 16:12:16 2015 -0700
@@ -37,16 +37,15 @@
 import org.xml.sax.SAXNotSupportedException;
 
 /**
- * <p>A processor that checks an XML document against {@link Schema}.</p>
+ * A processor that checks an XML document against {@link Schema}.
  *
  * <p>
  * A validator object is not thread-safe and not reentrant.
  * In other words, it is the application's responsibility to make
  * sure that one {@link Validator} object is not used from
- * more than one thread at any given time, and while the <code>validate</code>
+ * more than one thread at any given time, and while the {@code validate}
  * method is invoked, applications may not recursively call
- * the <code>validate</code> method.
- * <p>
+ * the {@code validate} method.
  *
  *
  * @author  <a href="mailto:Kohsuke.Kawaguchi@Sun.com">Kohsuke Kawaguchi</a>
@@ -57,27 +56,28 @@
     /**
      * Constructor for derived classes.
      *
-     * <p>The constructor does nothing.</p>
+     * <p>The constructor does nothing.
      *
      * <p>Derived classes must create {@link Validator} objects that have
-     * <code>null</code> {@link ErrorHandler} and
-     * <code>null</code> {@link LSResourceResolver}.
-     * </p>
+     * {@code null} {@link ErrorHandler} and
+     * {@code null} {@link LSResourceResolver}.
      */
     protected Validator() {
     }
 
         /**
-         * <p>Reset this <code>Validator</code> to its original configuration.</p>
+         * Reset this {@code Validator} to its original configuration.
          *
-         * <p><code>Validator</code> is reset to the same state as when it was created with
+         * <p>{@code Validator} is reset to the same state as when it was created with
          * {@link Schema#newValidator()}.
-         * <code>reset()</code> is designed to allow the reuse of existing <code>Validator</code>s
-         * thus saving resources associated with the creation of new <code>Validator</code>s.</p>
+         * {@code reset()} is designed to allow the reuse of existing {@code Validator}s
+         * thus saving resources associated with the creation of new {@code Validator}s.
          *
-         * <p>The reset <code>Validator</code> is not guaranteed to have the same {@link LSResourceResolver} or {@link ErrorHandler}
-         * <code>Object</code>s, e.g. {@link Object#equals(Object obj)}.  It is guaranteed to have a functionally equal
-         * <code>LSResourceResolver</code> and <code>ErrorHandler</code>.</p>
+         * <p>The reset {@code Validator} is not guaranteed to have
+         * the same {@link LSResourceResolver} or {@link ErrorHandler}
+         * {@code Object}s, e.g. {@link Object#equals(Object obj)}.
+         * It is guaranteed to have a functionally equal
+         * {@code LSResourceResolver} and {@code ErrorHandler}.
          */
         public abstract void reset();
 
@@ -86,7 +86,7 @@
      *
      * <p>This is just a convenience method for
      * {@link #validate(Source source, Result result)}
-     * with <code>result</code> of <code>null</code>.</p>
+     * with {@code result} of {@code null}.
      *
      * @param source
      *      XML to be validated. Must be an XML document or
@@ -97,7 +97,7 @@
      *      or throw an IllegalArgumentException.
      *
      * @throws IllegalArgumentException
-     *      If the <code>Source</code>
+     *      If the {@code Source}
      *      is an XML artifact that the implementation cannot
      *      validate (for example, a processing instruction).
      *
@@ -113,8 +113,8 @@
      *      {@link IOException}.
      *
      *
-     * @throws NullPointerException If <code>source</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException If {@code source} is
+     *   {@code null}.
      *
      * @see #validate(Source source, Result result)
      */
@@ -125,16 +125,16 @@
     }
 
     /**
-     * <p>Validates the specified input and send the augmented validation
-     * result to the specified output.</p>
+     * Validates the specified input and send the augmented validation
+     * result to the specified output.
      *
      * <p>This method places the following restrictions on the types of
-     * the {@link Source}/{@link Result} accepted.</p>
+     * the {@link Source}/{@link Result} accepted.
      *
      * <table border=1>
      * <thead>
      *  <tr>
-     *   <th colspan="5"><code>Source</code> / <code>Result</code> Accepted</th>
+     *   <th colspan="5">{@code Source} / {@code Result} Accepted</th>
      *  </tr>
      *  <tr>
      *   <th></th>
@@ -146,7 +146,7 @@
      * </thead>
      * <tbody align="center">
      *  <tr>
-     *   <td><code>null</code></td>
+     *   <td>{@code null}</td>
      *   <td>OK</td>
      *   <td>OK</td>
      *   <td>OK</td>
@@ -155,44 +155,44 @@
      *  <tr>
      *   <th>{@link javax.xml.transform.stream.StreamResult}</th>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.sax.SAXResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.dom.DOMResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
      *  </tr>
      *  <tr>
      *   <th>{@link javax.xml.transform.stax.StAXResult}</th>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
-     *   <td><code>IllegalArgumentException</code></td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
+     *   <td>{@code IllegalArgumentException}</td>
      *   <td>OK</td>
      *  </tr>
      * </tbody>
      * </table>
      *
-     * <p>To validate one <code>Source</code> into another kind of
-     * <code>Result</code>, use the identity transformer (see
-     * {@link javax.xml.transform.TransformerFactory#newTransformer()}).</p>
+     * <p>To validate one {@code Source} into another kind of
+     * {@code Result}, use the identity transformer (see
+     * {@link javax.xml.transform.TransformerFactory#newTransformer()}).
      *
      * <p>Errors found during the validation is sent to the specified
-     * {@link ErrorHandler}.</p>
+     * {@link ErrorHandler}.
      *
      * <p>If a document is valid, or if a document contains some errors
-     * but none of them were fatal and the <code>ErrorHandler</code> didn't
-     * throw any exception, then the method returns normally.</p>
+     * but none of them were fatal and the {@code ErrorHandler} didn't
+     * throw any exception, then the method returns normally.
      *
      * @param source
      *      XML to be validated. Must be an XML document or
@@ -203,34 +203,34 @@
      *      or throw an IllegalArgumentException.
      *
      * @param result
-     *      The <code>Result</code> object that receives (possibly augmented)
+     *      The {@code Result} object that receives (possibly augmented)
      *      XML. This parameter can be null if the caller is not interested
      *      in it.
      *
-     *      Note that when a <code>DOMResult</code> is used,
+     *      Note that when a {@code DOMResult} is used,
      *      a validator might just pass the same DOM node from
-     *      <code>DOMSource</code> to <code>DOMResult</code>
-     *      (in which case <code>source.getNode()==result.getNode()</code>),
+     *      {@code DOMSource} to {@code DOMResult}
+     *      (in which case {@code source.getNode()==result.getNode()}),
      *      it might copy the entire DOM tree, or it might alter the
      *      node given by the source.
      *
      * @throws IllegalArgumentException
-     *      If the <code>Result</code> type doesn't match the
-     *      <code>Source</code> type of if the <code>Source</code>
+     *      If the {@code Result} type doesn't match the
+     *      {@code Source} type of if the {@code Source}
      *      is an XML artifact that the implementation cannot
      *      validate (for example, a processing instruction).
      * @throws SAXException
-     *      If the <code>ErrorHandler</code> throws a
-     *      <code>SAXException</code> or
-     *      if a fatal error is found and the <code>ErrorHandler</code> returns
+     *      If the {@code ErrorHandler} throws a
+     *      {@code SAXException} or
+     *      if a fatal error is found and the {@code ErrorHandler} returns
      *      normally.
      * @throws IOException
      *      If the validator is processing a
-     *      <code>SAXSource</code> and the
+     *      {@code SAXSource} and the
      *      underlying {@link org.xml.sax.XMLReader} throws an
-     *      <code>IOException</code>.
+     *      {@code IOException}.
      * @throws NullPointerException
-     *      If the <code>source</code> parameter is <code>null</code>.
+     *      If the {@code source} parameter is {@code null}.
      *
      * @see #validate(Source source)
      */
@@ -239,7 +239,7 @@
 
     /**
      * Sets the {@link ErrorHandler} to receive errors encountered
-     * during the <code>validate</code> method invocation.
+     * during the {@code validate} method invocation.
      *
      * <p>
      * Error handler can be used to customize the error handling process
@@ -255,7 +255,7 @@
      *
      * <p>
      * If any {@link Throwable} is thrown from an {@link ErrorHandler},
-     * the caller of the <code>validate</code> method will be thrown
+     * the caller of the {@code validate} method will be thrown
      * the same {@link Throwable} object.
      *
      * <p>
@@ -329,7 +329,7 @@
      * If a {@link LSResourceResolver} throws a {@link RuntimeException}
      *  (or instances of its derived classes),
      * then the {@link Validator} will abort the parsing and
-     * the caller of the <code>validate</code> method will receive
+     * the caller of the {@code validate} method will receive
      * the same {@link RuntimeException}.
      *
      * <p>
@@ -366,7 +366,7 @@
      * contexts, such as before, during, or after a validation.
      *
      * <p>Implementors are free (and encouraged) to invent their own features,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      *
@@ -398,14 +398,14 @@
      * <p>
      * Feature can be used to control the way a {@link Validator}
      * parses schemas, although {@link Validator}s are not required
-     * to recognize any specific feature names.</p>
+     * to recognize any specific feature names.
      *
      * <p>The feature name is any fully-qualified URI.  It is
      * possible for a {@link Validator} 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 validation.</p>
+     * a validation.
      *
      * @param name The feature name, which is a non-null fully-qualified URI.
      * @param value The requested value of the feature (true or false).
@@ -438,27 +438,27 @@
      * 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 validation.</p>
+     * a validation.
      *
      * <p>
      * All implementations that implement JAXP 1.5 or newer are required to
      * support the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD} and
      * {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} properties.
-     * </p>
+     *
      * <ul>
      *   <li>
      *      <p>Access to external DTDs in source or Schema file is restricted to
      *      the protocols specified by the {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_DTD}
      *      property.  If access is denied during validation due to the restriction
      *      of this property, {@link org.xml.sax.SAXException} will be thrown by the
-     *      {@link #validate(Source)} method.</p>
+     *      {@link #validate(Source)} method.
      *
      *      <p>Access to external reference set by the schemaLocation attribute is
      *      restricted to the protocols specified by the
      *      {@link javax.xml.XMLConstants#ACCESS_EXTERNAL_SCHEMA} property.
      *      If access is denied during validation due to the restriction of this property,
      *      {@link org.xml.sax.SAXException} will be thrown by the
-     *      {@link #validate(Source)} method.</p>
+     *      {@link #validate(Source)} method.
      *   </li>
      * </ul>
      *
@@ -490,13 +490,13 @@
      * possible for a {@link Validator} 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 validation.</p>
+     * contexts, such as before, during, or after a validation.
      *
      * <p>{@link Validator}s are not required to recognize any specific
-     * property names.</p>
+     * property names.
      *
      * <p>Implementors are free (and encouraged) to invent their own properties,
-     * using names built on their own URIs.</p>
+     * using names built on their own URIs.
      *
      * @param name The property name, which is a non-null fully-qualified URI.
      *
--- a/src/java.xml/share/classes/javax/xml/xpath/XPath.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPath.java	Thu Apr 23 16:12:16 2015 -0700
@@ -32,7 +32,7 @@
 /**
  * {@code XPath} provides access to the XPath evaluation environment and expressions.
  *
- * <a name="XPath-evaluation"/>
+ * <a name="XPath-evaluation"></a>
  * <table border="1" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -90,7 +90,6 @@
  * more than one thread at any given time, and while the {@code evaluate}
  * method is invoked, applications may not recursively call
  * the {@code evaluate} method.
- * <p>
  *
  * @author  <a href="Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -462,7 +461,6 @@
      * <pre> {@code
      *     evaluateExpression(expression, item, XPathEvaluationResult.class);
      * }</pre>
-     * <p>
      *
      * @implSpec
      * The default implementation in the XPath API is equivalent to:
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathEvaluationResult.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathEvaluationResult.java	Thu Apr 23 16:12:16 2015 -0700
@@ -32,7 +32,6 @@
  * evaluation of an XPath expression within the context of a particular node.
  * The evaluation of an XPath expression can result in various result types as
  * defined in XML Path Language (XPath) Version 1.0.
- * <p>
  *
  * @param <T> the object type returned by the XPath evaluation.
  * @see <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version
@@ -121,7 +120,7 @@
     public XPathResultType type();
 
     /**
-     * Returns the value of the result as the type &lt;T&gt; specified for the class.
+     * Returns the value of the result as the type {@code <T>} specified for the class.
      *
      * @return The value of the result.
      */
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathException.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathException.java	Thu Apr 23 16:12:16 2015 -0700
@@ -33,7 +33,7 @@
 import java.io.InvalidClassException;
 
 /**
- * <code>XPathException</code> represents a generic XPath exception.</p>
+ * {@code XPathException} represents a generic XPath exception.
  *
  * @author  <a href="Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author <a href="mailto:Jeff.Suttor@Sun.COM">Jeff Suttor</a>
@@ -46,23 +46,23 @@
     };
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathException</code>
-     * with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathException(String message) {
         super(message);
@@ -72,15 +72,15 @@
     }
 
     /**
-     * <p>Constructs a new <code>XPathException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathException(Throwable cause) {
         super(cause);
@@ -90,7 +90,7 @@
     }
 
     /**
-     * <p>Get the cause of this XPathException.</p>
+     * Get the cause of this XPathException.
      *
      * @return Cause of this XPathException.
      */
@@ -103,7 +103,7 @@
      * The cause is got from the parent class.
      *
      * @param out stream used for serialization.
-     * @throws IOException thrown by <code>ObjectOutputStream</code>
+     * @throws IOException thrown by {@code ObjectOutputStream}
      *
      */
     private void writeObject(ObjectOutputStream out)
@@ -120,8 +120,8 @@
      * done before.
      *
      * @param in stream used for deserialization
-     * @throws IOException thrown by <code>ObjectInputStream</code>
-     * @throws ClassNotFoundException  thrown by <code>ObjectInputStream</code>
+     * @throws IOException thrown by {@code ObjectInputStream}
+     * @throws ClassNotFoundException  thrown by {@code ObjectInputStream}
      */
     private void readObject(ObjectInputStream in)
             throws IOException, ClassNotFoundException
@@ -139,9 +139,9 @@
     }
 
     /**
-     * <p>Print stack trace to specified <code>PrintStream</code>.</p>
+     * Print stack trace to specified {@code PrintStream}.
      *
-     * @param s Print stack trace to this <code>PrintStream</code>.
+     * @param s Print stack trace to this {@code PrintStream}.
      */
     public void printStackTrace(java.io.PrintStream s) {
         if (getCause() != null) {
@@ -153,16 +153,16 @@
     }
 
     /**
-     * <p>Print stack trace to <code>System.err</code>.</p>
+     * Print stack trace to {@code System.err}.
      */
     public void printStackTrace() {
         printStackTrace(System.err);
     }
 
     /**
-     * <p>Print stack trace to specified <code>PrintWriter</code>.</p>
+     * Print stack trace to specified {@code PrintWriter}.
      *
-     * @param s Print stack trace to this <code>PrintWriter</code>.
+     * @param s Print stack trace to this {@code PrintWriter}.
      */
     public void printStackTrace(PrintWriter s) {
 
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathExpression.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathExpression.java	Thu Apr 23 16:12:16 2015 -0700
@@ -29,9 +29,9 @@
 import org.xml.sax.InputSource;
 
 /**
- * <p>{@code XPathExpression} provides access to compiled XPath expressions.</p>
+ * {@code XPathExpression} provides access to compiled XPath expressions.
  *
- * <a name="XPathExpression-evaluation"/>
+ * <a name="XPathExpression-evaluation"></a>
  * <table border="1" cellpadding="2">
  *   <thead>
  *     <tr>
@@ -54,7 +54,7 @@
  *        If the expression contains a variable reference, its value will be found through the {@link XPathVariableResolver}.
  *        An {@link XPathExpressionException} is raised if the variable resolver is undefined or
  *        the resolver returns {@code null} for the variable.
- *        The value of a variable must be immutable through the course of any single evaluation.</p>
+ *        The value of a variable must be immutable through the course of any single evaluation.
  *      </td>
  *    </tr>
  *    <tr>
@@ -62,7 +62,7 @@
  *      <td>
  *        If the expression contains a function reference, the function will be found through the {@link XPathFunctionResolver}.
  *        An {@link XPathExpressionException} is raised if the function resolver is undefined or
- *        the function resolver returns {@code null} for the function.</p>
+ *        the function resolver returns {@code null} for the function.
  *      </td>
  *    </tr>
  *    <tr>
@@ -76,9 +76,10 @@
  *      <td>
  *        This result of evaluating an expression is converted to an instance of the desired return type.
  *        Valid return types are defined in {@link XPathConstants}.
- *        Conversion to the return type follows XPath conversion rules.</p>
+ *        Conversion to the return type follows XPath conversion rules.
  *      </td>
  *    </tr>
+ *   </tbody>
  * </table>
  *
  * <p>An XPath expression is not thread-safe and not reentrant.
@@ -87,7 +88,6 @@
  * more than one thread at any given time, and while the {@code evaluate}
  * method is invoked, applications may not recursively call
  * the {@code evaluate} method.
- * <p>
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -98,10 +98,10 @@
 
 
     /**
-     * <p>Evaluate the compiled XPath expression in the specified context and return the result as the specified type.</p>
+     * Evaluate the compiled XPath expression in the specified context and return the result as the specified type.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>
      * The parameter {@code item} represents the context the XPath expression
@@ -126,13 +126,13 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the specified context and return the result as a {@code String}.</p>
+     * Evaluate the compiled XPath expression in the specified context and return the result as a {@code String}.
      *
      * <p>This method calls {@link #evaluate(Object item, QName returnType)} with a {@code returnType} of
-     * {@link XPathConstants#STRING}.</p>
+     * {@link XPathConstants#STRING}.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>
      * The parameter {@code item} represents the context the XPath expression
@@ -153,20 +153,21 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the context of the specified {@code InputSource} and return the result as the
-     * specified type.</p>
+     * Evaluate the compiled XPath expression in the context
+     * of the specified {@code InputSource} and return the result as the
+     * specified type.
      *
      * <p>This method builds a data model for the {@link InputSource} and calls
-     * {@link #evaluate(Object item, QName returnType)} on the resulting document object.</p>
+     * {@link #evaluate(Object item, QName returnType)} on the resulting document object.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
      * <p>If {@code returnType} is not one of the types defined in {@link XPathConstants},
-     * then an {@code IllegalArgumentException} is thrown.</p>
+     * then an {@code IllegalArgumentException} is thrown.
      *
      * <p>If {@code source} or {@code returnType} is {@code null},
-     * then a {@code NullPointerException} is thrown.</p>
+     * then a {@code NullPointerException} is thrown.
      *
      * @param source The {@code InputSource} of the document to evaluate over.
      * @param returnType The desired return type.
@@ -182,16 +183,17 @@
         throws XPathExpressionException;
 
     /**
-     * <p>Evaluate the compiled XPath expression in the context of the specified {@code InputSource} and return the result as a
-     * {@code String}.</p>
+     * Evaluate the compiled XPath expression in the context
+     * of the specified {@code InputSource} and return the result as a
+     * {@code String}.
      *
      * <p>This method calls {@link #evaluate(InputSource source, QName returnType)} with a {@code returnType} of
-     * {@link XPathConstants#STRING}.</p>
+     * {@link XPathConstants#STRING}.
      *
      * <p>See <a href="#XPathExpression-evaluation">Evaluation of XPath Expressions</a> for context item evaluation,
-     * variable, function and QName resolution and return type conversion.</p>
+     * variable, function and QName resolution and return type conversion.
      *
-     * <p>If {@code source} is {@code null}, then a {@code NullPointerException} is thrown.</p>
+     * <p>If {@code source} is {@code null}, then a {@code NullPointerException} is thrown.
      *
      * @param source The {@code InputSource} of the document to evaluate over.
      *
@@ -351,7 +353,6 @@
      * <pre> {@code
      *     evaluateExpression(source, XPathEvaluationResult.class);
      * }</pre>
-     * <p>
      *
      * @implSpec
      * The default implementation in the XPath API is equivalent to:
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathExpressionException.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathExpressionException.java	Thu Apr 23 16:12:16 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathExpressionException</code> represents an error in an XPath expression.</p>
+ * {@code XPathExpressionException} represents an error in an XPath expression.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,38 +35,38 @@
 public class XPathExpressionException extends XPathException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathExpressionException</code>
-     * with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathExpressionException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathExpressionException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathExpressionException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathExpressionException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathExpressionException(Throwable cause) {
         super(cause);
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathFactoryConfigurationException.java	Thu Apr 23 16:12:16 2015 -0700
@@ -26,7 +26,8 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathFactoryConfigurationException</code> represents a configuration error in a <code>XPathFactory</code> environment.</p>
+ * {@code XPathFactoryConfigurationException} represents
+ * a configuration error in a {@code XPathFactory} environment.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,37 +36,38 @@
 public class XPathFactoryConfigurationException extends XPathException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathFactoryConfigurationException</code> with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathFactoryConfigurationException}
+     * with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathFactoryConfigurationException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathFactoryConfigurationException</code>
-     * with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathFactoryConfigurationException}
+     * with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathFactoryConfigurationException(Throwable cause) {
         super(cause);
--- a/src/java.xml/share/classes/javax/xml/xpath/XPathFunctionException.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/XPathFunctionException.java	Thu Apr 23 16:12:16 2015 -0700
@@ -26,7 +26,7 @@
 package javax.xml.xpath;
 
 /**
- * <code>XPathFunctionException</code> represents an error with an XPath function.</p>
+ * {@code XPathFunctionException} represents an error with an XPath function.
  *
  * @author  <a href="mailto:Norman.Walsh@Sun.com">Norman Walsh</a>
  * @author  <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a>
@@ -35,36 +35,36 @@
 public class XPathFunctionException extends XPathExpressionException {
 
     /**
-     * <p>Stream Unique Identifier.</p>
+     * Stream Unique Identifier.
      */
     private static final long serialVersionUID = -1837080260374986980L;
 
     /**
-     * <p>Constructs a new <code>XPathFunctionException</code> with the specified detail <code>message</code>.</p>
+     * Constructs a new {@code XPathFunctionException} with the specified detail {@code message}.
      *
-     * <p>The <code>cause</code> is not initialized.</p>
+     * <p>The {@code cause} is not initialized.
      *
-     * <p>If <code>message</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code message} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param message The detail message.
      *
-     * @throws NullPointerException When <code>message</code> is
-     *   <code>null</code>.
+     * @throws NullPointerException When {@code message} is
+     *   {@code null}.
      */
     public XPathFunctionException(String message) {
         super(message);
     }
 
     /**
-     * <p>Constructs a new <code>XPathFunctionException</code> with the specified <code>cause</code>.</p>
+     * Constructs a new {@code XPathFunctionException} with the specified {@code cause}.
      *
-     * <p>If <code>cause</code> is <code>null</code>,
-     * then a <code>NullPointerException</code> is thrown.</p>
+     * <p>If {@code cause} is {@code null},
+     * then a {@code NullPointerException} is thrown.
      *
      * @param cause The cause.
      *
-     * @throws NullPointerException if <code>cause</code> is <code>null</code>.
+     * @throws NullPointerException if {@code cause} is {@code null}.
      */
     public XPathFunctionException(Throwable cause) {
         super(cause);
--- a/src/java.xml/share/classes/javax/xml/xpath/package.html	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/javax/xml/xpath/package.html	Thu Apr 23 16:12:16 2015 -0700
@@ -282,7 +282,6 @@
 <h3>5. Using the XPath API</h3>
 
 Consider the following XML document:
-<p>
 <blockquote>
 <pre>
 &lt;widgets&gt;
@@ -366,7 +365,6 @@
 specification also provides functions that returns Integer type. To facilitate
 such operations, the XPath API allows Integer and Long to be used in 
 {@code evaluateExpression} method such as the following code: 
-<p>
 <blockquote>
 <pre>
 int count = xpath.evaluate("count(/widgets/widget)", document, Integer.class);
--- a/src/java.xml/share/classes/org/w3c/dom/ranges/package.html	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/org/w3c/dom/ranges/package.html	Thu Apr 23 16:12:16 2015 -0700
@@ -21,11 +21,11 @@
       W3C IPR SOFTWARE NOTICE
     </h1>
     <h3>
-      Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
-      Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
-      Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
-      National de Recherche en Informatique et en Automatique</loc>, <loc
-      href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
+      Copyright &copy; 2000 <a href="http://www.w3.org/">World Wide Web
+      Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+      Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+      National de Recherche en Informatique et en Automatique</a>, <a
+      href="http://www.keio.ac.jp/">Keio University</a>). All Rights
       Reserved.
     </h3>
     <p>
@@ -66,25 +66,25 @@
     </p>
     <ol>
       <li>
-	The full text of this NOTICE in a location viewable to users of the
-	redistributed or derivative work.
+        The full text of this NOTICE in a location viewable to users of the
+        redistributed or derivative work.
       </li>
       <li>
-	Any pre-existing intellectual property disclaimers, notices, or terms
-	and conditions. If none exist, a short notice of the following form
-	(hypertext is preferred, text is permitted) should be used within the
-	body of any redistributed or derivative code: "Copyright &copy;
-	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
-	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
-	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
-	National de Recherche en Informatique et en Automatique</a>, <a
-	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
-	Reserved. http://www.w3.org/Consortium/Legal/"
+        Any pre-existing intellectual property disclaimers, notices, or terms
+        and conditions. If none exist, a short notice of the following form
+        (hypertext is preferred, text is permitted) should be used within the
+        body of any redistributed or derivative code: "Copyright &copy;
+        [$date-of-software] <a href="http://www.w3.org/">World Wide Web
+        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
+        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
+        National de Recherche en Informatique et en Automatique</a>, <a
+        href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
+        Reserved. http://www.w3.org/Consortium/Legal/"
       </li>
       <li>
-	Notice of any changes or modifications to the W3C files, including the
-	date changes were made. (We recommend you provide URIs to the location
-	from which the code is derived.)
+        Notice of any changes or modifications to the W3C files, including the
+        date changes were made. (We recommend you provide URIs to the location
+        from which the code is derived.)
       </li>
     </ol>
     <p>
--- a/src/java.xml/share/classes/org/xml/sax/AttributeList.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/org/xml/sax/AttributeList.java	Thu Apr 23 16:12:16 2015 -0700
@@ -42,7 +42,7 @@
  *
  * <p>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.</p>
+ * interface, it does not support Namespace-related information.
  *
  * <p>When an attribute list is supplied as part of a
  * {@link org.xml.sax.DocumentHandler#startElement startElement}
@@ -51,16 +51,16 @@
  * 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.</p>
+ * helper class.
  *
  * <p>An attribute list includes only attributes that have been
- * specified or defaulted: #IMPLIED attributes will not be included.</p>
+ * specified or defaulted: #IMPLIED attributes will not be included.
  *
  * <p>There are two ways for the SAX application to obtain information
  * from the AttributeList.  First, it can iterate through the entire
- * list:</p>
+ * list:
  *
- * <pre>
+ * <pre>{@code
  * public void startElement (String name, AttributeList atts) {
  *   for (int i = 0; i < atts.getLength(); i++) {
  *     String name = atts.getName(i);
@@ -69,13 +69,13 @@
  *     [...]
  *   }
  * }
- * </pre>
+ * }</pre>
  *
  * <p>(Note that the result of getLength() will be zero if there
  * are no attributes.)
  *
  * <p>As an alternative, the application can request the value or
- * type of specific attributes:</p>
+ * type of specific attributes:
  *
  * <pre>
  * public void startElement (String name, AttributeList atts) {
@@ -107,7 +107,7 @@
      * <p>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.</p>
+     * zero.
      *
      * @return The number of attributes in the list.
      */
@@ -120,10 +120,10 @@
      * <p>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.</p>
+     * omitted from the list.
      *
      * <p>If the attribute name has a namespace prefix, the prefix
-     * will still be attached.</p>
+     * will still be attached.
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The name of the indexed attribute, or null
@@ -138,15 +138,15 @@
      *
      * <p>The attribute type is one of the strings "CDATA", "ID",
      * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
-     * or "NOTATION" (always in upper case).</p>
+     * or "NOTATION" (always in upper case).
      *
      * <p>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").</p>
+     * (clause 3.3.3, "Attribute-Value Normalization").
      *
      * <p>For an enumerated attribute that is not a notation, the
-     * parser will report the type as "NMTOKEN".</p>
+     * parser will report the type as "NMTOKEN".
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The attribute type as a string, or
@@ -162,7 +162,7 @@
      *
      * <p>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.</p>
+     * into a single string separated by whitespace.
      *
      * @param i The index of the attribute in the list (starting at 0).
      * @return The attribute value as a string, or
@@ -183,10 +183,10 @@
      * Return the type of an attribute in the list (by name).
      *
      * <p>The return value is the same as the return value for
-     * getType(int).</p>
+     * getType(int).
      *
      * <p>If the attribute name has a namespace prefix in the document,
-     * the application must include the prefix here.</p>
+     * the application must include the prefix here.
      *
      * @param name The name of the attribute.
      * @return The attribute type as a string, or null if no
@@ -200,10 +200,10 @@
      * Return the value of an attribute in the list (by name).
      *
      * <p>The return value is the same as the return value for
-     * getValue(int).</p>
+     * getValue(int).
      *
      * <p>If the attribute name has a namespace prefix in the document,
-     * the application must include the prefix here.</p>
+     * the application must include the prefix here.
      *
      * @param name the name of the attribute to return
      * @return The attribute value as a string, or null if
--- a/src/java.xml/share/classes/org/xml/sax/ext/EntityResolver2.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/org/xml/sax/ext/EntityResolver2.java	Thu Apr 23 16:12:16 2015 -0700
@@ -61,7 +61,6 @@
  * 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.
- * </p>
  *
  * <p>That supports three categories of application that modify entity
  * resolution.  <em>Old Style</em> applications won't know about this interface;
@@ -76,7 +75,6 @@
  * 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.
- * </p>
  *
  * @see org.xml.sax.XMLReader#setEntityResolver
  *
@@ -95,7 +93,7 @@
      * through the {@link LexicalHandler#startDTD startDTD()} method as if
      * the document text had originally included the external subset;
      * this callback is made before any internal subset data or errors
-     * are reported.</p>
+     * are reported.
      *
      * <p>This method can also be used with documents that have no DOCTYPE
      * declaration.  When the root element is encountered,
@@ -104,7 +102,7 @@
      * 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:</p>
+     * in that case logically resembles this:
      *
      * <pre>
      * ... comments and PIs from the prolog (as usual)
@@ -122,7 +120,7 @@
      * {@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. </p>
+     * parameter entities.
      *
      * <p>Uses for this method include facilitating data validation when
      * interoperating with XML processors that would always require
@@ -131,12 +129,11 @@
      * 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.</p>
+     * type "ID" before it can process a widely used type of reference.
      *
      * <p><strong>Warning:</strong> 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.
-     * </p>
      *
      * @param name Identifies the document root element.  This name comes
      *  from a DOCTYPE declaration (where available) or from the actual
@@ -166,8 +163,8 @@
      * This method provides more flexibility than the {@link EntityResolver}
      * interface, supporting implementations of more complex catalogue
      * schemes such as the one defined by the <a href=
-        "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html"
-        >OASIS XML Catalogs</a> specification.</p>
+     *   "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html"
+     *   >OASIS XML Catalogs</a> specification.
      *
      * <p>Parsers configured to use this resolver method will call it
      * to determine the input source to use for any external entity
@@ -176,13 +173,13 @@
      * 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.  </p>
+     * flags, this method is not invoked for such entities.
      *
      * <p>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. </p>
+     *   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
@@ -196,7 +193,7 @@
      *  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 "&lt;" starting the relevant declaration.
+     *  associated with the "{@literal <}" 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
--- a/src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderFactory.java	Thu Apr 23 10:43:34 2015 -0700
+++ b/src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -49,7 +49,7 @@
  * </blockquote>
  *
  * <p>This class contains static methods for creating an XML reader
- * from an explicit class name, or based on runtime defaults:</p>
+ * from an explicit class name, or based on runtime defaults:
  *
  * <pre>
  * try {
@@ -64,8 +64,8 @@
  * <em>createXMLReader</em> 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 <code>org.xml.sax.driver</code> so
- * those configuration mechanisms would see it.</p>
+ * nothing bound its class name to {@code org.xml.sax.driver} so
+ * those configuration mechanisms would see it.
  *
  * @since 1.4, SAX 2.0
  * @author David Megginson, David Brownell
@@ -76,7 +76,7 @@
     /**
      * Private constructor.
      *
-     * <p>This constructor prevents the class from being instantiated.</p>
+     * <p>This constructor prevents the class from being instantiated.
      */
     private XMLReaderFactory ()
     {
@@ -91,9 +91,10 @@
      * 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:</p> <ul>
+     * using the first one which succeeds:
+     * <ul>
      *
-     * <li>If the system property <code>org.xml.sax.driver</code>
+     * <li>If the system property {@code org.xml.sax.driver}
      * has a value, that is used as an XMLReader class name. </li>
      *
      * <li>The JAR "Services API" is used to look for a class name
@@ -107,14 +108,13 @@
      * <li>Finally, if {@link ParserFactory#makeParser()} can
      * return a system default SAX1 parser, that parser is wrapped in
      * a {@link ParserAdapter}.  (This is a migration aid for SAX1
-     * environments, where the <code>org.xml.sax.parser</code> system
+     * environments, where the {@code org.xml.sax.parser} system
      * property will often be usable.) </li>
-     *
      * </ul>
      *
      * <p> In environments such as small embedded systems, which can not
      * support that flexibility, other mechanisms to determine the default
-     * may be used. </p>
+     * may be used.
      *
      * <p>Note that many Java environments allow system properties to be
      * initialized on a command line.  This means that <em>in most cases</em>
@@ -122,7 +122,6 @@
      * 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.
-     * </p>
      *
      * @return A new XMLReader.
      * @exception org.xml.sax.SAXException If no default XMLReader class
@@ -204,11 +203,11 @@
      * Attempt to create an XML reader from a class name.
      *
      * <p>Given a class name, this method attempts to load
-     * and instantiate the class as an XML reader.</p>
+     * and instantiate the class as an XML reader.
      *
      * <p>Note that this method will not be usable in environments where
      * the caller (perhaps an applet) is not permitted to load classes
-     * dynamically.</p>
+     * dynamically.
      *
      * @return A new XML reader.
      * @exception org.xml.sax.SAXException If the class cannot be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/AstroTest.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.astro;
+
+import static java.lang.String.valueOf;
+import static org.testng.Assert.assertEquals;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.GOLDEN_DIR;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+import javax.xml.transform.sax.TransformerHandler;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/*
+ * @summary run astro application, test xslt
+ *
+ * There are vast amounts of textual astronomical data, typically user is
+ * interested in a small subset, which is the result from carrying out a query.
+ * A query can be composed of one or more filters, for example, the user could
+ * query the database for all stars of visual magnitude down to 6.5 that lie
+ * between right ascensions 0 h to 2 h, and between declinations of 45 to 90 degrees.
+ *
+ * Astro application uses JAXP to query astronomical data saved in an XML dataset.
+ * A FilterFactory implementation creates filter(A filter is an instance of a JAXP
+ * TransformerHandler) from an XSL stylesheet.
+ * A InputSourceFactory implementation creates a new sax input source from an XML file.
+ * AstroProcessor leverages InputSourceFactory to parse catalog.xml, which saves
+ * textual astronomical data, and then creates filters with specified parameters
+ * from FilterFactory, all of the filters are chained together, AstroProcessor
+ * appends the HTML filter at the end of filter chain, and hooks up the chain to
+ * the input source, finally processes and outputs to the user specified output file.
+ *
+ * AstroTest drives AstroProcessor to run the specified queries(total 4 in setup),
+ * and then compares the output with the golden files to determine PASS or FAIL.
+ * It provides variant implementations of FilterFactory and InputSourceFactory to
+ * AstroProcessor to test different JAXP classes and features.
+ *
+ */
+public class AstroTest extends JAXPFileBaseTest {
+    private FiltersAndGolden[] data;
+
+    @BeforeClass
+    public void setup() throws Exception {
+        data = new FiltersAndGolden[4];
+        data[0] = new FiltersAndGolden(getGoldenFileContent(1), astro -> astro.getRAFilter(0.106, 0.108));
+        data[1] = new FiltersAndGolden(getGoldenFileContent(2), astro -> astro.getStellarTypeFilter("K0IIIbCN-0.5"));
+        data[2] = new FiltersAndGolden(getGoldenFileContent(3), astro -> astro.getStellarTypeFilter("G"), astro -> astro.getDecFilter(-5.0, 60.0));
+        data[3] = new FiltersAndGolden(getGoldenFileContent(4), astro -> astro.getRADECFilter(0.084, 0.096, -5.75, 14.0));
+    }
+
+    /*
+     * Provide permutations of InputSourceFactory and FilterFactory for test.
+     */
+    @DataProvider(name = "factories")
+    public Object[][] getQueryFactories() {
+        return new Object[][] {
+                { StreamFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { SAXFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { DOMFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { TemplatesFilterFactoryImpl.class, InputSourceFactoryImpl.class },
+                { StreamFilterFactoryImpl.class, DOML3InputSourceFactoryImpl.class } };
+    }
+
+    @Test(dataProvider = "factories")
+    public void test(Class<FilterFactory> fFactClass, Class<InputSourceFactory> isFactClass) throws Exception {
+        System.out.println(fFactClass.getName() +" : " + isFactClass.getName());
+        AstroProcessor astro = new AstroProcessor(fFactClass, ASTROCAT, isFactClass);
+
+        for (int i = 0; i < data.length; i++) {
+            runProcess(astro, valueOf(i + 1), data[i].getGolden(), data[i].getFilters());
+        }
+    }
+
+    private void runProcess(AstroProcessor astro, String processNum, List<String> goldenfileContent, FilterCreator... filterCreators) throws Exception {
+        System.out.println("run process " + processNum);
+        TransformerHandler[] filters = new TransformerHandler[filterCreators.length];
+        for (int i = 0; i < filterCreators.length; i++)
+            filters[i] = filterCreators[i].createFilter(astro);
+
+        String outputfile = Files.createTempFile(Paths.get("").toAbsolutePath(), "query" + processNum + ".out.", null).toString();
+        System.out.println("output file: " + outputfile);
+        astro.process(outputfile, filters);
+        assertEquals(Files.readAllLines(Paths.get(outputfile)), goldenfileContent);
+    }
+
+    private List<String>  getGoldenFileContent(int num) throws IOException {
+        return Files.readAllLines(Paths.get(GOLDEN_DIR + "query" + num + ".out"));
+    }
+
+    @FunctionalInterface
+    private interface FilterCreator {
+        TransformerHandler createFilter(AstroProcessor astro) throws Exception;
+    }
+
+    private static class FiltersAndGolden {
+        private FilterCreator[] filters;
+        private List<String> golden;
+
+        FiltersAndGolden(List<String> golden, FilterCreator... filters) {
+            this.filters = filters;
+            this.golden = golden;
+        }
+
+        FilterCreator[] getFilters() {
+            return filters;
+        }
+
+        List<String> getGolden() {
+            return golden;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.w3c.dom.ls.DOMImplementationLS.MODE_SYNCHRONOUS;
+import static test.astro.AstroConstants.ASTROCAT;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Writer;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSOutput;
+import org.w3c.dom.ls.LSParser;
+import org.w3c.dom.ls.LSSerializer;
+
+/*
+ * @summary org.w3c.dom.ls tests
+ */
+public class DocumentLSTest extends JAXPFileBaseTest {
+    /*
+     * Test creating an empty Document
+     */
+    @Test
+    public void testNewDocument() throws ParserConfigurationException {
+        Document doc = getDocumentBuilder().newDocument();
+        assertNull(doc.getDocumentElement());
+    }
+
+    /*
+     * Test creating an LSInput instance, and parsing ByteStream
+     */
+    @Test
+    public void testLSInputParsingByteStream() throws Exception {
+        DOMImplementationLS impl = (DOMImplementationLS) getDocumentBuilder().getDOMImplementation();
+        LSParser domParser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        LSInput src = impl.createLSInput();
+
+        try (InputStream is = new FileInputStream(ASTROCAT)) {
+            src.setByteStream(is);
+            assertNotNull(src.getByteStream());
+            // set certified accessor methods
+            boolean origCertified = src.getCertifiedText();
+            src.setCertifiedText(true);
+            assertTrue(src.getCertifiedText());
+            src.setCertifiedText(origCertified); // set back to orig
+
+            src.setSystemId(filenameToURL(ASTROCAT));
+
+            Document doc = domParser.parse(src);
+            Element result = doc.getDocumentElement();
+            assertEquals(result.getTagName(), "stardb");
+        }
+    }
+
+    /*
+     * Test creating an LSInput instance, and parsing String
+     */
+    @Test
+    public void testLSInputParsingString() throws Exception {
+        DOMImplementationLS impl = (DOMImplementationLS) getDocumentBuilder().getDOMImplementation();
+        String xml = "<?xml version='1.0'?><test>runDocumentLS_Q6</test>";
+
+        LSParser domParser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        LSSerializer domSerializer = impl.createLSSerializer();
+        // turn off xml decl in serialized string for comparison
+        domSerializer.getDomConfig().setParameter("xml-declaration", Boolean.FALSE);
+        LSInput src = impl.createLSInput();
+        src.setStringData(xml);
+        assertEquals(src.getStringData(), xml);
+
+        Document doc = domParser.parse(src);
+        String result = domSerializer.writeToString(doc);
+
+        assertEquals(result, "<test>runDocumentLS_Q6</test>");
+    }
+
+    /*
+     * Test writing with an LSOutput instance
+     */
+    @Test
+    public void testLSOutput() throws Exception {
+        DocumentBuilder db = getDocumentBuilder();
+        // Create the Document using the supplied builder...
+        Document doc = db.parse(ASTROCAT);
+
+        DOMImplementationLS impl = null;
+
+        impl = (DOMImplementationLS) db.getDOMImplementation();
+        LSSerializer domSerializer = impl.createLSSerializer();
+        MyDOMOutput mydomoutput = new MyDOMOutput();
+        try (OutputStream os = new FileOutputStream("test.out")) {
+            mydomoutput.setByteStream(os);
+            mydomoutput.setEncoding("UTF-8");
+            assertTrue(domSerializer.write(doc, mydomoutput));
+        }
+    }
+
+    private static class MyDOMOutput implements LSOutput {
+        private OutputStream bytestream = null;
+        private String encoding = null;
+        private String sysId = null;
+        private Writer writer = null;
+
+        public OutputStream getByteStream() {
+            return bytestream;
+        }
+
+        public Writer getCharacterStream() {
+            return writer;
+        }
+
+        public String getEncoding() {
+            return encoding;
+        }
+
+        public String getSystemId() {
+            return sysId;
+        }
+
+        public void setByteStream(OutputStream bs) {
+            bytestream = bs;
+        }
+
+        public void setCharacterStream(Writer cs) {
+            writer = cs;
+        }
+
+        public void setEncoding(String enc) {
+            encoding = enc;
+        }
+
+        public void setSystemId(String sysId) {
+            this.sysId = sysId;
+        }
+    }
+
+    private DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        return dbf.newDocumentBuilder();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static javax.xml.XMLConstants.DEFAULT_NS_PREFIX;
+import static javax.xml.XMLConstants.NULL_NS_URI;
+import static org.testng.Assert.assertEquals;
+
+import javax.xml.namespace.QName;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.Test;
+
+/*
+ * @summary javax.xml.namespace.QName tests
+ */
+public class NamespaceContextTest extends JAXPBaseTest {
+    private static final String PREFIX = "astro";
+    private static final String LOCAL_PART = "stardb";
+    private static final String NS_URI = "http://www.astro.com";
+
+    /*
+     * Test QName(String, String, String) and accessors.
+     */
+    @Test
+    public void testQNameConstructor() {
+        QName qname = new QName(NS_URI, LOCAL_PART, PREFIX);
+        assertEquals(qname.getNamespaceURI(), NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), PREFIX);
+    }
+
+    /*
+     * Construct QName(String localpart), then test for default ns_uri and
+     * prefix constant.
+     */
+    @Test
+    public void testDefaultFields() {
+        QName qname = new QName(LOCAL_PART); // just the local part specified
+        assertEquals(qname.getNamespaceURI(), NULL_NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), DEFAULT_NS_PREFIX);
+    }
+
+    /*
+     * Construct QName(String ns,String localpart), then test for default prefix
+     * constant.
+     */
+    @Test
+    public void testDefaultPrefix() {
+        QName qname = new QName(NS_URI, LOCAL_PART); // no pref
+        assertEquals(qname.getNamespaceURI(), NS_URI);
+        assertEquals(qname.getLocalPart(), LOCAL_PART);
+        assertEquals(qname.getPrefix(), DEFAULT_NS_PREFIX);
+    }
+
+    /*
+     * Round trip testing of QName to String, String to QName and test for
+     * equality.
+     */
+    @Test
+    public void testQNameString() {
+        QName qname = new QName(NS_URI, LOCAL_PART, PREFIX);
+        assertEquals(QName.valueOf(qname.toString()), qname);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import javax.xml.parsers.SAXParserFactory;
+
+import jaxp.library.JAXPBaseTest;
+
+import org.testng.annotations.Test;
+import org.xml.sax.XMLReader;
+
+/*
+ * @summary verify SAX 2.0.1 allows to use null in setters
+ */
+public class SAX201Test extends JAXPBaseTest {
+    @Test
+    public void test() throws Exception {
+        SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        XMLReader reader = spf.newSAXParser().getXMLReader();
+        reader.setErrorHandler(null); // SAX 2.0.1 allows
+        reader.setContentHandler(null); // SAX 2.0.1 allows
+        reader.setEntityResolver(null); // SAX 2.0.1 allows
+        reader.setDTDHandler(null); // SAX 2.0.1 allows
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+
+import java.io.File;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.Test;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/*
+ * @summary test parser sets schema related properties to do validation
+ */
+public class SchemaValidationTest extends JAXPFileBaseTest {
+    /*
+     * Only set the schemaLanguage, without setting schemaSource. It should
+     * work.
+     */
+    @Test
+    public void testSchemaValidation() throws Exception {
+        SAXParser sp = getValidatingParser();
+        sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        sp.parse(new File(ASTROCAT), new DefaultHandler());
+    }
+
+    /*
+     * Test SAXException shall be thrown if schemaSource is set but
+     * schemaLanguage is not set.
+     */
+    @Test(expectedExceptions = SAXException.class)
+    public void testSchemaValidationNeg() throws Exception {
+        SAXParser sp = getValidatingParser();
+        sp.setProperty(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        sp.parse(new File(ASTROCAT), new DefaultHandler());
+    }
+
+    private SAXParser getValidatingParser() throws ParserConfigurationException, SAXException {
+        SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        spf.setValidating(true);
+        return spf.newSAXParser();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,169 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static javax.xml.xpath.XPathConstants.DOM_OBJECT_MODEL;
+import static javax.xml.xpath.XPathConstants.NODESET;
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.testng.Assert.assertEquals;
+import static test.astro.AstroConstants.ASTROCAT;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import javax.xml.xpath.XPathVariableResolver;
+
+import jaxp.library.JAXPFileBaseTest;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+/*
+ * @summary test XPath API
+ */
+@Test(singleThreaded = true)
+public class XPathAPITest extends JAXPFileBaseTest {
+    private static final String STARDB_STAR_3_CONSTELLATION = "//astro:stardb/astro:star[3]/astro:constellation";
+    private static final String STARDB_STAR = "//astro:stardb/astro:star";
+    private Document doc;
+    private XPathFactory xpf;
+    private NamespaceContext nsContext;
+
+    @BeforeClass
+    public void setup() throws Exception {
+        DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
+        df.setNamespaceAware(true);
+        df.setValidating(true);
+        df.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        df.setAttribute(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        DocumentBuilder bldr = df.newDocumentBuilder();
+        doc = bldr.parse(ASTROCAT);
+
+        xpf = XPathFactory.newInstance(DOM_OBJECT_MODEL);
+
+        nsContext = new MyNamespaceContext();
+    }
+
+    @DataProvider(name = "nodelist-evaluator")
+    public Object[][] getNodeListEvaluator() throws MalformedURLException {
+        return new Object[][] { { (XPathEvaluator) expression -> getXPath().evaluate(expression, doc.getDocumentElement(), NODESET) },
+                { (XPathEvaluator) expression -> getXPath().evaluate(expression, createXMLInputSource(), NODESET) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(doc.getDocumentElement(), NODESET) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(createXMLInputSource(), NODESET) } };
+    }
+
+    /*
+     * Test xpath expression evaluations method that returns type indicated by
+     * QName
+     */
+    @Test(dataProvider = "nodelist-evaluator")
+    public void testEvaluateNodeList(XPathEvaluator evaluator) throws Exception {
+        NodeList o = (NodeList) evaluator.evaluate(STARDB_STAR);
+        assertEquals(o.getLength(), 10);
+    }
+
+    @DataProvider(name = "string-evaluator")
+    public Object[][] getStringEvaluator() throws MalformedURLException {
+        return new Object[][] { { (XPathEvaluator) expression -> getXPath().evaluate(expression, doc.getDocumentElement()) },
+                { (XPathEvaluator) expression -> getXPath().evaluate(expression, createXMLInputSource()) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(doc.getDocumentElement()) },
+                { (XPathEvaluator) expression -> getXPathExpression(expression).evaluate(createXMLInputSource()) } };
+    }
+
+    /*
+     * Test xpath expression evaluations method that returns String
+     */
+    @Test(dataProvider = "string-evaluator")
+    public void testEvaluateString(XPathEvaluator evaluator) throws Exception {
+        assertEquals(evaluator.evaluate(STARDB_STAR_3_CONSTELLATION), "Psc");
+    }
+
+    @Test
+    public void testXPathVariableResolver() throws Exception {
+        XPath xpath = getXPath();
+        xpath.setXPathVariableResolver(new MyXPathVariableResolver());
+        assertEquals(xpath.evaluate("//astro:stardb/astro:star[astro:hr=$id]/astro:constellation", doc.getDocumentElement()), "Peg");
+
+    }
+
+    private static class MyXPathVariableResolver implements XPathVariableResolver {
+        public Object resolveVariable(QName vname) {
+            return "4"; // resolve $id as 4, xpath will locate to star[hr=4]
+        }
+    }
+
+    /*
+     * Implementation of a NamespaceContext interface for the Xpath api tests.
+     * Used in xpath.setNamespaceContext(...)
+     */
+    private static class MyNamespaceContext implements NamespaceContext {
+        public String getNamespaceURI(String prefix) {
+            return "astro".equals(prefix) ? "http://www.astro.com/astro" : "";
+        }
+
+        public String getPrefix(String nsURI) {
+            return "http://www.astro.com/astro".equals(nsURI) ? "astro" : "";
+        }
+
+        public Iterator getPrefixes(String nsURI) {
+            ArrayList list = new ArrayList();
+            list.add("astro");
+            return list.iterator();
+        }
+    }
+
+    @FunctionalInterface
+    private interface XPathEvaluator {
+        Object evaluate(String expression) throws XPathExpressionException;
+    }
+
+    private XPath getXPath() {
+        XPath xpath = xpf.newXPath();
+        xpath.setNamespaceContext(nsContext);
+        return xpath;
+    }
+
+    private XPathExpression getXPathExpression(String expression) throws XPathExpressionException {
+        return getXPath().compile(expression);
+    }
+
+    private InputSource createXMLInputSource() {
+        return new InputSource(filenameToURL(ASTROCAT));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xml	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,17 @@
+<?xml version="1.1" encoding="UTF-8"?>
+<stardb xmlns="http://www.astro.com/astro" xmlns:astro="http://www.astro.com/astro" xsi:schemaLocation="http://www.astro.com/astro catalog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+   <_test01></_test01>
+   <test-02 xmlns:xsi=""></test-02>
+   <test.03></test.03>
+   <_test-04>T%e!s#t$</_test-04>
+   <star><hr>1</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>09.9</s><dv>0.08608333333333333</dv></ra><dec><sgn/><d>45</d><m>13</m><s>45</s><dv>45.22916666666667</dv></dec><glng>114.44</glng><glat>-16.88</glat><vmag>6.70</vmag><spec>A1Vn</spec></star>
+   <star><hr>2</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>03.8</s><dv>0.08438888888888889</dv></ra><dec><sgn>-</sgn><d>00</d><m>30</m><s>11</s><dv>-0.5030555555555556</dv></dec><glng>98.33</glng><glat>-61.14</glat><vmag>6.29</vmag><spec>gG9</spec></star>
+   <star><hr>3</hr><constellation>Psc</constellation><fullname>33    Psc</fullname><ra><h>00</h><m>05</m><s>20.1</s><dv>0.08891666666666666</dv></ra><dec><sgn>-</sgn><d>05</d><m>42</m><s>27</s><dv>-5.7075000000000005</dv></dec><glng>93.75</glng><glat>-65.93</glat><vmag>4.61</vmag><spec>K0IIIbCN-0.5</spec></star>
+   <star><hr>4</hr><constellation>Peg</constellation><fullname>86    Peg</fullname><ra><h>00</h><m>05</m><s>42.0</s><dv>0.095</dv></ra><dec><sgn/><d>13</d><m>23</m><s>46</s><dv>13.39611111111111</dv></dec><glng>106.19</glng><glat>-47.98</glat><vmag>5.51</vmag><spec>G5III</spec></star>
+   <star><hr>5</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>16.0</s><dv>0.10444444444444445</dv></ra><dec><sgn/><d>58</d><m>26</m><s>12</s><dv>58.43666666666666</dv></dec><glng>117.03</glng><glat>-03.92</glat><vmag>5.96</vmag><spec>G5V</spec></star>
+   <star><hr>6</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>19.0</s><dv>0.10527777777777779</dv></ra><dec><sgn>-</sgn><d>49</d><m>04</m><s>30</s><dv>-49.075</dv></dec><glng>321.61</glng><glat>-66.38</glat><vmag>5.70</vmag><spec>G1IV</spec></star>
+   <star><hr>7</hr><constellation>Cas</constellation><fullname>10    Cas</fullname><ra><h>00</h><m>06</m><s>26.5</s><dv>0.10736111111111112</dv></ra><dec><sgn/><d>64</d><m>11</m><s>46</s><dv>64.19611111111111</dv></dec><glng>118.06</glng><glat>1.75</glat><vmag>5.59</vmag><spec>B9III</spec></star>
+   <star><hr>8</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>36.8</s><dv>0.11022222222222222</dv></ra><dec><sgn/><d>29</d><m>01</m><s>17</s><dv>29.02138888888889</dv></dec><glng>111.26</glng><glat>-32.83</glat><vmag>6.13</vmag><spec>K0V</spec></star>
+   <star><hr>9</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>50.1</s><dv>0.11391666666666667</dv></ra><dec><sgn>-</sgn><d>23</d><m>06</m><s>27</s><dv>-23.1075</dv></dec><glng>52.21</glng><glat>-79.14</glat><vmag>6.18</vmag><spec>A7V</spec></star>
+   <star><hr>10</hr><constellation/><fullname/><ra><h>00</h><m>07</m><s>18.2</s><dv>0.12172222222222222</dv></ra><dec><sgn>-</sgn><d>17</d><m>23</m><s>11</s><dv>-17.386388888888888</dv></dec><glng>74.36</glng><glat>-75.90</glat><vmag>6.19</vmag><spec>A6Vn</spec></star>
+</stardb>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xml.bak	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,2 @@
+<?xml version="1.1" encoding="UTF-8"?>
+<stardb xmlns="http://www.astro.com/astro" xmlns:astro="http://www.astro.com/astro" xsi:schemaLocation="http://www.astro.com/astro catalog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><_test01></_test01><test-02 xmlns:xsi=""></test-02><test.03></test.03><_test-04>T%e!s#t$</_test-04><star><hr>1</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>09.9</s><dv>0.08608333333333333</dv></ra><dec><sgn/><d>45</d><m>13</m><s>45</s><dv>45.22916666666667</dv></dec><glng>114.44</glng><glat>-16.88</glat><vmag>6.70</vmag><spec>A1Vn</spec></star><star><hr>2</hr><constellation/><fullname/><ra><h>00</h><m>05</m><s>03.8</s><dv>0.08438888888888889</dv></ra><dec><sgn>-</sgn><d>00</d><m>30</m><s>11</s><dv>-0.5030555555555556</dv></dec><glng>98.33</glng><glat>-61.14</glat><vmag>6.29</vmag><spec>gG9</spec></star><star><hr>3</hr><constellation>Psc</constellation><fullname>33    Psc</fullname><ra><h>00</h><m>05</m><s>20.1</s><dv>0.08891666666666666</dv></ra><dec><sgn>-</sgn><d>05</d><m>42</m><s>27</s><dv>-5.7075000000000005</dv></dec><glng>93.75</glng><glat>-65.93</glat><vmag>4.61</vmag><spec>K0IIIbCN-0.5</spec></star><star><hr>4</hr><constellation>Peg</constellation><fullname>86    Peg</fullname><ra><h>00</h><m>05</m><s>42.0</s><dv>0.095</dv></ra><dec><sgn/><d>13</d><m>23</m><s>46</s><dv>13.39611111111111</dv></dec><glng>106.19</glng><glat>-47.98</glat><vmag>5.51</vmag><spec>G5III</spec></star><star><hr>5</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>16.0</s><dv>0.10444444444444445</dv></ra><dec><sgn/><d>58</d><m>26</m><s>12</s><dv>58.43666666666666</dv></dec><glng>117.03</glng><glat>-03.92</glat><vmag>5.96</vmag><spec>G5V</spec></star><star><hr>6</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>19.0</s><dv>0.10527777777777779</dv></ra><dec><sgn>-</sgn><d>49</d><m>04</m><s>30</s><dv>-49.075</dv></dec><glng>321.61</glng><glat>-66.38</glat><vmag>5.70</vmag><spec>G1IV</spec></star><star><hr>7</hr><constellation>Cas</constellation><fullname>10    Cas</fullname><ra><h>00</h><m>06</m><s>26.5</s><dv>0.10736111111111112</dv></ra><dec><sgn/><d>64</d><m>11</m><s>46</s><dv>64.19611111111111</dv></dec><glng>118.06</glng><glat>1.75</glat><vmag>5.59</vmag><spec>B9III</spec></star><star><hr>8</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>36.8</s><dv>0.11022222222222222</dv></ra><dec><sgn/><d>29</d><m>01</m><s>17</s><dv>29.02138888888889</dv></dec><glng>111.26</glng><glat>-32.83</glat><vmag>6.13</vmag><spec>K0V</spec></star><star><hr>9</hr><constellation/><fullname/><ra><h>00</h><m>06</m><s>50.1</s><dv>0.11391666666666667</dv></ra><dec><sgn>-</sgn><d>23</d><m>06</m><s>27</s><dv>-23.1075</dv></dec><glng>52.21</glng><glat>-79.14</glat><vmag>6.18</vmag><spec>A7V</spec></star><star><hr>10</hr><constellation/><fullname/><ra><h>00</h><m>07</m><s>18.2</s><dv>0.12172222222222222</dv></ra><dec><sgn>-</sgn><d>17</d><m>23</m><s>11</s><dv>-17.386388888888888</dv></dec><glng>74.36</glng><glat>-75.90</glat><vmag>6.19</vmag><spec>A6Vn</spec></star></stardb>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/catalog.xsd	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,122 @@
+<xs:schema 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    targetNamespace="http://www.astro.com/astro" 
+    xmlns:astro="http://www.astro.com/astro"
+    elementFormDefault="qualified"
+    attributeFormDefault="qualified"
+>
+    <!-- Star Identification String Type  -->
+    <xs:simpleType name="staridType">
+	<xs:restriction base="xs:string">
+	    <xs:maxLength value="4"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Hour Type -->
+    <xs:simpleType name="hourType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="24.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Minute Type -->
+    <xs:simpleType name="minuteType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="60.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <!-- Second Type -->
+    <xs:simpleType name="secondType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="0.0"/>
+	    <xs:maxInclusive value="60.0"/>
+	</xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="decimalValueType">
+	<xs:restriction base="xs:decimal">
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:simpleType name="degType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="-90.0"/>
+	    <xs:maxInclusive value="90.0"/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:simpleType name="vmagType">
+	<xs:restriction base="xs:decimal">
+	    <xs:minInclusive value="-3.0"/>
+	    <xs:maxInclusive value="12.0"/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+
+    <xs:simpleType name="signType">
+	<xs:restriction base="xs:string">
+	    <xs:enumeration value="+"/>
+	    <xs:enumeration value="-"/>
+	    <xs:enumeration value=""/>
+	</xs:restriction>
+    </xs:simpleType> 
+
+    <xs:complexType name="raType">
+	<xs:sequence>
+	    <xs:element name="h"  type="astro:hourType"/>
+	    <xs:element name="m"  type="astro:minuteType"/>
+	    <xs:element name="s"  type="astro:secondType"/>
+	    <xs:element name="dv" type="astro:decimalValueType"/>
+	</xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="decType">
+	<xs:sequence>
+	    <xs:element name="sgn" type="astro:signType"/>
+	    <xs:element name="d"   type="astro:degType"/>
+	    <xs:element name="m"   type="astro:minuteType"/>
+	    <xs:element name="s"   type="astro:secondType"/>
+	    <xs:element name="dv"  type="astro:decimalValueType"/>
+	</xs:sequence>
+    </xs:complexType>
+
+
+    <xs:complexType name="starType">
+	<xs:sequence>
+	    <xs:element name="hr"            type="astro:staridType"/>
+	    <xs:element name="constellation" type="xs:string"/>
+	    <xs:element name="fullname"      type="xs:string"/>
+	    <xs:element name="ra"            type="astro:raType"/>
+	    <xs:element name="dec"           type="astro:decType"/>
+	    <xs:element name="glng"          type="xs:decimal"/>
+	    <xs:element name="glat"          type="xs:decimal"/>
+	    <xs:element name="vmag"          type="astro:vmagType"/>
+	    <xs:element name="spec"          type="xs:string"/>
+	</xs:sequence>
+    </xs:complexType>
+
+
+    <!-- The real part of the catalog starts here -->
+    <xs:element name="stardb">
+       <xs:complexType>
+          <xs:sequence>
+
+	     <!-- for testing purposes -->
+	     <xs:element name="_test01" type="xs:string"
+		minOccurs="0" maxOccurs="1"/>
+	     <xs:element name="test-02" type="xs:string"/>
+	     <xs:element name="test.03" type="xs:string"/>
+	     <xs:element name="_test-04" type="xs:string"/>
+
+	     <!-- astro data elements -->
+             <xs:element name="star" type="astro:starType"
+	        minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+       </xs:complexType>
+    </xs:element>
+    <!-- The real part of the catalog ends here -->
+
+</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query1.out	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,15 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>7<br>
+<b>Constellation: </b>Cas<br>
+<b>Description: </b>10    Cas<br>
+<b>RA J2000: </b>00:06:26.5<br>
+<b>DEC J2000: </b>64:11:46<br>
+<b>Visual Magnitude: </b>5.59<br>
+<b>Spectral Type: </b>B9III<br>
+<b>Galactic Longitude: </b>118.06<br>
+<b>Galactic Latitude: </b>1.75<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query2.out	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,15 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>3<br>
+<b>Constellation: </b>Psc<br>
+<b>Description: </b>33    Psc<br>
+<b>RA J2000: </b>00:05:20.1<br>
+<b>DEC J2000: </b>05:42:27<br>
+<b>Visual Magnitude: </b>4.61<br>
+<b>Spectral Type: </b>K0IIIbCN-0.5<br>
+<b>Galactic Longitude: </b>93.75<br>
+<b>Galactic Latitude: </b>-65.93<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query3.out	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,39 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>2<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:05:03.8<br>
+<b>DEC J2000: </b>00:30:11<br>
+<b>Visual Magnitude: </b>6.29<br>
+<b>Spectral Type: </b>gG9<br>
+<b>Galactic Longitude: </b>98.33<br>
+<b>Galactic Latitude: </b>-61.14<br>
+<hr>
+<b>Star Id: </b>4<br>
+<b>Constellation: </b>Peg<br>
+<b>Description: </b>86    Peg<br>
+<b>RA J2000: </b>00:05:42.0<br>
+<b>DEC J2000: </b>13:23:46<br>
+<b>Visual Magnitude: </b>5.51<br>
+<b>Spectral Type: </b>G5III<br>
+<b>Galactic Longitude: </b>106.19<br>
+<b>Galactic Latitude: </b>-47.98<br>
+<hr>
+<b>Star Id: </b>5<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:06:16.0<br>
+<b>DEC J2000: </b>58:26:12<br>
+<b>Visual Magnitude: </b>5.96<br>
+<b>Spectral Type: </b>G5V<br>
+<b>Galactic Longitude: </b>117.03<br>
+<b>Galactic Latitude: </b>-03.92<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/gold/query4.out	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,37 @@
+<html xmlns:astro="http://www.astro.com/astro">
+<h1>Bright Star Catalog Extract</h1>
+<body>
+<b>Star Id: </b>2<br>
+<b>Constellation: </b>
+<br>
+<b>Description: </b>
+<br>
+<b>RA J2000: </b>00:05:03.8<br>
+<b>DEC J2000: </b>00:30:11<br>
+<b>Visual Magnitude: </b>6.29<br>
+<b>Spectral Type: </b>gG9<br>
+<b>Galactic Longitude: </b>98.33<br>
+<b>Galactic Latitude: </b>-61.14<br>
+<hr>
+<b>Star Id: </b>3<br>
+<b>Constellation: </b>Psc<br>
+<b>Description: </b>33    Psc<br>
+<b>RA J2000: </b>00:05:20.1<br>
+<b>DEC J2000: </b>05:42:27<br>
+<b>Visual Magnitude: </b>4.61<br>
+<b>Spectral Type: </b>K0IIIbCN-0.5<br>
+<b>Galactic Longitude: </b>93.75<br>
+<b>Galactic Latitude: </b>-65.93<br>
+<hr>
+<b>Star Id: </b>4<br>
+<b>Constellation: </b>Peg<br>
+<b>Description: </b>86    Peg<br>
+<b>RA J2000: </b>00:05:42.0<br>
+<b>DEC J2000: </b>13:23:46<br>
+<b>Visual Magnitude: </b>5.51<br>
+<b>Spectral Type: </b>G5III<br>
+<b>Galactic Longitude: </b>106.19<br>
+<b>Galactic Latitude: </b>-47.98<br>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec-ent.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,36 @@
+<!-- This is the external entity version of dec.xsl 
+     in which the top level template has been removed
+     and referenced as an external entity
+--> 
+     
+<!DOCTYPE xsl:transform [
+  <!ENTITY toplevel SYSTEM "http://astro.com/stylesheets/toptemplate">
+]>
+
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- dec between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="dec_min_deg" select="0.0"/>
+	<xsl:param name="dec_max_deg" select="1.0"/>
+	
+	<!-- introduce the external entity -->
+	&toplevel;          
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,32 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- dec between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="dec_min_deg" select="0.0"/>
+	<xsl:param name="dec_max_deg" select="1.0"/>
+	
+	<xsl:template match="astro:stardb">
+	   <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	          <xsl:apply-templates/>
+	   </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/dec_frag.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,26 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- dec_frag.xsl = fragment used in radec.xsl --> 
+	
+	<xsl:output method="xml"/>
+	
+	<xsl:param name="dec_min_deg" select="-5.75"/>
+	<xsl:param name="dec_max_deg" select="14.0"/>
+	
+	
+	<xsl:template match="astro:star" mode="RA_PASSED" >
+	   <xsl:if test="(
+	                  (number(astro:dec/astro:dv) &gt;= $dec_min_deg) and
+	                  (number(astro:dec/astro:dv) &lt;= $dec_max_deg))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/html.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,38 @@
+<xsl:transform
+  xmlns=""
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  
+	<xsl:strip-space elements="*"/>
+	
+	<xsl:output method="html"/>
+	
+	<xsl:template match="astro:stardb">
+	   <html>
+	   <h1>Bright Star Catalog Extract</h1>
+	   <body>
+	      <xsl:apply-templates/>
+	   </body>
+	   </html>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <b>Star Id: </b><xsl:value-of select="astro:hr"/><br/>
+	   <b>Constellation: </b><xsl:value-of select="astro:constellation"/><br/>
+	   <b>Description: </b><xsl:value-of select="astro:fullname"/><br/>
+	   <b>RA J2000: </b><xsl:value-of select="astro:ra/astro:h"/><xsl:text>:</xsl:text><xsl:value-of select="astro:ra/astro:m"/><xsl:text>:</xsl:text><xsl:value-of select="astro:ra/astro:s"/><br/>
+	   <b>DEC J2000: </b><xsl:value-of select="astro:ra/astro:sgn"/><xsl:value-of select="astro:dec/astro:d"/><xsl:text>:</xsl:text><xsl:value-of select="astro:dec/astro:m"/><xsl:text>:</xsl:text><xsl:value-of select="astro:dec/astro:s"/><br/>
+	   <b>Visual Magnitude: </b><xsl:value-of select="astro:vmag"/><br/>
+	   <b>Spectral Type: </b><xsl:value-of select="astro:spec"/><br/>
+	   <b>Galactic Longitude: </b><xsl:value-of select="astro:glng"/><br/>
+	   <b>Galactic Latitude: </b><xsl:value-of select="astro:glat"/><br/>
+	   <hr></hr>
+	</xsl:template>
+	
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra-ent.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,29 @@
+<!DOCTYPE xsl:transform [
+  <!ENTITY toplevel SYSTEM "http://astro.com/stylesheets/toptemplate">
+]>
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	&toplevel;
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra-uri.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,27 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	<!-- will use the uri resolver to resolve to  'toptemplate.xsl' -->
+	<xsl:include href="http://astro.com/stylesheets/topleveltemplate"/>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,32 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- ra between 00:00:00 and 01:00:00 --> 
+	<xsl:param name="ra_min_hr" select="0.106"/>
+	<xsl:param name="ra_max_hr" select="0.108"/>
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/ra_frag.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,26 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- ra_frag = fragment used in radec.xsl -->
+	
+	<xsl:output method="xml"/>
+	
+	<xsl:param name="ra_min_hr" select="0.084"/>
+	<xsl:param name="ra_max_hr" select="0.096"/>
+	
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(
+	                  (number(astro:ra/astro:dv) &gt;= $ra_min_hr) and
+	                  (number(astro:ra/astro:dv) &lt;= $ra_max_hr))" >
+	          <xsl:apply-templates select="." mode="RA_PASSED"/> 
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/radec.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,28 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!-- radec.xsl = filters on both RA and DEC using modes -->
+	
+	<xsl:output method="xml"/>
+	
+	<!-- include the fragments for ra and dec filtering -->
+	
+	<xsl:include href="ra_frag.xsl"/>
+	<xsl:include href="dec_frag.xsl"/>
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/stellartype.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,29 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<xsl:output method="xml"/>
+	
+	<!-- search stars of a particular type --> 
+	<xsl:param name="type" select="G"/>
+	
+	<xsl:template match="astro:stardb">
+	   <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	   </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:star">
+	   <xsl:if test="(contains(astro:spec,$type))" >
+	          <xsl:copy-of select="."/>
+	   </xsl:if>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/toptemplate.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,17 @@
+
+<!--
+<xsl:transform
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+-->
+
+<xsl:template match="astro:stardb">
+      <stardb xmlns="http://www.astro.com/astro"
+      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+          <xsl:apply-templates/>
+      </stardb>
+</xsl:template>
+
+<!--
+</xsl:transform>
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/functional/test/astro/xmlfiles/xsl/toptemplateinc.xsl	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,24 @@
+<xsl:transform
+  xmlns:astro="http://www.astro.com/astro"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+	<!--
+	 - toptemplateinc.xsl = toptemplate used in an xsl:include element
+	 -        which demands that this is a complete stylesheet.
+	 -        The related toptemplate.xsl is not a complete stylesheet
+	 -        as it is used in ext entity references.  
+	-->
+	
+	<xsl:template match="astro:stardb">
+	      <stardb xmlns="http://www.astro.com/astro"
+	      xsi:schemaLocation="http://www.astro.com/astro catalog.xsd"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+	          <xsl:apply-templates/>
+	      </stardb>
+	</xsl:template>
+	
+	<xsl:template match="astro:_test-04">
+	    <!-- discard text contents -->
+	</xsl:template>
+
+</xsl:transform>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/AbstractFilterFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static test.astro.AstroConstants.HTMLXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.xml.sax.SAXException;
+
+public abstract class AbstractFilterFactory implements FilterFactory {
+    @Override
+    public TransformerHandler newRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getRAXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("ra_min_hr", String.valueOf(min));
+        xformer.setParameter("ra_max_hr", String.valueOf(max));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newDECFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getDECXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("dec_min_deg", String.valueOf(min));
+        xformer.setParameter("dec_max_deg", String.valueOf(max));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException {
+        TransformerHandler retval = getTransformerHandler(getRADECXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("ra_min_hr", String.valueOf(rmin));
+        xformer.setParameter("ra_max_hr", String.valueOf(rmax));
+        xformer.setParameter("dec_min_deg", String.valueOf(dmin));
+        xformer.setParameter("dec_max_deg", String.valueOf(dmax));
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newStellarTypeFilter(String type) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        TransformerHandler retval = getTransformerHandler(getStellarXsl());
+        Transformer xformer = retval.getTransformer();
+        xformer.setParameter("type", type);
+        return retval;
+    }
+
+    @Override
+    public TransformerHandler newHTMLOutput() throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException {
+        return getTransformerHandler(HTMLXSL);
+    }
+
+    abstract protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException;
+
+    abstract protected String getRAXsl();
+
+    abstract protected String getDECXsl();
+
+    abstract protected String getRADECXsl();
+
+    abstract protected String getStellarXsl();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/AstroConstants.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.astro;
+
+import static java.io.File.separator;
+import static jaxp.library.JAXPTestUtilities.getPathByClassName;
+
+public class AstroConstants {
+    // Query parameters :
+
+    public static final double RA_MIN = 0.0; // hours
+    public static final double RA_MAX = 24.0; // hours
+    public static final double DEC_MIN = -90.000; // degrees
+    public static final double DEC_MAX = 90.000; // degrees
+
+    // Stylesheet source paths:
+
+    public static final String XSLPATH = getPathByClassName(AstroConstants.class, "xmlfiles" + separator + "xsl");
+    public static final String RAXSL = XSLPATH + "ra.xsl";
+    public static final String DECXSL = XSLPATH + "dec.xsl";
+    public static final String RADECXSL = XSLPATH + "radec.xsl";
+    public static final String STYPEXSL = XSLPATH + "stellartype.xsl";
+    public static final String HTMLXSL = XSLPATH + "html.xsl";
+
+    public static final String RAENTXSL = XSLPATH + "ra-ent.xsl";
+    public static final String DECENTXSL = XSLPATH + "dec-ent.xsl";
+    public static final String RAURIXSL = XSLPATH + "ra-uri.xsl";
+    public static final String TOPTEMPLXSL = XSLPATH + "toptemplate.xsl";
+    public static final String TOPTEMPLINCXSL = XSLPATH + "toptemplateinc.xsl";
+
+    // Catalog references
+
+    public static final String ASTROCAT = getPathByClassName(AstroConstants.class, "xmlfiles") + "catalog.xml";
+
+
+    public static final String GOLDEN_DIR = getPathByClassName(AstroConstants.class, "xmlfiles" + separator + "gold");
+    public static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+    public static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/AstroProcessor.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,279 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static test.astro.AstroConstants.DEC_MAX;
+import static test.astro.AstroConstants.DEC_MIN;
+import static test.astro.AstroConstants.JAXP_SCHEMA_LANGUAGE;
+import static test.astro.AstroConstants.JAXP_SCHEMA_SOURCE;
+import static test.astro.AstroConstants.RA_MAX;
+import static test.astro.AstroConstants.RA_MIN;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
+
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
+
+/*
+ * AstroProcessor is to carry out the user's query with filters and produce a table of
+ * star records that match the criterion, and finally output with HTML format.
+ */
+public class AstroProcessor {
+    private String catalogFileName;
+
+    private FilterFactory ffact;
+    private InputSourceFactory isfact;
+
+    private SAXParserFactory spf;
+
+    /*
+     * Constructor for the Main astro class.
+     *
+     * @param fFactClass the class of the FilterFactory implementation
+     *
+     * @param catalogfilename the name of the XML input document (database)
+     *
+     * @param isFactClass the class of the Input Source Factory implementation
+     */
+    public AstroProcessor(Class<FilterFactory> fFactClass, String catalogFileName, Class<InputSourceFactory> isFactClass) throws Exception {
+        // create the Filter Factory instance...
+
+        ffact = fFactClass.newInstance();
+
+        // create the Input Source Instance
+
+        isfact = isFactClass.newInstance();
+
+        spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        spf.setValidating(true);
+
+        // All XML Readers are required to recognize these two:
+        spf.setFeature("http://xml.org/sax/features/namespaces", true);
+        spf.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
+
+        // Other features...
+        spf.setFeature("http://xml.org/sax/features/validation", true);
+        spf.setFeature("http://apache.org/xml/features/validation/schema", true);
+        spf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
+
+        this.catalogFileName = catalogFileName;
+    }
+
+    /*
+     * Sets the star stellar type query.
+     *
+     * @param arg stellar type string, can be a substring.
+     */
+    public TransformerHandler getStellarTypeFilter(String arg) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        String stellarType = null;
+        if (arg != null && arg.length() != 0) {
+            stellarType = arg; // set value of query
+        } else {
+            throw new IllegalArgumentException("\n  Stellar type string of length zero found.");
+        }
+
+        return ffact.newStellarTypeFilter(stellarType);
+    }
+
+    /*
+     * Sets the right ascension parameters for a query. Parameters are validated
+     * to be in the range of 0h and 24h inclusive.
+     *
+     * @param min minimum right ascension in hours.
+     *
+     * @param max maximum right ascension in hours.
+     */
+    public TransformerHandler getRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        double raMin = RA_MIN; // hours
+        double raMax = RA_MAX; // hours
+        if (min < max) {
+            if ((min >= RA_MIN && min <= RA_MAX) && (max >= RA_MIN && max <= RA_MAX)) {
+                raMin = min; // set value of query
+                raMax = max; // set value of query
+
+            }
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "min=" + min + ", max=" + max);
+        }
+
+        return ffact.newRAFilter(raMin, raMax);
+    }
+
+    /*
+     * Sets the right ascension and dec parameters for a query. Parameters are
+     * validated to be in the range of ra 0h and 24h and dec -90 to +90
+     * inclusive.
+     *
+     * @param rmin minimum right ascension in hours.
+     *
+     * @param rmax maximum right ascension in hours.
+     *
+     * @param dmin minimum declination in degs.
+     *
+     * @param dmax maximum declination in degs.
+     */
+    public TransformerHandler getRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException {
+        double raMin = RA_MIN; // hours
+        double raMax = RA_MAX; // hours
+        double decMin = DEC_MIN; // degrees
+        double decMax = DEC_MAX; // degrees
+        if (rmin < rmax && dmin < dmax) {
+            if ((rmin >= RA_MIN && rmin <= RA_MAX) && (rmax >= RA_MIN && rmax <= RA_MAX)) {
+                raMin = rmin; // set value of query
+                raMax = rmax; // set value of query
+            }
+            if ((dmin >= DEC_MIN && dmin <= DEC_MAX) && (dmax >= DEC_MIN && dmax <= DEC_MAX)) {
+                decMin = dmin; // set value of query
+                decMax = dmax; // set value of query
+            }
+
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "rmin=" + rmin + ", rmax=" + rmax + ", dmin=" + dmin + ", dmax=" + dmax);
+        }
+
+        return ffact.newRADECFilter(raMin, raMax, decMin, decMax);
+    }
+
+    /*
+     * Sets the declination parameters for a query. Parameters are validated to
+     * be in the range of -90 and +90 degrees inclusive.
+     *
+     * @param min minimum declination in degrees.
+     *
+     * @param max maximum declination in degrees.
+     */
+    public TransformerHandler getDecFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException,
+            IOException {
+        double decMin = DEC_MIN; // degrees
+        double decMax = DEC_MAX; // degrees
+        if (min < max) {
+            if ((min >= DEC_MIN && min <= DEC_MAX) && (max >= DEC_MIN && max <= DEC_MAX)) {
+                decMin = min; // set value of query
+                decMax = max; // set value of query
+            }
+        } else {
+            throw new IllegalArgumentException("min must be less than max.\n" + "min=" + min + ", max=" + max);
+        }
+
+        return ffact.newDECFilter(decMin, decMax);
+    }
+
+    /*
+     * Runs the filter process against the astronomical database.
+     *
+     * @throws Exception
+     */
+    public void process(String outputfile, TransformerHandler... filters) throws Exception {
+        XMLReader catparser = getXMLReader();
+
+        File catalogfile = new File(catalogFileName);
+        InputSource catsrc = isfact.newInputSource(catalogfile.getPath());
+
+        TransformerHandler outfilter = ffact.newHTMLOutput();
+        // create an array from the Vector of filters...
+
+        // hook the filters up to each other, there may be zero filters
+        int nfilters = filters.length;
+        if (nfilters != 0) {
+            TransformerHandler prev = null;
+            for (int i = 0; i < filters.length; i++) {
+                TransformerHandler curr = filters[i];
+                if (prev != null) {
+                    prev.setResult(new SAXResult(curr));
+                }
+                prev = curr;
+            }
+            // hook up the last filter to the output filter
+            prev.setResult(new SAXResult(outfilter));
+            // hook up the catalog parser to the first filter...
+            catparser.setContentHandler(filters[0]);
+        } else {
+            // There are no query filters,
+            // hook up the catalog parser directly to output filter...
+            catparser.setContentHandler(outfilter);
+        }
+        // hook up the output filter to the output file or std out
+        if (outputfile != null) {
+            outfilter.setResult(new StreamResult(outputfile));
+        } else {
+            outfilter.setResult(new StreamResult(System.out));
+        }
+
+        catparser.parse(catsrc);
+    }
+
+    private XMLReader getXMLReader() throws Exception {
+        SAXParser parser = spf.newSAXParser();
+        parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA_NS_URI);
+        parser.setProperty(JAXP_SCHEMA_SOURCE, "catalog.xsd");
+        XMLReader catparser = parser.getXMLReader();
+        catparser.setErrorHandler(new CatalogErrorHandler());
+        return catparser;
+    }
+
+    /*
+     * Error Handler for the parsing of the XML astronomical catalog.
+     */
+    private static class CatalogErrorHandler implements ErrorHandler {
+        private String getParseExceptionInfo(SAXParseException spe) {
+            String systemId = spe.getSystemId();
+            if (systemId == null) {
+                systemId = "null";
+            }
+            String info = "Catalog URI=" + systemId + " Line=" + spe.getLineNumber() + ": " + spe.getMessage();
+            return info;
+        }
+
+        public void warning(SAXParseException spe) throws SAXException {
+            String message = "Warning: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void error(SAXParseException spe) throws SAXException {
+            String message = "Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+
+        public void fatalError(SAXParseException spe) throws SAXException {
+            String message = "Fatal Error: " + getParseExceptionInfo(spe);
+            throw new SAXException(message);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/DOMFilterFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/*
+ * Implementation of the filter factory interface that utilizes DOM
+ * sources rather than Stream or SAX sources. This factory utilizes a
+ * DocumentBuilder to read in the stylesheets and create the DOM used
+ * to create the filters for the query pipeline.
+ *
+ */
+public class DOMFilterFactoryImpl extends SourceFilterFactory {
+    @Override
+    protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException, IOException {
+        Document document = getStylesheetDOM(xslFileName);
+        return new DOMSource(document);
+    }
+
+
+    @Override
+    protected String getRAXsl() {
+        return RAXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    private Document getStylesheetDOM(String xslfilename) throws SAXException, IOException, ParserConfigurationException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        return dbf.newDocumentBuilder().parse(filenameToURL(xslfilename));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/DOML3InputSourceFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static org.w3c.dom.ls.DOMImplementationLS.MODE_SYNCHRONOUS;
+import static org.w3c.dom.traversal.NodeFilter.SHOW_ELEMENT;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSParser;
+import org.w3c.dom.ls.LSParserFilter;
+import org.w3c.dom.ls.LSSerializer;
+import org.w3c.dom.ls.LSSerializerFilter;
+import org.xml.sax.InputSource;
+
+/*
+ * A specialized implementation of an Input Source factory that utilizes
+ * DOM Level 3 implementations to build a Document (DOM) from the
+ * astro input file (XML) and then will serialize the DOM. The serialized DOM
+ * of the astro input file is then used to create the sax InputSource
+ * and set it's system id. It is then returned to the caller.
+ *
+ */
+public class DOML3InputSourceFactoryImpl implements InputSourceFactory {
+    public InputSource newInputSource(String filename) throws Exception {
+        // Create DOMImplementationLS, and DOM L3 LSParser
+        DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
+        DocumentBuilder bldr = fact.newDocumentBuilder();
+        DOMImplementationLS impl = (DOMImplementationLS) bldr.getDOMImplementation();
+        LSParser domparser = impl.createLSParser(MODE_SYNCHRONOUS, null);
+        domparser.setFilter(new MyDOMBuilderFilter());
+
+        // Parse the xml document to create the DOM Document using
+        // the DOM L3 LSParser and a LSInput (formerly LSInputSource)
+        Document doc = null;
+        LSInput src = impl.createLSInput();
+        // register the input file with the input source...
+        String systemId = filenameToURL(filename);
+        src.setSystemId(systemId);
+        try (Reader reader = new FileReader(filename)) {
+            src.setCharacterStream(reader);
+            src.setEncoding("UTF-8");
+            doc = domparser.parse(src);
+        }
+
+        // Use DOM L3 LSSerializer (previously called a DOMWriter)
+        // to serialize the xml doc DOM to a file stream.
+        String tmpCatalog = Files.createTempFile(Paths.get("").toAbsolutePath(), "catalog.xml", null).toString();
+
+        LSSerializer domserializer = impl.createLSSerializer();
+        domserializer.setFilter(new MyDOMWriterFilter());
+        domserializer.getNewLine();
+        DOMConfiguration config = domserializer.getDomConfig();
+        config.setParameter("xml-declaration", Boolean.TRUE);
+        String result = domserializer.writeToString(doc);
+        try (FileWriter os = new FileWriter(tmpCatalog, false)) {
+            os.write(result);
+            os.flush();
+        }
+
+        // Return the Input Source created from the Serialized DOM L3 Document.
+        InputSource catsrc = new InputSource(new InputStreamReader(new ByteArrayInputStream(Files.readAllBytes(Paths.get(tmpCatalog)))));
+        catsrc.setSystemId(systemId);
+        return catsrc;
+    }
+
+    /*
+     * Implementation of a DOM L3 DOM Builder Filter. The filter is capable of
+     * examining nodes as they are available during the parse. This
+     * implementation both rejects (filters) and modifies particular nodes
+     * during the parse of the document. As such, the document in memory will
+     * become a subset of the document on the stream in accordance with the DOM
+     * Level 3 Load and Save Specification, v1.0, sect. 1.3 Load Interfaces.
+     */
+    private static class MyDOMBuilderFilter implements LSParserFilter {
+
+        /*
+         * Filter the DOM. Define element(s) and their children that should be
+         * efficiently skipped thereby filtering them out of the stream.
+         */
+        @Override
+        public short startElement(Element e) {
+            return "_test01".equals(e.getTagName()) ? FILTER_REJECT : FILTER_ACCEPT;
+        }
+
+        /*
+         * Modify the DOM 'in situ'. Find a particular Node and change the Node
+         * value of its child, allow other nodes to pass through unchanged.
+         */
+        @Override
+        public short acceptNode(Node n) {
+            String localname = n.getLocalName();
+            if (localname.equals("_test-04")) {
+                Node child = n.getFirstChild();
+                String text = child.getNodeValue();
+                if (text.equals("T%e!s#t$")) {
+                    child.setNodeValue("T%E!S#T$");
+                }
+            }
+            return FILTER_ACCEPT;
+        }
+
+        /*
+         * Tells the DOMBuilder what types of nodes to show to the filter.
+         */
+        @Override
+        public int getWhatToShow() {
+            return SHOW_ELEMENT;
+        }
+    }
+
+    /*
+     * Implementation of a DOM Serializer Filter (previously called a DOM Writer
+     * Filter) which is a specialization of the NodeFilter interface.
+     */
+    private static class MyDOMWriterFilter implements LSSerializerFilter {
+        public MyDOMWriterFilter() {
+        }
+
+        /*
+         * Must implement method from NodeFilter interface
+         */
+        @Override
+        public short acceptNode(Node node) {
+            return FILTER_ACCEPT;
+        }
+
+        /*
+         * Tells the DOMBuilder what types of nodes to show to the filter.
+         */
+        @Override
+        public int getWhatToShow() {
+            return SHOW_ELEMENT;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/FilterFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.TransformerConfigurationException;
+
+import org.xml.sax.SAXException;
+
+/*
+ * Defines the interface for all concrete implementations of a Filter
+ * Factory.
+ */
+public interface FilterFactory {
+    /*
+     * Allows only the stars between right ascension (R.A.) of min and max to
+     * pass. Filters out all stars that are not in that range of right
+     * ascension. Units of right ascension are hours (h), range of parameters is
+     * 0h to 24h.
+     *
+     * @param min minimum R.A.
+     *
+     * @param max maxmimum R.A.
+     */
+    TransformerHandler newRAFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    /*
+     * Allows only the stars between declination (DEC) of min and max to pass.
+     * Filters out all stars that are not in that range of declination. Units of
+     * declination are degrees (degs), range of parameters is -90 and +90 degs.
+     *
+     * @param min minimum DEC
+     *
+     * @param max maxmimum DEC
+     */
+    TransformerHandler newDECFilter(double min, double max) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    /*
+     * Combines the usage of newRAFilter and newDECFilter into one.
+     *
+     * @param rmin minimum R.A.
+     *
+     * @param rmax maxmimum R.A.
+     *
+     * @param dmin minimum DEC
+     *
+     * @param dmax maxmimum DEC
+     */
+    TransformerHandler newRADECFilter(double rmin, double rmax, double dmin, double dmax) throws TransformerConfigurationException, SAXException,
+            ParserConfigurationException, IOException;
+
+    TransformerHandler newStellarTypeFilter(String type) throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+
+    TransformerHandler newHTMLOutput() throws TransformerConfigurationException, SAXException, ParserConfigurationException, IOException;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/InputSourceFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import org.xml.sax.InputSource;
+
+/*
+ * Interface for all input source factory objects. The default implementation
+ * 'InputSourceFactoryImpl' is provided as a straight forward factory
+ * class that creates a new sax input source from a filename.
+ *
+ */
+public interface InputSourceFactory {
+    /*
+     * Creates a new sax InputSource object from a filename.
+     * Also sets the system id of the input source.
+     * @param file filename of the XML input to create the input source.
+     */
+    InputSource newInputSource(String file) throws Exception;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/InputSourceFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+
+import org.xml.sax.InputSource;
+
+/*
+ * Default implementation of a input source factory. This is the most
+ * straight forward way to create a sax input source and set it's
+ * system id.
+ *
+ */
+public class InputSourceFactoryImpl implements InputSourceFactory {
+    public InputSourceFactoryImpl() {
+    }
+
+    public InputSource newInputSource(String filename) {
+        InputSource catSrc = new InputSource(filename);
+        catSrc.setSystemId(filenameToURL(filename));
+        return catSrc;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/SAXFilterFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECENTXSL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAENTXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+import static test.astro.AstroConstants.TOPTEMPLXSL;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Source;
+import javax.xml.transform.sax.SAXSource;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/*
+ * Implementation of the filter factory interface that utilizes SAX
+ * sources rather than Stream sources. This factory utilizes a
+ * SAX parser factory and XMLReader to read in the stylesheets used
+ * to create the filters for the query pipeline.
+ * The XMLReader has been equipped with an entity resolver
+ * SAXFilterFactoryEntityResolver, it is used to resolve external
+ * entities in two specialized stylesheets, ra-ent.xsl (derived from
+ * ra.xsl) and dec-ent.xsl (derived from dec.xsl).
+ *
+ */
+public class SAXFilterFactoryImpl extends SourceFilterFactory {
+    private EntityResolver entityResolver;
+
+    public SAXFilterFactoryImpl() {
+        super();
+        entityResolver = new SAXFilterFactoryEntityResolver();
+    }
+
+    @Override
+    protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException {
+        SAXSource saxsource = new SAXSource(new InputSource(filenameToURL(xslFileName)));
+        saxsource.setXMLReader(getXMLReader());
+        return saxsource;
+    }
+
+    @Override
+    protected String getRAXsl() {
+        return RAENTXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECENTXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    /*
+     * Entity resolver implementation that is used in the SAXFilterFactory
+     * implementation for handling external entities that appear in two
+     * specialized stylesheets, 'ra-ent.xsl' and 'dec-ent.xsl'. Both of these
+     * stylesheets contain an external entity reference to the top level
+     * stylesheet template, which is stored in a separate file,
+     * 'toptemplate.xsl'.
+     */
+    private static class SAXFilterFactoryEntityResolver implements EntityResolver {
+        public InputSource resolveEntity(String publicid, String sysId) {
+            if (sysId.equals("http://astro.com/stylesheets/toptemplate")) {
+                InputSource retval = new InputSource(TOPTEMPLXSL);
+                retval.setSystemId(filenameToURL(TOPTEMPLXSL));
+                return retval;
+            } else {
+                return null; // use default behavior
+            }
+        }
+    }
+
+    private XMLReader getXMLReader() throws SAXException, ParserConfigurationException {
+        SAXParserFactory pfactory = SAXParserFactory.newInstance();
+        pfactory.setNamespaceAware(true);
+        // pfactory.setValidating(true);
+        XMLReader xmlreader = pfactory.newSAXParser().getXMLReader();
+        // entity resolver is used in stylesheets ra-ent.xsl,
+        // dec-ent.xsl. Other stylehsheets will not use it
+        // since they do not contain ext entities.
+        xmlreader.setEntityResolver(entityResolver);
+        return xmlreader;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/SourceFilterFactory.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+
+import org.xml.sax.SAXException;
+
+public abstract class SourceFilterFactory extends AbstractFilterFactory {
+    @Override
+    protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException {
+        return getFactory().newTransformerHandler(getSource(xslFileName));
+    }
+
+    abstract protected Source getSource(String xslFileName) throws SAXException, ParserConfigurationException, IOException;
+
+    private SAXTransformerFactory getFactory() {
+        return (SAXTransformerFactory) TransformerFactory.newInstance();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/StreamFilterFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RADECXSL;
+import static test.astro.AstroConstants.RAXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
+public class StreamFilterFactoryImpl extends SourceFilterFactory {
+    @Override
+    protected Source getSource(String xslFileName) {
+        return new StreamSource(filenameToURL(xslFileName));
+    }
+
+    @Override
+    protected String getRAXsl() {
+        return RAXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return RADECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/javax/xml/jaxp/libs/test/astro/TemplatesFilterFactoryImpl.java	Thu Apr 23 16:12:16 2015 -0700
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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 the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.astro;
+
+import static jaxp.library.JAXPTestUtilities.filenameToURL;
+import static test.astro.AstroConstants.DECXSL;
+import static test.astro.AstroConstants.RAURIXSL;
+import static test.astro.AstroConstants.STYPEXSL;
+import static test.astro.AstroConstants.TOPTEMPLINCXSL;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TemplatesHandler;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamSource;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/*
+ * Implementation of the filter factory interface that utilizes
+ * a TemplatesHandler and creates Templates from the stylesheets.
+ * The Templates objects are then used to create a TransformerHandler
+ * a.k.a Filter which is returned to the caller.
+ * This factory uses a Uri resolver which is registered with the
+ * Transformer factory.
+ *
+ */
+public class TemplatesFilterFactoryImpl extends AbstractFilterFactory {
+    private final URIResolver uriResolver = new TemplatesFilterFactoryURIResolver();
+
+    @Override
+    protected String getRAXsl() {
+        return RAURIXSL;
+    }
+
+    @Override
+    protected String getDECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getRADECXsl() {
+        return DECXSL;
+    }
+
+    @Override
+    protected String getStellarXsl() {
+        return STYPEXSL;
+    }
+
+    @Override
+    protected TransformerHandler getTransformerHandler(String xslFileName) throws SAXException, ParserConfigurationException,
+            TransformerConfigurationException, IOException {
+        SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance();