1320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson/*
2320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one or more
3320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * contributor license agreements.  See the NOTICE file distributed with
4320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * this work for additional information regarding copyright ownership.
5320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0
6320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * (the "License"); you may not use this file except in compliance with
7320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * the License.  You may obtain a copy of the License at
8320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson *
9320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
10320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson *
11320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Unless required by applicable law or agreed to in writing, software
12320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
13320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * See the License for the specific language governing permissions and
15320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * limitations under the License.
16320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */
17320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
18320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson//  $Id: Result.java 446598 2006-09-15 12:55:40Z jeremias $
19320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
20320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilsonpackage javax.xml.transform;
21320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
22320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson/**
23320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>An object that implements this interface contains the information
24320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * needed to build a transformation result tree.</p>
25f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
26320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @author <a href="Jeff.Suttor@Sun.com">Jeff Suttor</a>
27320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */
28320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilsonpublic interface Result {
29320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
30320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    /**
31320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * The name of the processing instruction that is sent if the
32320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * result tree disables output escaping.
33320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
34320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * <p>Normally, result tree serialization escapes & and < (and
35320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * possibly other characters) when outputting text nodes.
36320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * This ensures that the output is well-formed XML. However,
37320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * it is sometimes convenient to be able to produce output that is
38320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * almost, but not quite well-formed XML; for example,
39320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * the output may include ill-formed sections that will
40320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * be transformed into well-formed XML by a subsequent non-XML aware
41320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * process. If a processing instruction is sent with this name,
42320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * serialization should be output without any escaping. </p>
43320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
44320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * <p>Result DOM trees may also have PI_DISABLE_OUTPUT_ESCAPING and
45320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * PI_ENABLE_OUTPUT_ESCAPING inserted into the tree.</p>
46320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
47320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * @see <a href="http://www.w3.org/TR/xslt#disable-output-escaping">disable-output-escaping in XSLT Specification</a>
48320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     */
49320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    public static final String PI_DISABLE_OUTPUT_ESCAPING =
50320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson        "javax.xml.transform.disable-output-escaping";
51320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
52320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    /**
53320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * The name of the processing instruction that is sent
54320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * if the result tree enables output escaping at some point after having
55320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * received a PI_DISABLE_OUTPUT_ESCAPING processing instruction.
56320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
57320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * @see <a href="http://www.w3.org/TR/xslt#disable-output-escaping">disable-output-escaping in XSLT Specification</a>
58320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     */
59320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    public static final String PI_ENABLE_OUTPUT_ESCAPING =
60320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson        "javax.xml.transform.enable-output-escaping";
61320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
62320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    /**
63320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * Set the system identifier for this Result.
64320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
65320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * <p>If the Result is not to be written to a file, the system identifier is optional.
66320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * The application may still want to provide one, however, for use in error messages
67320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * and warnings, or to resolve relative output identifiers.</p>
68320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
69320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * @param systemId The system identifier as a URI string.
70320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     */
71320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    public void setSystemId(String systemId);
72320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson
73320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    /**
74320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * Get the system identifier that was set with setSystemId.
75320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     *
76320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * @return The system identifier that was set with setSystemId,
77320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     * or null if setSystemId was not called.
78320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson     */
79320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson    public String getSystemId();
80320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson}
81