1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 // $Id: OutputKeys.java 569994 2007-08-27 04:28:57Z mrglavas $
19 
20 package javax.xml.transform;
21 
22 /**
23  * Provides string constants that can be used to set
24  * output properties for a Transformer, or to retrieve
25  * output properties from a Transformer or Templates object.
26  * <p>All the fields in this class are read-only.</p>
27  *
28  * @see <a href="http://www.w3.org/TR/xslt#output">
29  *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
30  */
31 public class OutputKeys {
32 
33     /**
34      * Default constructor is private on purpose.  This class is
35      * only for static variable access, and should never be constructed.
36      */
OutputKeys()37     private OutputKeys() { }
38 
39     /**
40      * method = "xml" | "html" | "text" | <var>expanded name</var>.
41      *
42      * <p>The value of the method property identifies the overall method that
43      * should be used for outputting the result tree.  Other non-namespaced
44      * values may be used, such as "xhtml", but, if accepted, the handling
45      * of such values is implementation defined.  If any of the method values
46      * are not accepted and are not namespace qualified,
47      * then {@link javax.xml.transform.Transformer#setOutputProperty}
48      * or {@link javax.xml.transform.Transformer#setOutputProperties} will
49      * throw a {@link java.lang.IllegalArgumentException}.</p>
50      *
51      * @see <a href="http://www.w3.org/TR/xslt#output">
52      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
53      */
54     public static final String METHOD = "method";
55 
56     /**
57      * version = <var>nmtoken</var>.
58      *
59      * <p><code>version</code> specifies the version of the output
60      * method.</p>
61      * <p>When the output method is "xml", the version value specifies the
62      * version of XML to be used for outputting the result tree. The default
63      * value for the xml output method is 1.0. When the output method is
64      * "html", the version value indicates the version of the HTML.
65      * The default value for the xml output method is 4.0, which specifies
66      * that the result should be output as HTML conforming to the HTML 4.0
67      * Recommendation [HTML].  If the output method is "text", the version
68      * property is ignored.</p>
69      * @see <a href="http://www.w3.org/TR/xslt#output">
70      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
71      */
72     public static final String VERSION = "version";
73 
74     /**
75      * encoding = <var>string</var>.
76      *
77      * <p><code>encoding</code> specifies the preferred character
78      * encoding that the Transformer should use to encode sequences of
79      * characters as sequences of bytes. The value of the encoding property should be
80      * treated case-insensitively. The value must only contain characters in
81      * the range #x21 to #x7E (i.e., printable ASCII characters). The value
82      * should either be a <code>charset</code> registered with the Internet
83      * Assigned Numbers Authority <a href="#IANA">[IANA]</a>,
84      * <a href="#RFC2278">[RFC2278]</a> or start with <code>X-</code>.</p>
85      * @see <a href="http://www.w3.org/TR/xslt#output">
86      * section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
87      */
88     public static final String ENCODING = "encoding";
89 
90     /**
91      * omit-xml-declaration = "yes" | "no".
92      *
93      * <p><code>omit-xml-declaration</code> specifies whether the XSLT
94      * processor should output an XML declaration; the value must be
95      * <code>yes</code> or <code>no</code>.</p>
96      * @see <a href="http://www.w3.org/TR/xslt#output">
97      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
98      */
99     public static final String OMIT_XML_DECLARATION = "omit-xml-declaration";
100 
101     /**
102      * standalone = "yes" | "no".
103      *
104      * <p><code>standalone</code> specifies whether the Transformer
105      * should output a standalone document declaration; the value must be
106      * <code>yes</code> or <code>no</code>.</p>
107      * @see <a href="http://www.w3.org/TR/xslt#output">
108      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
109      */
110     public static final String STANDALONE = "standalone";
111 
112     /**
113      * doctype-public = <var>string</var>.
114      * <p>See the documentation for the {@link #DOCTYPE_SYSTEM} property
115      * for a description of what the value of the key should be.</p>
116      *
117      * @see <a href="http://www.w3.org/TR/xslt#output">
118      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
119      */
120     public static final String DOCTYPE_PUBLIC = "doctype-public";
121 
122     /**
123      * doctype-system = <var>string</var>.
124      * <p><code>doctype-system</code> specifies the system identifier
125      * to be used in the document type declaration.</p>
126      * <p>If the doctype-system property is specified, the xml output method
127      * should output a document type declaration immediately before the first
128      * element. The name following &lt;!DOCTYPE should be the name of the first
129      * element. If doctype-public property is also specified, then the xml
130      * output method should output PUBLIC followed by the public identifier
131      * and then the system identifier; otherwise, it should output SYSTEM
132      * followed by the system identifier. The internal subset should be empty.
133      * The value of the doctype-public property should be ignored unless the doctype-system
134      * property is specified.</p>
135      * <p>If the doctype-public or doctype-system properties are specified,
136      * then the html output method should output a document type declaration
137      * immediately before the first element. The name following &lt;!DOCTYPE
138      * should be HTML or html. If the doctype-public property is specified,
139      * then the output method should output PUBLIC followed by the specified
140      * public identifier; if the doctype-system property is also specified,
141      * it should also output the specified system identifier following the
142      * public identifier. If the doctype-system property is specified but
143      * the doctype-public property is not specified, then the output method
144      * should output SYSTEM followed by the specified system identifier.</p>
145      *
146      * <p><code>doctype-system</code> specifies the system identifier
147      * to be used in the document type declaration.</p>
148      * @see <a href="http://www.w3.org/TR/xslt#output">
149      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
150      */
151     public static final String DOCTYPE_SYSTEM = "doctype-system";
152 
153     /**
154      * cdata-section-elements = <var>expanded names</var>.
155      *
156      * <p><code>cdata-section-elements</code> specifies a whitespace delimited
157      * list of the names of elements whose text node children should be output
158      * using CDATA sections. Note that these names must use the format
159      * described in the section Qualfied Name Representation in
160      * {@link javax.xml.transform}.</p>
161      *
162      * @see <a href="http://www.w3.org/TR/xslt#output">
163      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation.</a>
164      */
165     public static final String CDATA_SECTION_ELEMENTS =
166         "cdata-section-elements";
167 
168     /**
169      * indent = "yes" | "no".
170      *
171      * <p><code>indent</code> specifies whether the Transformer may
172      * add additional whitespace when outputting the result tree; the value
173      * must be <code>yes</code> or <code>no</code>.  </p>
174      * @see <a href="http://www.w3.org/TR/xslt#output">
175      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
176      */
177     public static final String INDENT = "indent";
178 
179     /**
180      * media-type = <var>string</var>.
181      *
182      * <p><code>media-type</code> specifies the media type (MIME
183      * content type) of the data that results from outputting the result
184      * tree. The <code>charset</code> parameter should not be specified
185      * explicitly; instead, when the top-level media type is
186      * <code>text</code>, a <code>charset</code> parameter should be added
187      * according to the character encoding actually used by the output
188      * method.  </p>
189      * @see <a href="http://www.w3.org/TR/xslt#output">
190      *  section 16 of the XSL Transformations (XSLT) W3C Recommendation</a>
191      */
192     public static final String MEDIA_TYPE = "media-type";
193 }
194