Skip to content

Commit

Permalink
Merge c40d08f into fe4cb27
Browse files Browse the repository at this point in the history
  • Loading branch information
LoneRifle committed Mar 5, 2020
2 parents fe4cb27 + c40d08f commit 9414294
Show file tree
Hide file tree
Showing 32 changed files with 387 additions and 105 deletions.
17 changes: 12 additions & 5 deletions src/parser/xmlHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ class XMLHandler {
prefix = prefix || 'soap';
var doc = xmlBuilder.create(prefix + ':Envelope',
{version: '1.0', encoding: 'UTF-8', standalone: true});
nsURI = nsURI || 'http://schemas.xmlsoap.org/soap/envelope/'
nsURI = nsURI || 'http://schemas.xmlsoap.org/soap/envelope/';
doc.attribute('xmlns:' + prefix,
nsURI);
let header = doc.element(prefix + ':Header');
Expand All @@ -395,7 +395,7 @@ class XMLHandler {

static createSOAPEnvelopeDescriptor(prefix, nsURI, parameterDescriptor) {
prefix = prefix || 'soap';
nsURI = nsURI || 'http://schemas.xmlsoap.org/soap/envelope/'
nsURI = nsURI || 'http://schemas.xmlsoap.org/soap/envelope/';
var descriptor = new TypeDescriptor();

var envelopeDescriptor = new ElementDescriptor(
Expand Down Expand Up @@ -648,7 +648,14 @@ class XMLHandler {
top.object = {};
}
if (top.object !== null) {
if (typeof top.object === 'object' && elementName in top.object) {
if (current.descriptor && current.descriptor.isMany) {
// Schema enforces array
if (!(elementName in top.object)) {
top.object[elementName] = [];
}
let val = top.object[elementName];
val.push(current.object);
} else if (typeof top.object === 'object' && elementName in top.object) {
// The element exist already, let's create an array
let val = top.object[elementName];
if (Array.isArray(val)) {
Expand Down Expand Up @@ -766,7 +773,7 @@ function getSoap11FaultErrorMessage(faultBody) {
if (typeof detail == 'string') { //plain text
errorMessage = errorMessage + ' detail: ' + detail;
} else { //XML type defined in wsdl
errorMessage = errorMessage + ' detail: ' + JSON.stringify(detail)
errorMessage = errorMessage + ' detail: ' + JSON.stringify(detail);
}
}
}
Expand Down Expand Up @@ -812,7 +819,7 @@ function getSoap12FaultErrorMessage(faultBody) {
if (typeof detail == 'string') { //plain text
errorMessage = errorMessage + ' Detail: ' + detail;
} else { //XML type defined in wsdl
errorMessage = errorMessage + ' Detail: ' + JSON.stringify(detail)
errorMessage = errorMessage + ' Detail: ' + JSON.stringify(detail);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": "Dummy Element Entry"
"DummyElement": [
"Dummy Element Entry"
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": {
"response": {
"forms": {
"form": {
"$attributes": {
"ObjectId": "1234",
"Form_Name": "Dummy Form"
},
"First_Name": "Humpty",
"Last_Name": "Dumpty"
}
}
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": {
"response": {
"forms": {
"form": {
"$attributes": {
"ObjectId": "1234",
"Form_Name": "Dummy Form"
},
"First_Name": "Humpty",
"Last_Name": "Dumpty"
}
}
}
}
}
]
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": "Dummy Element Entry"
"DummyElement": [
"Dummy Element Entry"
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": null
"DummyElement": [
null
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": {
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
"DummyElement": [
{
"$attributes": {
"language": "en-US"
},
"$value": "Dummy Element Entry"
}
]
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": null
"DummyElement": [
null
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:tns="http://www.Dummy.com/Common/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.Dummy.com/Common/Types" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:complexType name="DummyResult">
<xs:sequence>
<xs:element name="DummyList" type="tns:DummyList" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="code" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="Dummy">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:language" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DummyList">
<xs:sequence>
<xs:element name="DummyElement" type="tns:Dummy"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DummyFilter">
<xs:sequence>
<xs:element name="DummyIntFilter" type="xs:string" minOccurs="0"/>
<xs:element name="DummyStringFilter" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:c="http://www.Dummy.com/Common/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.Dummy.com/Name/Types" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:import namespace="common.xsd" schemaLocation="common.xsd"/>
<xs:element name="DummyRequest"> <!-- global element -->
<xs:complexType>
<xs:sequence>
<xs:element name="DummyField1" type="xs:string" minOccurs="0"/>
<xs:element name="DummyFilter" type="c:DummyFilter" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DummyResponse"> <!-- global element -->
<xs:complexType>
<xs:sequence>
<xs:element name="DummyResult" type="c:DummyResult"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body/>
</soap:Envelope>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"DummyResult": {
"DummyList": {
"DummyElement": [
"Dummy Element Entry 1",
"Dummy Element Entry 2",
"Dummy Element Entry 3"
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://www.Dummy.com" xmlns:n="http://www.Dummy.com/Name/Types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header></soap:Header>
<soap:Body>
<n:DummyResponse>
<n:DummyResult>
<c:DummyList xmlns:c="http://www.Dummy.com/Common/Types">
<c:DummyElement>
Dummy Element Entry 1
</c:DummyElement>
<c:DummyElement>
Dummy Element Entry 2
</c:DummyElement>
<c:DummyElement>
Dummy Element Entry 3
</c:DummyElement>
</c:DummyList>
</n:DummyResult>
</n:DummyResponse>
</soap:Body>
</soap:Envelope>
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.Dummy.com" xmlns:n="http://www.Dummy.com/Name/Types" xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.Dummy.com">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.example.com/v1" xmlns="http://www.example.com/v1">
<xs:import namespace="http://www.Dummy.com/Common/Types" schemaLocation="common.xsd"/>
<xs:import namespace="http://www.Dummy.com/Name/Types" schemaLocation="name.xsd"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="DummyRequest">
<wsdl:part name="DummyRequest" element="n:DummyRequest"/>
</wsdl:message>
<wsdl:message name="DummyResponse">
<wsdl:part name="DummyResponse" element="n:DummyResponse"/>
</wsdl:message>
<wsdl:portType name="DummyPortType">
<wsdl:operation name="Dummy">
<wsdl:input message="tns:DummyRequest"/>
<wsdl:output message="tns:DummyResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DummyBinding" type="tns:DummyPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Dummy">
<soap:operation soapAction="http://www.Dummy.com#Dummy" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="DummyService">
<wsdl:port name="DummyPortType" binding="tns:DummyBinding">
<soap:address location="http://www.Dummy.com/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

0 comments on commit 9414294

Please sign in to comment.