|
Axis 2 example source code file (WSDLToAxisServiceBuilder.java)
The Axis 2 WSDLToAxisServiceBuilder.java source code/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.axis2.description; import org.apache.axis2.AxisFault; import org.apache.axis2.namespace.Constants; import org.apache.neethi.PolicyRegistry; import org.apache.ws.commons.schema.XmlSchema; import org.apache.ws.commons.schema.XmlSchemaCollection; import org.apache.ws.commons.schema.resolver.URIResolver; import org.w3c.dom.Element; import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public abstract class WSDLToAxisServiceBuilder { protected static final String XMLSCHEMA_NAMESPACE_URI = Constants.URI_2001_SCHEMA_XSD; protected static final String XMLSCHEMA_NAMESPACE_PREFIX = "xs"; protected static final String XML_SCHEMA_LOCAL_NAME = "schema"; protected static final String XML_SCHEMA_SEQUENCE_LOCAL_NAME = "sequence"; protected static final String XML_SCHEMA_COMPLEX_TYPE_LOCAL_NAME = "complexType"; protected static final String XML_SCHEMA_ELEMENT_LOCAL_NAME = "element"; protected static final String XML_SCHEMA_IMPORT_LOCAL_NAME = "import"; protected static final String XSD_NAME = "name"; protected static final String XSD_TARGETNAMESPACE = "targetNamespace"; protected static final String XMLNS_AXIS2WRAPPED = "xmlns:axis2wrapped"; protected static final String AXIS2WRAPPED = "axis2wrapped"; protected static final String XSD_TYPE = "type"; protected static final String XSD_REF = "ref"; protected static int nsCount = 0; protected Map resolvedRpcWrappedElementMap = new HashMap(); protected static final String XSD_ELEMENT_FORM_DEFAULT = "elementFormDefault"; protected static final String XSD_UNQUALIFIED = "unqualified"; protected InputStream in; protected AxisService axisService; protected PolicyRegistry registry; protected QName serviceName; protected boolean isServerSide = true; protected String style = null; private URIResolver customResolver; private String baseUri = null; protected static final String TYPES = "Types"; // keeping whether builder is used in codegen or not protected boolean isCodegen; protected WSDLToAxisServiceBuilder() { } public WSDLToAxisServiceBuilder(InputStream in, QName serviceName) { this.in = in; this.serviceName = serviceName; this.axisService = new AxisService(); setPolicyRegistryFromService(axisService); } public WSDLToAxisServiceBuilder(InputStream in, AxisService axisService) { this.in = in; this.axisService = axisService; setPolicyRegistryFromService(axisService); } /** * Sets a custom xmlschema URI resolver * * @param customResolver a URIResolver to use when working with schemas */ public void setCustomResolver(URIResolver customResolver) { this.customResolver = customResolver; } public boolean isServerSide() { return isServerSide; } public void setServerSide(boolean serverSide) { isServerSide = serverSide; } protected void setPolicyRegistryFromService(AxisService axisService) { PolicyInclude policyInclude = axisService.getPolicyInclude(); this.registry = policyInclude.getPolicyRegistry(); } protected XmlSchema getXMLSchema(Element element, String baseUri) { XmlSchemaCollection schemaCollection = new XmlSchemaCollection(); if (baseUri != null) { schemaCollection.setBaseUri(baseUri); } if (customResolver != null) { schemaCollection.setSchemaResolver(customResolver); } return schemaCollection.read(element); } /** * Find the XML schema prefix * * @return the active schema prefix, or the default schema prefix if not declared */ protected String findSchemaPrefix() { String xsdPrefix = null; Map declaredNameSpaces = axisService.getNamespaceMap(); if (declaredNameSpaces.containsValue(XMLSCHEMA_NAMESPACE_URI)) { //loop and find the prefix Iterator it = declaredNameSpaces.keySet().iterator(); String key; while (it.hasNext()) { key = (String) it.next(); if (XMLSCHEMA_NAMESPACE_URI.equals(declaredNameSpaces.get(key))) { xsdPrefix = key; break; } } } else { xsdPrefix = XMLSCHEMA_NAMESPACE_PREFIX; //default prefix } return xsdPrefix; } public abstract AxisService populateService() throws AxisFault; /** * Utility method that returns a DOM Builder * * @return a namespace-aware DOM DocumentBuilder */ protected DocumentBuilder getDOMDocumentBuilder() { DocumentBuilder documentBuilder; try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory .newInstance(); documentBuilderFactory.setNamespaceAware(true); documentBuilder = documentBuilderFactory.newDocumentBuilder(); } catch (ParserConfigurationException e) { throw new RuntimeException(e); } return documentBuilder; } /** * Get a temporary namespace prefix. NOT threadsafe. * * @return a new namespace prefix of the form "nsX" */ protected String getTemporaryNamespacePrefix() { return "ns" + nsCount++; } public String getBaseUri() { return baseUri; } public void setBaseUri(String baseUri) { this.baseUri = baseUri; } public boolean isCodegen() { return isCodegen; } public void setCodegen(boolean codegen) { isCodegen = codegen; } public QName getServiceName() { return serviceName; } public void setServiceName(QName serviceName) { this.serviceName = serviceName; } } Other Axis 2 examples (source code examples)Here is a short list of links related to this Axis 2 WSDLToAxisServiceBuilder.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.