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

Thu, 31 Aug 2017 15:18:52 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:18:52 +0800
changeset 637
9c07ef4934dd
parent 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

merge

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

mercurial