<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.ggf.org/nmwg/" xmlns:nmwg="http://www.ggf.org/nmwg/">
<xs:element name="request" type="nmwg:Request"/>
<xs:element name="response" type="nmwg:Response"/>
<xs:complexType name="Request">
<xs:sequence>
<xs:element minOccurs="0" name="properties" type="nmwg:Properties">
<xs:annotation>
<xs:documentation>Properties of the request</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="nmwg:metadata"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Response">
<xs:sequence>
<xs:element minOccurs="0" name="properties" type="nmwg:Properties">
<xs:annotation>
<xs:documentation>Properties of the response</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Metadata / data sections</xs:documentation>
</xs:annotation>
<xs:element ref="nmwg:metadata"/>
<xs:element ref="nmwg:data"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:element name="metadata">
<xs:complexType>
<xs:sequence>
<xs:element ref="nmwg:subject"/>
<xs:element ref="nmwg:parameters"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="nmwg:Identifier"/>
</xs:complexType>
</xs:element>
<xs:element name="subject">
<xs:complexType>
<xs:attributeGroup ref="nmwg:Subject"/>
</xs:complexType>
</xs:element>
<xs:element name="parameters">
<xs:complexType>
<xs:attributeGroup ref="nmwg:Parameters"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="Subject">
<xs:annotation>
<xs:documentation>Metadata subject</xs:documentation>
</xs:annotation>
<xs:attribute name="id" use="required" type="nmwg:Identifier"/>
</xs:attributeGroup>
<xs:attributeGroup name="Parameters">
<xs:annotation>
<xs:documentation>Metadata parameters</xs:documentation>
</xs:annotation>
<xs:attribute name="id" use="required" type="nmwg:Identifier"/>
</xs:attributeGroup>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="nmwg:time"/>
<xs:element minOccurs="0" ref="nmwg:units"/>
<xs:element ref="nmwg:results"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="nmwg:Identifier">
<xs:annotation>
<xs:documentation>Data section identifier</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="metadataId" use="required" type="nmwg:Identifier">
<xs:annotation>
<xs:documentation>Reference to associated metadata section</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="time">
<xs:annotation>
<xs:documentation>Initial or "base" timestamp</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="nmwg:Time"/>
</xs:complexType>
</xs:element>
<xs:element name="units" type="xs:token">
<xs:annotation>
<xs:documentation>Units</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="results" type="xs:string"/>
<xs:simpleType name="Identifier">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="Properties">
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="nmwg:item"/>
</xs:sequence>
</xs:complexType>
<xs:element name="item">
<xs:complexType mixed="true">
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Property name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="targetId" type="nmwg:Identifier"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="Time">
<xs:annotation>
<xs:documentation>Timestamp</xs:documentation>
</xs:annotation>
<xs:attribute name="type" use="required" type="xs:token">
<xs:annotation>
<xs:documentation>Format and semantics of value</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" use="required">
<xs:annotation>
<xs:documentation>Timestamp value</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:group name="TimeRange">
<xs:sequence>
<xs:element ref="nmwg:start"/>
<xs:element ref="nmwg:end"/>
</xs:sequence>
</xs:group>
<xs:element name="start">
<xs:complexType>
<xs:attributeGroup ref="nmwg:Time"/>
</xs:complexType>
</xs:element>
<xs:element name="end">
<xs:complexType>
<xs:attribute name="type" type="xs:token">
<xs:annotation>
<xs:documentation>Format and semantics of value</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value">
<xs:annotation>
<xs:documentation>Timestamp value</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://www.ggf.org/nmwg/traceroute/"
xmlns:nmwg="http://www.ggf.org/nmwg/" xmlns:tr="http://www.ggf.org/nmwg/traceroute/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://www.ggf.org/nmwg/" schemaLocation="nmbase.xsd"/>
<xs:element name="metadata" substitutionGroup="nmwg:Metadata">
<xs:complexType>
<xs:sequence>
<xs:element ref="tr:subject"/>
<xs:element ref="tr:parameters"/>
</xs:sequence>
<xs:attribute name="id" type="nmwg:Identifier" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="subject" type="tr:TracerouteSubject"/>
<xs:element name="parameters" type="tr:TracerouteParameters"/>
<xs:element abstract="true" name="TracerouteSubject"/>
<xs:complexType name="TracerouteSubject">
<xs:sequence>
<xs:element ref="tr:TracerouteSubject"/>
</xs:sequence>
<xs:attributeGroup ref="nmwg:Subject"/>
</xs:complexType>
<xs:complexType name="TracerouteParameters">
<xs:sequence>
<xs:element minOccurs="0" ref="tr:maxttl"/>
<xs:element minOccurs="0" ref="tr:nqueries"/>
</xs:sequence>
<xs:attributeGroup ref="nmwg:Parameters"/>
</xs:complexType>
<xs:element name="maxttl" type="xs:int"/>
<xs:element name="nqueries" type="xs:int"/>
<!-- etc.. -->
<xs:element name="results" substitutionGroup="nmwg:Results">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr:probe"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="probe">
<xs:complexType>
<xs:sequence>
<xs:element ref="tr:query"/>
</xs:sequence>
<xs:attribute name="num" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="query">
<xs:complexType>
<xs:sequence>
<xs:element ref="tr:hopValue"/>
<xs:element ref="tr:rtt"/>
</xs:sequence>
<xs:attribute name="num" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="hopValue" type="xs:string"/>
<xs:element name="rtt" type="xs:float"/>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://www.ggf.org/nwwg/traceroute.wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ws="http://www.ggf.org/nwwg/traceroute.wsdl"
xmlns:xsd="http://www.ggf.org/nmwg/traceroute/" >
<wsdl:types>
<xs:schema targetNamespace="http://www.ggf.org/nmwg/traceroute/">
<xs:include schemaLocation="traceroute.xsd"></xs:include>
</xs:schema>
</wsdl:types>
<wsdl:message name="request">
<wsdl:part name="body" element="xsd:request"></wsdl:part>
</wsdl:message>
<wsdl:message name="response">
<wsdl:part name="body" element="xsd:response"></wsdl:part>
</wsdl:message>
<wsdl:portType name="opPortType">
<wsdl:operation name="getTraceroute">
<wsdl:input message="ws:request"/>
<wsdl:output message="ws:response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="opBinding" type="ws:opPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getTraceroute">
<soap:operation soapAction="http://fakehost.com:8080"/>
<wsdl:input><soap:body use="literal"/></wsdl:input>
<wsdl:output><soap:body use="literal"/></wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="opService">
<wsdl:port name="ws:opPort" binding="ws:opBinding">
<soap:address location="http://fakehost.com:8080"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="%(target_ns)s"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ws="%(target_ns)s"
xmlns:xsd="%(schema_ns)s" >
<wsdl:types>
<xs:schema targetNamespace="%(schema_ns)s">
<xs:include schemaLocation="%(schema_xsd)s"></xs:include>
</xs:schema>
</wsdl:types>
<wsdl:message name="request">
<wsdl:part name="body" element="xsd:request"></wsdl:part>
</wsdl:message>
<wsdl:message name="response">
<wsdl:part name="body" element="xsd:response"></wsdl:part>
</wsdl:message>
<wsdl:portType name="opPortType">
<wsdl:operation name="%(operation)s">
<wsdl:input message="ws:request"/>
<wsdl:output message="ws:response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="opBinding" type="ws:opPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="%(operation)s">
<soap:operation soapAction="%(service_url)s"/>
<wsdl:input><soap:body use="literal"/></wsdl:input>
<wsdl:output><soap:body use="literal"/></wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="opService">
<wsdl:port name="ws:opPort" binding="ws:opBinding">
<soap:address location="%(service_url)s"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
# Short descriptive name for service [traceroute] # Namespace for this service target_ns: http://www.ggf.org/nwwg/traceroute.wsdl # File with request/response schemas schema_xsd: traceroute.xsd # Namespace used in the schema_xsd file, above schema_ns: http://www.ggf.org/nmwg/traceroute/ # Name of operation, e.g. "getStockQuote" operation: getTraceroute # URL where the actual service is running service_url: http://fakehost.com:8080
Attachment:
ezwsdl.py
Description: application/python