diff --git a/src/BeSimple/SoapBundle/Resources/config/webservice.xml b/src/BeSimple/SoapBundle/Resources/config/webservice.xml
index 6b38d56..343885c 100644
--- a/src/BeSimple/SoapBundle/Resources/config/webservice.xml
+++ b/src/BeSimple/SoapBundle/Resources/config/webservice.xml
@@ -44,6 +44,7 @@
%besimple.soap.binder.request_header.rpcliteral.class%
%besimple.soap.binder.request.rpcliteral.class%
%besimple.soap.binder.response.rpcliteral.class%
+ %besimple.soap.definition.dumper.options.stylesheet%
@@ -58,6 +59,7 @@
%besimple.soap.binder.request_header.documentwrapped.class%
%besimple.soap.binder.request.documentwrapped.class%
%besimple.soap.binder.response.documentwrapped.class%
+ %besimple.soap.definition.dumper.options.stylesheet%
diff --git a/src/BeSimple/SoapBundle/WebServiceContext.php b/src/BeSimple/SoapBundle/WebServiceContext.php
index 28316f6..dce81a7 100644
--- a/src/BeSimple/SoapBundle/WebServiceContext.php
+++ b/src/BeSimple/SoapBundle/WebServiceContext.php
@@ -78,7 +78,7 @@ class WebServiceContext
$definition->setOption('location', $endpoint);
}
- $dumper = new Dumper($definition);
+ $dumper = new Dumper($definition, array('stylesheet' => $this->options['wsdl_stylesheet']));
$cache->write($dumper->dump());
}
diff --git a/src/BeSimple/SoapWsdl/Dumper/Dumper.php b/src/BeSimple/SoapWsdl/Dumper/Dumper.php
index bcce154..ac2483c 100644
--- a/src/BeSimple/SoapWsdl/Dumper/Dumper.php
+++ b/src/BeSimple/SoapWsdl/Dumper/Dumper.php
@@ -69,6 +69,7 @@ class Dumper
'version12_class' => 'BeSimple\\SoapWsdl\\Dumper\\Version12',
'version11_name' => $this->definition->getName(),
'version12_name' => $this->definition->getName().'12',
+ 'stylesheet' => null,
);
$invalid = array();
@@ -123,6 +124,8 @@ class Dumper
$this->document->formatOutput = true;
+ $this->addStylesheet();
+
return $this->document->saveXML();
}
@@ -297,6 +300,15 @@ class Dumper
return $operation;
}
+ protected function addStylesheet()
+ {
+ if ($this->options['stylesheet']) {
+ $stylesheet = $this->document->createProcessingInstruction('xml-stylesheet', sprintf('type="text/xsl" href="%s"', $this->options['stylesheet']));
+
+ $this->document->insertBefore($stylesheet, $this->document->documentElement);
+ }
+ }
+
protected function getVersion($version)
{
if (\SOAP_1_2 === $version) {