1 /*
   2  * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.xml.transform;
  27 
  28 /**
  29  * Provides string constants that can be used to set
  30  * output properties for a Transformer, or to retrieve
  31  * output properties from a Transformer or Templates object.
  32  * <p>All the fields in this class are read-only.</p>
  33  *
  34  * @see <a href="http://www.w3.org/TR/xslt#output">
  35  *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
  36  * @since 1.4
  37  */
  38 public class OutputKeys {
  39 
  40     /**
  41      * Default constructor is private on purpose.  This class is
  42      * only for static variable access, and should never be constructed.
  43      */
  44     private OutputKeys() { }
  45 
  46     /**
  47      * method = "xml" | "html" | "text" | <var>expanded name</var>.
  48      *
  49      * <p>The value of the method property identifies the overall method that
  50      * should be used for outputting the result tree.  Other non-namespaced
  51      * values may be used, such as "xhtml", but, if accepted, the handling
  52      * of such values is implementation defined.  If any of the method values
  53      * are not accepted and are not namespace qualified,
  54      * then {@link javax.xml.transform.Transformer#setOutputProperty}
  55      * or {@link javax.xml.transform.Transformer#setOutputProperties} will
  56      * throw a {@link java.lang.IllegalArgumentException}.</p>
  57      *
  58      * @see <a href="http://www.w3.org/TR/xslt#output">
  59      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
  60      */
  61     public static final String METHOD = "method";
  62 
  63     /**
  64      * version = <var>nmtoken</var>.
  65      *
  66      * <p><code>version</code> specifies the version of the output
  67      * method.</p>
  68      * <p>When the output method is "xml", the version value specifies the
  69      * version of XML to be used for outputting the result tree. The default
  70      * value for the xml output method is 1.0. When the output method is
  71      * "html", the version value indicates the version of the HTML.
  72      * The default value for the xml output method is 4.0, which specifies
  73      * that the result should be output as HTML conforming to the HTML 4.0
  74      * Recommendation [HTML].  If the output method is "text", the version
  75      * property is ignored.</p>
  76      * @see <a href="http://www.w3.org/TR/xslt#output">
  77      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
  78      */
  79     public static final String VERSION = "version";
  80 
  81     /**
  82      * encoding = <var>string</var>.
  83      *
  84      * <p><code>encoding</code> specifies the preferred character
  85      * encoding that the Transformer should use to encode sequences of
  86      * characters as sequences of bytes. The value of the encoding property should be
  87      * treated case-insensitively. The value must only contain characters in
  88      * the range #x21 to #x7E (i.e., printable ASCII characters). The value
  89      * should either be a <code>charset</code> registered with the Internet
  90      * Assigned Numbers Authority <a href="http://www.iana.org/">[IANA]</a>,
  91      * <a href="http://www.ietf.org/rfc/rfc2278.txt">[RFC2278]</a>
  92      * or start with <code>X-</code>.</p>
  93      * @see <a href="http://www.w3.org/TR/xslt#output">
  94      * section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
  95      */
  96     public static final String ENCODING = "encoding";
  97 
  98     /**
  99      * omit-xml-declaration = "yes" | "no".
 100      *
 101      * <p><code>omit-xml-declaration</code> specifies whether the XSLT
 102      * processor should output an XML declaration; the value must be
 103      * <code>yes</code> or <code>no</code>.</p>
 104      * @see <a href="http://www.w3.org/TR/xslt#output">
 105      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 106      */
 107     public static final String OMIT_XML_DECLARATION = "omit-xml-declaration";
 108 
 109     /**
 110      * standalone = "yes" | "no".
 111      *
 112      * <p><code>standalone</code> specifies whether the Transformer
 113      * should output a standalone document declaration; the value must be
 114      * <code>yes</code> or <code>no</code>.</p>
 115      * @see <a href="http://www.w3.org/TR/xslt#output">
 116      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 117      */
 118     public static final String STANDALONE = "standalone";
 119 
 120     /**
 121      * doctype-public = <var>string</var>.
 122      * <p>See the documentation for the {@link #DOCTYPE_SYSTEM} property
 123      * for a description of what the value of the key should be.</p>
 124      *
 125      * @see <a href="http://www.w3.org/TR/xslt#output">
 126      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 127      */
 128     public static final String DOCTYPE_PUBLIC = "doctype-public";
 129 
 130     /**
 131      * doctype-system = <var>string</var>.
 132      * <p><code>doctype-system</code> specifies the system identifier
 133      * to be used in the document type declaration.</p>
 134      * <p>If the doctype-system property is specified, the xml output method
 135      * should output a document type declaration immediately before the first
 136      * element. The name following &lt;!DOCTYPE should be the name of the first
 137      * element. If doctype-public property is also specified, then the xml
 138      * output method should output PUBLIC followed by the public identifier
 139      * and then the system identifier; otherwise, it should output SYSTEM
 140      * followed by the system identifier. The internal subset should be empty.
 141      * The value of the doctype-public property should be ignored unless the doctype-system
 142      * property is specified.</p>
 143      * <p>If the doctype-public or doctype-system properties are specified,
 144      * then the html output method should output a document type declaration
 145      * immediately before the first element. The name following &lt;!DOCTYPE
 146      * should be HTML or html. If the doctype-public property is specified,
 147      * then the output method should output PUBLIC followed by the specified
 148      * public identifier; if the doctype-system property is also specified,
 149      * it should also output the specified system identifier following the
 150      * public identifier. If the doctype-system property is specified but
 151      * the doctype-public property is not specified, then the output method
 152      * should output SYSTEM followed by the specified system identifier.</p>
 153      *
 154      * <p><code>doctype-system</code> specifies the system identifier
 155      * to be used in the document type declaration.</p>
 156      * @see <a href="http://www.w3.org/TR/xslt#output">
 157      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 158      */
 159     public static final String DOCTYPE_SYSTEM = "doctype-system";
 160 
 161     /**
 162      * cdata-section-elements = <var>expanded names</var>.
 163      *
 164      * <p><code>cdata-section-elements</code> specifies a whitespace delimited
 165      * list of the names of elements whose text node children should be output
 166      * using CDATA sections. Note that these names must use the format
 167      * described in the section Qualfied Name Representation in
 168      * {@link javax.xml.transform}.</p>
 169      *
 170      * @see <a href="http://www.w3.org/TR/xslt#output">
 171      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation.</a>
 172      */
 173     public static final String CDATA_SECTION_ELEMENTS =
 174         "cdata-section-elements";
 175 
 176     /**
 177      * indent = "yes" | "no".
 178      *
 179      * <p><code>indent</code> specifies whether the Transformer may
 180      * add additional whitespace when outputting the result tree; the value
 181      * must be <code>yes</code> or <code>no</code>.  </p>
 182      * @see <a href="http://www.w3.org/TR/xslt#output">
 183      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 184      */
 185     public static final String INDENT = "indent";
 186 
 187     /**
 188      * media-type = <var>string</var>.
 189      *
 190      * <p><code>media-type</code> specifies the media type (MIME
 191      * content type) of the data that results from outputting the result
 192      * tree. The <code>charset</code> parameter should not be specified
 193      * explicitly; instead, when the top-level media type is
 194      * <code>text</code>, a <code>charset</code> parameter should be added
 195      * according to the character encoding actually used by the output
 196      * method.  </p>
 197      * @see <a href="http://www.w3.org/TR/xslt#output">s
 198      * ection 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
 199      */
 200     public static final String MEDIA_TYPE = "media-type";
 201 }