Java源码示例:com.sun.tools.internal.ws.wsdl.document.WSDLConstants
示例1
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例2
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例3
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例4
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例5
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例6
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例7
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例8
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例9
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例10
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例11
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例12
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例13
@Override
public boolean doHandleExtension(
TWSDLParserContext context,
TWSDLExtensible parent,
Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(MIMEConstants.QNAME_PART)) {
return handleMIMEPartExtension(context, parent, e);
} else {
// context.fireIgnoringExtension(
// new QName(e.getNamespaceURI(), e.getLocalName()),
// parent.getWSDLElementName());
return false;
}
}
示例14
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例15
@Override
protected String findExternalResource( String nsURI, String localName, Attributes atts) {
if(WSDLConstants.NS_WSDL.equals(nsURI) && "import".equals(localName)){
// if(parent.isExtensionMode()){
// //TODO: add support for importing schema using wsdl:import
// }
return atts.getValue("location");
}
// We don't need to do this anymore, JAXB handles the schema imports, includes etc., but this is useful for the clientJar option in
// fetching the imported schemas to package in the jar..
if (parent.options.clientjar != null) {
if (SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)) {
return atts.getValue("schemaLocation");
}
}
return null;
}
示例16
/**
* This interface is called during WSDL parsing on detecting any wsdl extension.
*
* @param context Parser context that will be passed on by the wsdl parser
* @param parent The Parent element within which the extensibility element is defined
* @param e The extensibility elemenet
* @return false if there was some error during the extension handling otherwise returns true. If returned false
* then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true
*/
public boolean doHandleExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_DEFINITIONS)) {
return handleDefinitionsExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_TYPES)) {
return handleTypesExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT_TYPE)) {
return handlePortTypeExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_BINDING)) {
return handleBindingExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OPERATION)) {
return handleOperationExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_FAULT)) {
return handleFaultExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_SERVICE)) {
return handleServiceExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT)) {
return handlePortExtension(context, parent, e);
} else {
return false;
}
}
示例17
/**
* Identifies WSDL documents from the {@link DOMForest}. Also identifies the root wsdl document.
*/
private void identifyRootWsdls(){
for(String location: rootDocuments){
Document doc = get(location);
if(doc!=null){
Element definition = doc.getDocumentElement();
if(definition == null || definition.getLocalName() == null || definition.getNamespaceURI() == null)
continue;
if(definition.getNamespaceURI().equals(WSDLConstants.NS_WSDL) && definition.getLocalName().equals("definitions")){
rootWsdls.add(location);
//set the root wsdl at this point. Root wsdl is one which has wsdl:service in it
NodeList nl = definition.getElementsByTagNameNS(WSDLConstants.NS_WSDL, "service");
//TODO:what if there are more than one wsdl with wsdl:service element. Probably such cases
//are rare and we will take any one of them, this logic should still work
if(nl.getLength() > 0)
rootWSDL = location;
}
}
}
//no wsdl with wsdl:service found, throw error
if(rootWSDL == null){
StringBuilder strbuf = new StringBuilder();
for(String str : rootWsdls){
strbuf.append(str);
strbuf.append('\n');
}
errorReceiver.error(null, WsdlMessages.FAILED_NOSERVICE(strbuf.toString()));
}
}
示例18
private Import parseImport(
TWSDLParserContextImpl context,
Definitions definitions,
Element e) {
context.push();
context.registerNamespaces(e);
Import anImport = new Import(forest.locatorTable.getStartLocation(e));
String namespace =
Util.getRequiredAttribute(e, Constants.ATTR_NAMESPACE);
anImport.setNamespace(namespace);
String location = Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
anImport.setLocation(location);
// according to the schema in the WSDL 1.1 spec, an import can have a documentation element
boolean gotDocumentation = false;
for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
Element e2 = Util.nextElement(iter);
if (e2 == null)
break;
if (XmlUtil.matchesTagNS(e2, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation = true;
anImport.setDocumentation(getDocumentationFor(e2));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e2), WsdlMessages.PARSING_INVALID_ELEMENT(e2.getTagName(),
e2.getNamespaceURI()));
}
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_IMPORT, anImport);
return anImport;
}
示例19
/**
* This interface is called during WSDL parsing on detecting any wsdl extension.
*
* @param context Parser context that will be passed on by the wsdl parser
* @param parent The Parent element within which the extensibility element is defined
* @param e The extensibility elemenet
* @return false if there was some error during the extension handling otherwise returns true. If returned false
* then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true
*/
public boolean doHandleExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_DEFINITIONS)) {
return handleDefinitionsExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_TYPES)) {
return handleTypesExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT_TYPE)) {
return handlePortTypeExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_BINDING)) {
return handleBindingExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OPERATION)) {
return handleOperationExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_FAULT)) {
return handleFaultExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_SERVICE)) {
return handleServiceExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT)) {
return handlePortExtension(context, parent, e);
} else {
return false;
}
}
示例20
private MessagePart parseMessagePart(TWSDLParserContextImpl context, Element e) {
context.push();
context.registerNamespaces(e);
MessagePart part = new MessagePart(forest.locatorTable.getStartLocation(e));
String partName = Util.getRequiredAttribute(e, Constants.ATTR_NAME);
part.setName(partName);
String elementAttr =
XmlUtil.getAttributeOrNull(e, Constants.ATTR_ELEMENT);
String typeAttr = XmlUtil.getAttributeOrNull(e, Constants.ATTR_TYPE);
if (elementAttr != null) {
if (typeAttr != null) {
errReceiver.error(context.getLocation(e), WsdlMessages.PARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(partName));
}
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), elementAttr));
part.setDescriptorKind(SchemaKinds.XSD_ELEMENT);
} else if (typeAttr != null) {
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), typeAttr));
part.setDescriptorKind(SchemaKinds.XSD_TYPE);
} else {
// XXX-NOTE - this is wrong; for extensibility purposes,
// any attribute can be specified on a <part> element, so
// we need to put an extensibility hook here
errReceiver.warning(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ELEMENT_OR_TYPE_REQUIRED(partName));
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_PART, part);
return part;
}
示例21
private Import parseImport(
TWSDLParserContextImpl context,
Definitions definitions,
Element e) {
context.push();
context.registerNamespaces(e);
Import anImport = new Import(forest.locatorTable.getStartLocation(e));
String namespace =
Util.getRequiredAttribute(e, Constants.ATTR_NAMESPACE);
anImport.setNamespace(namespace);
String location = Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
anImport.setLocation(location);
// according to the schema in the WSDL 1.1 spec, an import can have a documentation element
boolean gotDocumentation = false;
for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
Element e2 = Util.nextElement(iter);
if (e2 == null)
break;
if (XmlUtil.matchesTagNS(e2, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation = true;
anImport.setDocumentation(getDocumentationFor(e2));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e2), WsdlMessages.PARSING_INVALID_ELEMENT(e2.getTagName(),
e2.getNamespaceURI()));
}
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_IMPORT, anImport);
return anImport;
}
示例22
private Import parseImport(
TWSDLParserContextImpl context,
Definitions definitions,
Element e) {
context.push();
context.registerNamespaces(e);
Import anImport = new Import(forest.locatorTable.getStartLocation(e));
String namespace =
Util.getRequiredAttribute(e, Constants.ATTR_NAMESPACE);
anImport.setNamespace(namespace);
String location = Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
anImport.setLocation(location);
// according to the schema in the WSDL 1.1 spec, an import can have a documentation element
boolean gotDocumentation = false;
for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
Element e2 = Util.nextElement(iter);
if (e2 == null)
break;
if (XmlUtil.matchesTagNS(e2, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation = true;
anImport.setDocumentation(getDocumentationFor(e2));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e2), WsdlMessages.PARSING_INVALID_ELEMENT(e2.getTagName(),
e2.getNamespaceURI()));
}
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_IMPORT, anImport);
return anImport;
}
示例23
/**
* Identifies WSDL documents from the {@link DOMForest}. Also identifies the root wsdl document.
*/
private void identifyRootWsdls(){
for(String location: rootDocuments){
Document doc = get(location);
if(doc!=null){
Element definition = doc.getDocumentElement();
if(definition == null || definition.getLocalName() == null || definition.getNamespaceURI() == null)
continue;
if(definition.getNamespaceURI().equals(WSDLConstants.NS_WSDL) && definition.getLocalName().equals("definitions")){
rootWsdls.add(location);
//set the root wsdl at this point. Root wsdl is one which has wsdl:service in it
NodeList nl = definition.getElementsByTagNameNS(WSDLConstants.NS_WSDL, "service");
//TODO:what if there are more than one wsdl with wsdl:service element. Probably such cases
//are rare and we will take any one of them, this logic should still work
if(nl.getLength() > 0)
rootWSDL = location;
}
}
}
//no wsdl with wsdl:service found, throw error
if(rootWSDL == null){
StringBuilder strbuf = new StringBuilder();
for(String str : rootWsdls){
strbuf.append(str);
strbuf.append('\n');
}
errorReceiver.error(null, WsdlMessages.FAILED_NOSERVICE(strbuf.toString()));
}
}
示例24
/**
* This interface is called during WSDL parsing on detecting any wsdl extension.
*
* @param context Parser context that will be passed on by the wsdl parser
* @param parent The Parent element within which the extensibility element is defined
* @param e The extensibility elemenet
* @return false if there was some error during the extension handling otherwise returns true. If returned false
* then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true
*/
public boolean doHandleExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_DEFINITIONS)) {
return handleDefinitionsExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_TYPES)) {
return handleTypesExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT_TYPE)) {
return handlePortTypeExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_BINDING)) {
return handleBindingExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OPERATION)) {
return handleOperationExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_FAULT)) {
return handleFaultExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_SERVICE)) {
return handleServiceExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT)) {
return handlePortExtension(context, parent, e);
} else {
return false;
}
}
示例25
private MessagePart parseMessagePart(TWSDLParserContextImpl context, Element e) {
context.push();
context.registerNamespaces(e);
MessagePart part = new MessagePart(forest.locatorTable.getStartLocation(e));
String partName = Util.getRequiredAttribute(e, Constants.ATTR_NAME);
part.setName(partName);
String elementAttr =
XmlUtil.getAttributeOrNull(e, Constants.ATTR_ELEMENT);
String typeAttr = XmlUtil.getAttributeOrNull(e, Constants.ATTR_TYPE);
if (elementAttr != null) {
if (typeAttr != null) {
errReceiver.error(context.getLocation(e), WsdlMessages.PARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(partName));
}
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), elementAttr));
part.setDescriptorKind(SchemaKinds.XSD_ELEMENT);
} else if (typeAttr != null) {
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), typeAttr));
part.setDescriptorKind(SchemaKinds.XSD_TYPE);
} else {
// XXX-NOTE - this is wrong; for extensibility purposes,
// any attribute can be specified on a <part> element, so
// we need to put an extensibility hook here
errReceiver.warning(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ELEMENT_OR_TYPE_REQUIRED(partName));
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_PART, part);
return part;
}
示例26
private Import parseImport(
TWSDLParserContextImpl context,
Definitions definitions,
Element e) {
context.push();
context.registerNamespaces(e);
Import anImport = new Import(forest.locatorTable.getStartLocation(e));
String namespace =
Util.getRequiredAttribute(e, Constants.ATTR_NAMESPACE);
anImport.setNamespace(namespace);
String location = Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
anImport.setLocation(location);
// according to the schema in the WSDL 1.1 spec, an import can have a documentation element
boolean gotDocumentation = false;
for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
Element e2 = Util.nextElement(iter);
if (e2 == null)
break;
if (XmlUtil.matchesTagNS(e2, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation = true;
anImport.setDocumentation(getDocumentationFor(e2));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e2), WsdlMessages.PARSING_INVALID_ELEMENT(e2.getTagName(),
e2.getNamespaceURI()));
}
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_IMPORT, anImport);
return anImport;
}
示例27
/**
* Identifies WSDL documents from the {@link DOMForest}. Also identifies the root wsdl document.
*/
private void identifyRootWsdls(){
for(String location: rootDocuments){
Document doc = get(location);
if(doc!=null){
Element definition = doc.getDocumentElement();
if(definition == null || definition.getLocalName() == null || definition.getNamespaceURI() == null)
continue;
if(definition.getNamespaceURI().equals(WSDLConstants.NS_WSDL) && definition.getLocalName().equals("definitions")){
rootWsdls.add(location);
//set the root wsdl at this point. Root wsdl is one which has wsdl:service in it
NodeList nl = definition.getElementsByTagNameNS(WSDLConstants.NS_WSDL, "service");
//TODO:what if there are more than one wsdl with wsdl:service element. Probably such cases
//are rare and we will take any one of them, this logic should still work
if(nl.getLength() > 0)
rootWSDL = location;
}
}
}
//no wsdl with wsdl:service found, throw error
if(rootWSDL == null){
StringBuilder strbuf = new StringBuilder();
for(String str : rootWsdls){
strbuf.append(str);
strbuf.append('\n');
}
errorReceiver.error(null, WsdlMessages.FAILED_NOSERVICE(strbuf.toString()));
}
}
示例28
/**
* This interface is called during WSDL parsing on detecting any wsdl extension.
*
* @param context Parser context that will be passed on by the wsdl parser
* @param parent The Parent element within which the extensibility element is defined
* @param e The extensibility elemenet
* @return false if there was some error during the extension handling otherwise returns true. If returned false
* then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true
*/
public boolean doHandleExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) {
if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_DEFINITIONS)) {
return handleDefinitionsExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_TYPES)) {
return handleTypesExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT_TYPE)) {
return handlePortTypeExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_BINDING)) {
return handleBindingExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OPERATION)) {
return handleOperationExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) {
return handleInputExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) {
return handleOutputExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_FAULT)) {
return handleFaultExtension(context, parent, e);
} else if (
parent.getWSDLElementName().equals(WSDLConstants.QNAME_SERVICE)) {
return handleServiceExtension(context, parent, e);
} else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT)) {
return handlePortExtension(context, parent, e);
} else {
return false;
}
}
示例29
private MessagePart parseMessagePart(TWSDLParserContextImpl context, Element e) {
context.push();
context.registerNamespaces(e);
MessagePart part = new MessagePart(forest.locatorTable.getStartLocation(e));
String partName = Util.getRequiredAttribute(e, Constants.ATTR_NAME);
part.setName(partName);
String elementAttr =
XmlUtil.getAttributeOrNull(e, Constants.ATTR_ELEMENT);
String typeAttr = XmlUtil.getAttributeOrNull(e, Constants.ATTR_TYPE);
if (elementAttr != null) {
if (typeAttr != null) {
errReceiver.error(context.getLocation(e), WsdlMessages.PARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(partName));
}
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), elementAttr));
part.setDescriptorKind(SchemaKinds.XSD_ELEMENT);
} else if (typeAttr != null) {
part.setDescriptor(context.translateQualifiedName(context.getLocation(e), typeAttr));
part.setDescriptorKind(SchemaKinds.XSD_TYPE);
} else {
// XXX-NOTE - this is wrong; for extensibility purposes,
// any attribute can be specified on a <part> element, so
// we need to put an extensibility hook here
errReceiver.warning(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ELEMENT_OR_TYPE_REQUIRED(partName));
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_PART, part);
return part;
}
示例30
private Import parseImport(
TWSDLParserContextImpl context,
Definitions definitions,
Element e) {
context.push();
context.registerNamespaces(e);
Import anImport = new Import(forest.locatorTable.getStartLocation(e));
String namespace =
Util.getRequiredAttribute(e, Constants.ATTR_NAMESPACE);
anImport.setNamespace(namespace);
String location = Util.getRequiredAttribute(e, Constants.ATTR_LOCATION);
anImport.setLocation(location);
// according to the schema in the WSDL 1.1 spec, an import can have a documentation element
boolean gotDocumentation = false;
for (Iterator iter = XmlUtil.getAllChildren(e); iter.hasNext();) {
Element e2 = Util.nextElement(iter);
if (e2 == null)
break;
if (XmlUtil.matchesTagNS(e2, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation = true;
anImport.setDocumentation(getDocumentationFor(e2));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e2), WsdlMessages.PARSING_INVALID_ELEMENT(e2.getTagName(),
e2.getNamespaceURI()));
}
}
context.pop();
context.fireDoneParsingEntity(WSDLConstants.QNAME_IMPORT, anImport);
return anImport;
}