src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/SOAPEntityReferenceValidator.java

Fri, 04 Oct 2013 16:21:34 +0100

author
mkos
date
Fri, 04 Oct 2013 16:21:34 +0100
changeset 408
b0610cd08440
parent 368
0989ad8c0860
child 637
9c07ef4934dd
permissions
-rw-r--r--

8025054: Update JAX-WS RI integration to 2.2.9-b130926.1035
Reviewed-by: chegar

ohair@286 1 /*
alanb@368 2 * Copyright (c) 1997, 2012, 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 com.sun.tools.internal.ws.wsdl.parser;
ohair@286 27
ohair@286 28 import com.sun.tools.internal.ws.wsdl.document.schema.SchemaConstants;
ohair@286 29 import com.sun.tools.internal.ws.wsdl.document.schema.SchemaKinds;
ohair@286 30 import com.sun.tools.internal.ws.wsdl.document.soap.SOAPConstants;
ohair@286 31 import com.sun.tools.internal.ws.wsdl.framework.EntityReferenceValidator;
ohair@286 32 import com.sun.tools.internal.ws.wsdl.framework.Kind;
ohair@286 33
ohair@286 34 import javax.xml.namespace.QName;
ohair@286 35 import java.util.HashSet;
ohair@286 36 import java.util.Set;
ohair@286 37
ohair@286 38 /**
ohair@286 39 * An interface implemented by a class that is capable of validating
ohair@286 40 * a QName/Kind pair referring to an external entity.
ohair@286 41 *
ohair@286 42 * @author WS Development Team
ohair@286 43 */
ohair@286 44 public class SOAPEntityReferenceValidator implements EntityReferenceValidator {
ohair@286 45 public SOAPEntityReferenceValidator() {
ohair@286 46 }
ohair@286 47
ohair@286 48 public boolean isValid(Kind kind, QName name) {
ohair@286 49
ohair@286 50 // just let all "xml:" QNames through
ohair@286 51 if (name.getNamespaceURI().equals(Constants.NS_XML))
ohair@286 52 return true;
ohair@286 53
ohair@286 54 if (kind == SchemaKinds.XSD_TYPE) {
ohair@286 55 return _validTypes.contains(name);
ohair@286 56 } else if (kind == SchemaKinds.XSD_ELEMENT) {
ohair@286 57 return _validElements.contains(name);
ohair@286 58 } else if (kind == SchemaKinds.XSD_ATTRIBUTE) {
ohair@286 59 return _validAttributes.contains(name);
ohair@286 60 } else {
ohair@286 61 // no luck
ohair@286 62 return false;
ohair@286 63 }
ohair@286 64 }
ohair@286 65
ohair@286 66 private static final Set _validTypes;
ohair@286 67 private static final Set _validElements;
ohair@286 68 private static final Set _validAttributes;
ohair@286 69
ohair@286 70 static {
ohair@286 71 // add all XML Schema and SOAP types
ohair@286 72 _validTypes = new HashSet();
ohair@286 73 _validTypes.add(SOAPConstants.QNAME_TYPE_ARRAY);
ohair@286 74 _validTypes.add(SchemaConstants.QNAME_TYPE_STRING);
ohair@286 75 _validTypes.add(SchemaConstants.QNAME_TYPE_NORMALIZED_STRING);
ohair@286 76 _validTypes.add(SchemaConstants.QNAME_TYPE_TOKEN);
ohair@286 77 _validTypes.add(SchemaConstants.QNAME_TYPE_BYTE);
ohair@286 78 _validTypes.add(SchemaConstants.QNAME_TYPE_UNSIGNED_BYTE);
ohair@286 79 _validTypes.add(SchemaConstants.QNAME_TYPE_BASE64_BINARY);
ohair@286 80 _validTypes.add(SchemaConstants.QNAME_TYPE_HEX_BINARY);
ohair@286 81 _validTypes.add(SchemaConstants.QNAME_TYPE_INTEGER);
ohair@286 82 _validTypes.add(SchemaConstants.QNAME_TYPE_POSITIVE_INTEGER);
ohair@286 83 _validTypes.add(SchemaConstants.QNAME_TYPE_NEGATIVE_INTEGER);
ohair@286 84 _validTypes.add(SchemaConstants.QNAME_TYPE_NON_NEGATIVE_INTEGER);
ohair@286 85 _validTypes.add(SchemaConstants.QNAME_TYPE_NON_POSITIVE_INTEGER);
ohair@286 86 _validTypes.add(SchemaConstants.QNAME_TYPE_INT);
ohair@286 87 _validTypes.add(SchemaConstants.QNAME_TYPE_UNSIGNED_INT);
ohair@286 88 _validTypes.add(SchemaConstants.QNAME_TYPE_LONG);
ohair@286 89 _validTypes.add(SchemaConstants.QNAME_TYPE_UNSIGNED_LONG);
ohair@286 90 _validTypes.add(SchemaConstants.QNAME_TYPE_SHORT);
ohair@286 91 _validTypes.add(SchemaConstants.QNAME_TYPE_UNSIGNED_SHORT);
ohair@286 92 _validTypes.add(SchemaConstants.QNAME_TYPE_DECIMAL);
ohair@286 93 _validTypes.add(SchemaConstants.QNAME_TYPE_FLOAT);
ohair@286 94 _validTypes.add(SchemaConstants.QNAME_TYPE_DOUBLE);
ohair@286 95 _validTypes.add(SchemaConstants.QNAME_TYPE_BOOLEAN);
ohair@286 96 _validTypes.add(SchemaConstants.QNAME_TYPE_TIME);
ohair@286 97 _validTypes.add(SchemaConstants.QNAME_TYPE_DATE_TIME);
ohair@286 98 _validTypes.add(SchemaConstants.QNAME_TYPE_DURATION);
ohair@286 99 _validTypes.add(SchemaConstants.QNAME_TYPE_DATE);
ohair@286 100 _validTypes.add(SchemaConstants.QNAME_TYPE_G_MONTH);
ohair@286 101 _validTypes.add(SchemaConstants.QNAME_TYPE_G_YEAR);
ohair@286 102 _validTypes.add(SchemaConstants.QNAME_TYPE_G_YEAR_MONTH);
ohair@286 103 _validTypes.add(SchemaConstants.QNAME_TYPE_G_DAY);
ohair@286 104 _validTypes.add(SchemaConstants.QNAME_TYPE_G_MONTH_DAY);
ohair@286 105 _validTypes.add(SchemaConstants.QNAME_TYPE_NAME);
ohair@286 106 _validTypes.add(SchemaConstants.QNAME_TYPE_QNAME);
ohair@286 107 _validTypes.add(SchemaConstants.QNAME_TYPE_NCNAME);
ohair@286 108 _validTypes.add(SchemaConstants.QNAME_TYPE_ANY_URI);
ohair@286 109 _validTypes.add(SchemaConstants.QNAME_TYPE_ID);
ohair@286 110 _validTypes.add(SchemaConstants.QNAME_TYPE_IDREF);
ohair@286 111 _validTypes.add(SchemaConstants.QNAME_TYPE_IDREFS);
ohair@286 112 _validTypes.add(SchemaConstants.QNAME_TYPE_ENTITY);
ohair@286 113 _validTypes.add(SchemaConstants.QNAME_TYPE_ENTITIES);
ohair@286 114 _validTypes.add(SchemaConstants.QNAME_TYPE_NOTATION);
ohair@286 115 _validTypes.add(SchemaConstants.QNAME_TYPE_NMTOKEN);
ohair@286 116 _validTypes.add(SchemaConstants.QNAME_TYPE_NMTOKENS);
ohair@286 117 _validTypes.add(SchemaConstants.QNAME_TYPE_URTYPE);
ohair@286 118 _validTypes.add(SchemaConstants.QNAME_TYPE_SIMPLE_URTYPE);
ohair@286 119 _validTypes.add(SOAPConstants.QNAME_TYPE_STRING);
ohair@286 120 _validTypes.add(SOAPConstants.QNAME_TYPE_NORMALIZED_STRING);
ohair@286 121 _validTypes.add(SOAPConstants.QNAME_TYPE_TOKEN);
ohair@286 122 _validTypes.add(SOAPConstants.QNAME_TYPE_BYTE);
ohair@286 123 _validTypes.add(SOAPConstants.QNAME_TYPE_UNSIGNED_BYTE);
ohair@286 124 _validTypes.add(SOAPConstants.QNAME_TYPE_BASE64_BINARY);
ohair@286 125 _validTypes.add(SOAPConstants.QNAME_TYPE_HEX_BINARY);
ohair@286 126 _validTypes.add(SOAPConstants.QNAME_TYPE_INTEGER);
ohair@286 127 _validTypes.add(SOAPConstants.QNAME_TYPE_POSITIVE_INTEGER);
ohair@286 128 _validTypes.add(SOAPConstants.QNAME_TYPE_NEGATIVE_INTEGER);
ohair@286 129 _validTypes.add(SOAPConstants.QNAME_TYPE_NON_NEGATIVE_INTEGER);
ohair@286 130 _validTypes.add(SOAPConstants.QNAME_TYPE_NON_POSITIVE_INTEGER);
ohair@286 131 _validTypes.add(SOAPConstants.QNAME_TYPE_INT);
ohair@286 132 _validTypes.add(SOAPConstants.QNAME_TYPE_UNSIGNED_INT);
ohair@286 133 _validTypes.add(SOAPConstants.QNAME_TYPE_LONG);
ohair@286 134 _validTypes.add(SOAPConstants.QNAME_TYPE_UNSIGNED_LONG);
ohair@286 135 _validTypes.add(SOAPConstants.QNAME_TYPE_SHORT);
ohair@286 136 _validTypes.add(SOAPConstants.QNAME_TYPE_UNSIGNED_SHORT);
ohair@286 137 _validTypes.add(SOAPConstants.QNAME_TYPE_DECIMAL);
ohair@286 138 _validTypes.add(SOAPConstants.QNAME_TYPE_FLOAT);
ohair@286 139 _validTypes.add(SOAPConstants.QNAME_TYPE_DOUBLE);
ohair@286 140 _validTypes.add(SOAPConstants.QNAME_TYPE_BOOLEAN);
ohair@286 141 _validTypes.add(SOAPConstants.QNAME_TYPE_TIME);
ohair@286 142 _validTypes.add(SOAPConstants.QNAME_TYPE_DATE_TIME);
ohair@286 143 _validTypes.add(SOAPConstants.QNAME_TYPE_DURATION);
ohair@286 144 _validTypes.add(SOAPConstants.QNAME_TYPE_DATE);
ohair@286 145 _validTypes.add(SOAPConstants.QNAME_TYPE_G_MONTH);
ohair@286 146 _validTypes.add(SOAPConstants.QNAME_TYPE_G_YEAR);
ohair@286 147 _validTypes.add(SOAPConstants.QNAME_TYPE_G_YEAR_MONTH);
ohair@286 148 _validTypes.add(SOAPConstants.QNAME_TYPE_G_DAY);
ohair@286 149 _validTypes.add(SOAPConstants.QNAME_TYPE_G_MONTH_DAY);
ohair@286 150 _validTypes.add(SOAPConstants.QNAME_TYPE_NAME);
ohair@286 151 _validTypes.add(SOAPConstants.QNAME_TYPE_QNAME);
ohair@286 152 _validTypes.add(SOAPConstants.QNAME_TYPE_NCNAME);
ohair@286 153 _validTypes.add(SOAPConstants.QNAME_TYPE_ANY_URI);
ohair@286 154 _validTypes.add(SOAPConstants.QNAME_TYPE_ID);
ohair@286 155 _validTypes.add(SOAPConstants.QNAME_TYPE_IDREF);
ohair@286 156 _validTypes.add(SOAPConstants.QNAME_TYPE_IDREFS);
ohair@286 157 _validTypes.add(SOAPConstants.QNAME_TYPE_ENTITY);
ohair@286 158 _validTypes.add(SOAPConstants.QNAME_TYPE_ENTITIES);
ohair@286 159 _validTypes.add(SOAPConstants.QNAME_TYPE_NOTATION);
ohair@286 160 _validTypes.add(SOAPConstants.QNAME_TYPE_NMTOKEN);
ohair@286 161 _validTypes.add(SOAPConstants.QNAME_TYPE_NMTOKENS);
ohair@286 162 _validTypes.add(SOAPConstants.QNAME_TYPE_BASE64);
ohair@286 163 // New types 12/3/02
ohair@286 164 _validTypes.add(SchemaConstants.QNAME_TYPE_LANGUAGE);
ohair@286 165
ohair@286 166 // add all SOAP encoding elements
ohair@286 167 _validElements = new HashSet();
ohair@286 168 _validElements.add(SOAPConstants.QNAME_ELEMENT_STRING);
ohair@286 169 _validElements.add(SOAPConstants.QNAME_ELEMENT_NORMALIZED_STRING);
ohair@286 170 _validElements.add(SOAPConstants.QNAME_ELEMENT_TOKEN);
ohair@286 171 _validElements.add(SOAPConstants.QNAME_ELEMENT_BYTE);
ohair@286 172 _validElements.add(SOAPConstants.QNAME_ELEMENT_UNSIGNED_BYTE);
ohair@286 173 _validElements.add(SOAPConstants.QNAME_ELEMENT_BASE64_BINARY);
ohair@286 174 _validElements.add(SOAPConstants.QNAME_ELEMENT_HEX_BINARY);
ohair@286 175 _validElements.add(SOAPConstants.QNAME_ELEMENT_INTEGER);
ohair@286 176 _validElements.add(SOAPConstants.QNAME_ELEMENT_POSITIVE_INTEGER);
ohair@286 177 _validElements.add(SOAPConstants.QNAME_ELEMENT_NEGATIVE_INTEGER);
ohair@286 178 _validElements.add(SOAPConstants.QNAME_ELEMENT_NON_NEGATIVE_INTEGER);
ohair@286 179 _validElements.add(SOAPConstants.QNAME_ELEMENT_NON_POSITIVE_INTEGER);
ohair@286 180 _validElements.add(SOAPConstants.QNAME_ELEMENT_INT);
ohair@286 181 _validElements.add(SOAPConstants.QNAME_ELEMENT_UNSIGNED_INT);
ohair@286 182 _validElements.add(SOAPConstants.QNAME_ELEMENT_LONG);
ohair@286 183 _validElements.add(SOAPConstants.QNAME_ELEMENT_UNSIGNED_LONG);
ohair@286 184 _validElements.add(SOAPConstants.QNAME_ELEMENT_SHORT);
ohair@286 185 _validElements.add(SOAPConstants.QNAME_ELEMENT_UNSIGNED_SHORT);
ohair@286 186 _validElements.add(SOAPConstants.QNAME_ELEMENT_DECIMAL);
ohair@286 187 _validElements.add(SOAPConstants.QNAME_ELEMENT_FLOAT);
ohair@286 188 _validElements.add(SOAPConstants.QNAME_ELEMENT_DOUBLE);
ohair@286 189 _validElements.add(SOAPConstants.QNAME_ELEMENT_BOOLEAN);
ohair@286 190 _validElements.add(SOAPConstants.QNAME_ELEMENT_TIME);
ohair@286 191 _validElements.add(SOAPConstants.QNAME_ELEMENT_DATE_TIME);
ohair@286 192 _validElements.add(SOAPConstants.QNAME_ELEMENT_DURATION);
ohair@286 193 _validElements.add(SOAPConstants.QNAME_ELEMENT_DATE);
ohair@286 194 _validElements.add(SOAPConstants.QNAME_ELEMENT_G_MONTH);
ohair@286 195 _validElements.add(SOAPConstants.QNAME_ELEMENT_G_YEAR);
ohair@286 196 _validElements.add(SOAPConstants.QNAME_ELEMENT_G_YEAR_MONTH);
ohair@286 197 _validElements.add(SOAPConstants.QNAME_ELEMENT_G_DAY);
ohair@286 198 _validElements.add(SOAPConstants.QNAME_ELEMENT_G_MONTH_DAY);
ohair@286 199 _validElements.add(SOAPConstants.QNAME_ELEMENT_NAME);
ohair@286 200 _validElements.add(SOAPConstants.QNAME_ELEMENT_QNAME);
ohair@286 201 _validElements.add(SOAPConstants.QNAME_ELEMENT_NCNAME);
ohair@286 202 _validElements.add(SOAPConstants.QNAME_ELEMENT_ANY_URI);
ohair@286 203 _validElements.add(SOAPConstants.QNAME_ELEMENT_ID);
ohair@286 204 _validElements.add(SOAPConstants.QNAME_ELEMENT_IDREF);
ohair@286 205 _validElements.add(SOAPConstants.QNAME_ELEMENT_IDREFS);
ohair@286 206 _validElements.add(SOAPConstants.QNAME_ELEMENT_ENTITY);
ohair@286 207 _validElements.add(SOAPConstants.QNAME_ELEMENT_ENTITIES);
ohair@286 208 _validElements.add(SOAPConstants.QNAME_ELEMENT_NOTATION);
ohair@286 209 _validElements.add(SOAPConstants.QNAME_ELEMENT_NMTOKEN);
ohair@286 210 _validElements.add(SOAPConstants.QNAME_ELEMENT_NMTOKENS);
ohair@286 211
ohair@286 212 _validAttributes = new HashSet();
ohair@286 213 _validAttributes.add(SOAPConstants.QNAME_ATTR_ARRAY_TYPE);
ohair@286 214 _validAttributes.add(SOAPConstants.QNAME_ATTR_OFFSET);
ohair@286 215 _validAttributes.add(SOAPConstants.QNAME_ATTR_POSITION);
ohair@286 216 }
ohair@286 217 }

mercurial