src/share/jaxws_classes/javax/xml/bind/SchemaOutputResolver.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 397
b99d7e355d4b
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

ohair@286 1 /*
ohair@286 2 * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
ohair@286 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ohair@286 4 *
ohair@286 5 * This code is free software; you can redistribute it and/or modify it
ohair@286 6 * under the terms of the GNU General Public License version 2 only, as
ohair@286 7 * published by the Free Software Foundation. Oracle designates this
ohair@286 8 * particular file as subject to the "Classpath" exception as provided
ohair@286 9 * by Oracle in the LICENSE file that accompanied this code.
ohair@286 10 *
ohair@286 11 * This code is distributed in the hope that it will be useful, but WITHOUT
ohair@286 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ohair@286 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ohair@286 14 * version 2 for more details (a copy is included in the LICENSE file that
ohair@286 15 * accompanied this code).
ohair@286 16 *
ohair@286 17 * You should have received a copy of the GNU General Public License version
ohair@286 18 * 2 along with this work; if not, write to the Free Software Foundation,
ohair@286 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ohair@286 20 *
ohair@286 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@286 22 * or visit www.oracle.com if you need additional information or have any
ohair@286 23 * questions.
ohair@286 24 */
ohair@286 25
ohair@286 26 package javax.xml.bind;
ohair@286 27
ohair@286 28 import javax.xml.transform.Result;
ohair@286 29 import java.io.IOException;
ohair@286 30
ohair@286 31 /**
ohair@286 32 * Controls where a JAXB implementation puts the generates
ohair@286 33 * schema files.
ohair@286 34 *
ohair@286 35 * <p>
ohair@286 36 * An implementation of this abstract class has to be provided by the calling
ohair@286 37 * application to generate schemas.
ohair@286 38 *
ohair@286 39 * <p>
ohair@286 40 * This is a class, not an interface so as to allow future versions to evolve
ohair@286 41 * without breaking the compatibility.
ohair@286 42 *
ohair@286 43 * @author
ohair@286 44 * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
ohair@286 45 */
ohair@286 46 public abstract class SchemaOutputResolver {
ohair@286 47 /**
ohair@286 48 * Decides where the schema file (of the given namespace URI)
ohair@286 49 * will be written, and return it as a {@link Result} object.
ohair@286 50 *
ohair@286 51 * <p>
ohair@286 52 * This method is called only once for any given namespace.
ohair@286 53 * IOW, all the components in one namespace is always written
ohair@286 54 * into the same schema document.
ohair@286 55 *
ohair@286 56 * @param namespaceUri
ohair@286 57 * The namespace URI that the schema declares.
ohair@286 58 * Can be the empty string, but never be null.
ohair@286 59 * @param suggestedFileName
ohair@286 60 * A JAXB implementation generates an unique file name (like "schema1.xsd")
ohair@286 61 * for the convenience of the callee. This name can be
ohair@286 62 * used for the file name of the schema, or the callee can just
ohair@286 63 * ignore this name and come up with its own name.
ohair@286 64 * This is just a hint.
ohair@286 65 *
ohair@286 66 * @return
ohair@286 67 * a {@link Result} object that encapsulates the actual destination
ohair@286 68 * of the schema.
ohair@286 69 *
ohair@286 70 * If the {@link Result} object has a system ID, it must be an
ohair@286 71 * absolute system ID. Those system IDs are relativized by the caller and used
ohair@286 72 * for &lt;xs:import> statements.
ohair@286 73 *
ohair@286 74 * If the {@link Result} object does not have a system ID, a schema
ohair@286 75 * for the namespace URI is generated but it won't be explicitly
ohair@286 76 * &lt;xs:import>ed from other schemas.
ohair@286 77 *
ohair@286 78 * If {@code null} is returned, the schema generation for this
ohair@286 79 * namespace URI will be skipped.
ohair@286 80 */
ohair@286 81 public abstract Result createOutput( String namespaceUri, String suggestedFileName ) throws IOException;
ohair@286 82 }

mercurial