Viewing file: uo_20001030.py (8.52 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# Uche gets nasty with nested copies and other arcana (too bad we had to ixnay the namespace axis hacking) # jkloth: 2002-01-22 # Fixed test to expect null-namespace on unprefixed attributes
from Xml.Xslt import test_harness
sheet_1 = """<?xml version='1.0'?> <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:es='http://www.snowboard-info.com/EndorsementSearch.wsdl' xmlns:esxsd='http://schemas.snowboard-info.com/EndorsementSearch.xsd' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' >
<xsl:output method='xml' indent='yes'/>
<!-- template 1 --> <xsl:template match='wsdl:definitions'> <xsl:copy> <xsl:apply-templates select='@*'/> <xsl:apply-templates select='*'/> <rdf:RDF> <xsl:apply-templates select='*' mode='convert-to-rdf'/> </rdf:RDF> </xsl:copy> </xsl:template>
<!-- template 2 --> <xsl:template match='wsdl:message|wsdl:portType|wsdl:binding|wsdl:service|wsdl:operation|wsdl:port' mode='convert-to-rdf'> <xsl:copy> <xsl:attribute name='rdf:ID' namespace='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <xsl:value-of select='@name'/> </xsl:attribute> <xsl:apply-templates select='@*' mode='convert-to-rdf'/> <xsl:apply-templates select='*'/> <xsl:apply-templates select='*' mode='convert-to-rdf'/> </xsl:copy> </xsl:template>
<!-- template 3 --> <xsl:template match='wsdl:part' mode='convert-to-rdf'> <xsl:copy> <xsl:apply-templates select='@*' mode='convert-to-rdf'/> <xsl:apply-templates select='*'/> <xsl:apply-templates select='*' mode='convert-to-rdf'/> </xsl:copy> </xsl:template>
<!-- template 4 --> <xsl:template match='wsdl:message|wsdl:portType|wsdl:binding|wsdl:service|wsdl:operation|wsdl:port|wsdl:part'/>
<!-- template 5 --> <xsl:template match='@*' mode='convert-to-rdf'> <xsl:attribute name="{concat('wsdl', ':', name())}" namespace='{namespace-uri()}'> <xsl:value-of select='.'/> </xsl:attribute> </xsl:template>
<!-- template 6 --> <xsl:template match='*' mode='convert-to-rdf'/>
<!-- template 7 --> <xsl:template match='*|@*'> <xsl:copy> <xsl:apply-templates select='@*|node()'/> </xsl:copy> </xsl:template>
</xsl:stylesheet>"""
source_1 = """<?xml version="1.0"?> <definitions name="EndorsementSearch" targetNamespace="http://namespaces.snowboard-info.com" xmlns:es="http://www.snowboard-info.com/EndorsementSearch.wsdl" xmlns:esxsd="http://schemas.snowboard-info.com/EndorsementSearch.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" > <types> <schema targetNamespace="http://namespaces.snowboard-info.com" xmlns="http://www.w3.org/1999/XMLSchema"> <element name="GetEndorsingBoarder"> <complexType> <sequence> <element name="manufacturer" type="string"/> <element name="model" type="string"/> </sequence> </complexType> </element> <element name="GetEndorsingBoarderResponse"> <complexType> <all> <element name="endorsingBoarder" type="string"/> </all> </complexType> </element> <element name="GetEndorsingBoarderFault"> <complexType> <all> <element name="errorMessage" type="string"/> </all> </complexType> </element> </schema> </types>
<message name="GetEndorsingBoarderRequest"> <part name="body" element="esxsd:GetEndorsingBoarder"/> </message>
<message name="GetEndorsingBoarderResponse"> <part name="body" element="esxsd:GetEndorsingBoarderResponse"/> </message>
<portType name="GetEndorsingBoarderPortType"> <operation name="GetEndorsingBoarder"> <input message="es:GetEndorsingBoarderRequest"/> <output message="es:GetEndorsingBoarderResponse"/> <fault message="es:GetEndorsingBoarderFault"/> </operation> </portType> <binding name="EndorsementSearchSoapBinding" type="es:GetEndorsingBoarderPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetEndorsingBoarder"> <soap:operation soapAction="http://www.snowboard-info.com/EndorsementSearch"/> <input> <soap:body use="literal" namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/> </input> <output> <soap:body use="literal" namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/> </output> <fault> <soap:body use="literal" namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/> </fault> </operation> </binding> <service name="EndorsementSearchService"> <documentation>snowboarding-info.com Endorsement Service</documentation> <port name="GetEndorsingBoarderPort" binding="es:EndorsementSearchSoapBinding"> <soap:address location="http://www.snowboard-info.com/EndorsementSearch"/> </port> </service>
</definitions>"""
expected_1 = """<?xml version='1.0' encoding='UTF-8'?> <definitions xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' name='EndorsementSearch' targetNamespace='http://namespaces.snowboard-info.com' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:esxsd='http://schemas.snowboard-info.com/EndorsementSearch.xsd' xmlns:es='http://www.snowboard-info.com/EndorsementSearch.wsdl'> <types> <schema xmlns='http://www.w3.org/1999/XMLSchema' targetNamespace='http://namespaces.snowboard-info.com'> <element name='GetEndorsingBoarder'> <complexType> <sequence> <element name='manufacturer' type='string'/> <element name='model' type='string'/> </sequence> </complexType> </element> <element name='GetEndorsingBoarderResponse'> <complexType> <all> <element name='endorsingBoarder' type='string'/> </all> </complexType> </element> <element name='GetEndorsingBoarderFault'> <complexType> <all> <element name='errorMessage' type='string'/> </all> </complexType> </element> </schema> </types> <rdf:RDF xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <message rdf:ID='GetEndorsingBoarderRequest' name='GetEndorsingBoarderRequest'> <part element='esxsd:GetEndorsingBoarder' name='body'/> </message> <message rdf:ID='GetEndorsingBoarderResponse' name='GetEndorsingBoarderResponse'> <part element='esxsd:GetEndorsingBoarderResponse' name='body'/> </message> <portType rdf:ID='GetEndorsingBoarderPortType' name='GetEndorsingBoarderPortType'> <operation rdf:ID='GetEndorsingBoarder' name='GetEndorsingBoarder'> <input message='es:GetEndorsingBoarderRequest'/> <output message='es:GetEndorsingBoarderResponse'/> <fault message='es:GetEndorsingBoarderFault'/> </operation> </portType> <binding rdf:ID='EndorsementSearchSoapBinding' type='es:GetEndorsingBoarderPortType' name='EndorsementSearchSoapBinding'> <soap:binding transport='http://schemas.xmlsoap.org/soap/http' style='document'/> <operation rdf:ID='GetEndorsingBoarder' name='GetEndorsingBoarder'> <soap:operation soapAction='http://www.snowboard-info.com/EndorsementSearch'/> <input> <soap:body use='literal' namespace='http://schemas.snowboard-info.com/EndorsementSearch.xsd'/> </input> <output> <soap:body use='literal' namespace='http://schemas.snowboard-info.com/EndorsementSearch.xsd'/> </output> <fault> <soap:body use='literal' namespace='http://schemas.snowboard-info.com/EndorsementSearch.xsd'/> </fault> </operation> </binding> <service rdf:ID='EndorsementSearchService' name='EndorsementSearchService'> <documentation>snowboarding-info.com Endorsement Service</documentation> <port rdf:ID='GetEndorsingBoarderPort' binding='es:EndorsementSearchSoapBinding' name='GetEndorsingBoarderPort'> <soap:address location='http://www.snowboard-info.com/EndorsementSearch'/> </port> </service> </rdf:RDF> </definitions>"""
#"
def Test(tester): source = test_harness.FileInfo(string=source_1) sheet = test_harness.FileInfo(string=sheet_1) test_harness.XsltTest(tester, source, [sheet], expected_1) return
|