Changes between Initial Version and Version 1 of grahamd

Show
Ignore:
Timestamp:
05/07/08 08:07:36 (11 years ago)
Author:
http://cropotkin.myopenid.com/
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • grahamd

    v1 v1  
     1<* reference *> 
     2 
     3KodegenUpnp.dll 
     4 
     5<* reference *> 
     6 
     7<* import *> 
     8 
     9using Kodegen.Upnp; 
     10 
     11<* import *> 
     12 
     13<* function *> 
     14 
     15<* function *> 
     16 
     17<* body *> 
     18<% 
     19    if (args.Length < 1) 
     20    { 
     21        throw (new TemplateException("Service Description File not specified")); 
     22    } 
     23     
     24    if (args.Length < 2) 
     25    { 
     26        throw (new TemplateException("Service Domain not specified")); 
     27    } 
     28     
     29    if (args.Length < 3) 
     30    { 
     31        throw (new TemplateException("Service Type not specified")); 
     32    } 
     33     
     34    if (args.Length < 4) 
     35    { 
     36        throw (new TemplateException("Service Version not specified")); 
     37    } 
     38     
     39    string domain = args[1]; 
     40    string type = args[2]; 
     41    uint version; 
     42     
     43    try 
     44    { 
     45       version = Convert.ToUInt32(args[3]); 
     46    } 
     47    catch (FormatException) 
     48    { 
     49        throw (new TemplateException("Invalid version number specified")); 
     50    } 
     51    catch (OverflowException) 
     52    { 
     53        throw (new TemplateException("Invalid version number specified")); 
     54    } 
     55 
     56        string upnpdomain = domain; 
     57        upnpdomain.Replace(".", "-"); 
     58         
     59        if (upnpdomain.StartsWith("upnp-")) 
     60        { 
     61                upnpdomain = "schemas-" + upnpdomain; 
     62        } 
     63         
     64        string name = domain + ":" + type + ":" + version.ToString(); 
     65        string upnpname = upnpdomain + ":" + type + ":" + version.ToString(); 
     66         
     67    UpnpXml u = new UpnpXml(args[0]); 
     68%> 
     69<?xml version="1.0"?> 
     70<definitions name="<%=upnpname%>" 
     71 
     72targetNamespace="<%=name%>" 
     73          xmlns:svc="<%=name%>" 
     74          xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" 
     75          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
     76          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
     77          xmlns="http://schemas.xmlsoap.org/wsdl/"> 
     78 
     79<%  foreach (Action a in u.actions) %> 
     80<%  { %> 
     81    <message name="<%=a.name%>Input"> 
     82<%              foreach (Argument i in a.inargs) %> 
     83<%          { %> 
     84        <part name="<%=i.name%>" element="xsd:<%=i.statevariable.type%>"/> 
     85<%          } %> 
     86    </message> 
     87 
     88    <message name="<%=a.name%>Output"> 
     89<%              foreach (Argument o in a.outargs) %> 
     90<%          { %> 
     91        <part name="<%=o.name%>" element="xsd:<%=o.statevariable.type%>"/> 
     92<%          } %> 
     93    </message> 
     94 
     95    <portType name="<%=a.name%>PortType"> 
     96        <operation name="<%=a.name%>"> 
     97           <input message="svc:<%=a.name%>Input"/> 
     98           <output message="svc:<%=a.name%>Output"/> 
     99        </operation> 
     100    </portType> 
     101 
     102    <binding name="<%=a.name%>Binding" type="svc:<%=a.name%>PortType"> 
     103        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 
     104        <operation name="<%=a.name%>"> 
     105           <soap:operation soapAction="urn:<%=upnpdomain%>:service:<%=type%>:<%=version.ToString()%>#<%=a.name%>"/> 
     106           <input> 
     107               <soap:body use="encoded" 
     108                          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
     109                          namespace = "urn:<%=upnpdomain%>:service:<%=type%>:<%=version.ToString()%>"/> 
     110           </input> 
     111           <output> 
     112               <soap:body use="encoded" 
     113                          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
     114                          namespace = "urn:<%=upnpdomain%>:service:<%=type%>:<%=version.ToString()%>"/> 
     115           </output> 
     116        </operation> 
     117    </binding> 
     118     
     119<%  } %> 
     120 
     121    <service name="<%=name%>"> 
     122        <documentation><%=name%></documentation> 
     123<%  foreach (Action a in u.actions) %> 
     124<%  { %> 
     125        <port name="<%=a.name%>Port" binding="svc:<%=a.name%>Binding"> 
     126           <soap:address location="uri"/> 
     127        </port> 
     128<%  } %> 
     129    </service> 
     130 
     131</definitions> 
     132 
     133<* body *> 
     134