websrv-wsdl.xsl revision e64031e20c39650a7bc902a3e1aba613b9415dee
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync XSLT stylesheet that generates vboxweb.wsdl from
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync VirtualBox.xidl. This WSDL file represents our
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync web service API..
10cdf5733351fdcd857d439ca32189e812f18682vboxsync See webservice/Makefile.kmk for an overview of all the things
10cdf5733351fdcd857d439ca32189e812f18682vboxsync generated for the webservice.
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync Copyright (C) 2006-2010 Oracle Corporation
92a27575521748a392dcd1b996fce55b87411a00vboxsync This file is part of VirtualBox Open Source Edition (OSE), as
92a27575521748a392dcd1b996fce55b87411a00vboxsync available from http://www.virtualbox.org. This file is free software;
92a27575521748a392dcd1b996fce55b87411a00vboxsync you can redistribute it and/or modify it under the terms of the GNU
92a27575521748a392dcd1b996fce55b87411a00vboxsync General Public License (GPL) as published by the Free Software
92a27575521748a392dcd1b996fce55b87411a00vboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
92a27575521748a392dcd1b996fce55b87411a00vboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
92a27575521748a392dcd1b996fce55b87411a00vboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync A WSDL document describes a web service using these major elements:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync Element Defines
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <types> The data types used by the web service, described in XML Schema
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <message> The messages used by the web service. A message is a function call
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync and with it come "parts", which are the parameters.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <portType> The operations performed by the web service. A portType can be thought
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync of as a class or, in COM terms, as an interface.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <binding> The communication protocols used by the web service.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync The root tag is <definitions>.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync Representing COM interfaces is tricky in WSDL 1.1, which doesn't really have them.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync WSDL only knows about "port types", which are an abstract representation
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync of a group of functions. So for each "interface", we need to emit
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync a "port type"; in the port type, we declare each "interface method"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync as one "operation". Each operation in turn consists of at least one
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync message for the method invocation, which contains all the "in" and
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync "inout" arguments. An optional second message for the response contains
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync the return value, if one is present in the IDL (called "_return" to
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync avoid name clashes), together with all the "out" and "inout" arguments.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync Each of these messages, however, need to be independently declarared
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync using the "message" element outside of the "port type" declaration.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync As an example: To create this XPCOM IDL:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync void createMachine (
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync in wstring baseFolder,
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync in wstring name,
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync [retval] out IMachine machine
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync the following exists in the XIDL:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <interface name="ifname">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <method name="createMachine">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <param name="baseFolder" type="wstring" dir="in" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <param name="name" type="wstring" dir="in" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <param name="machine" type="IMachine" dir="return" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </interface>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync So, we have two "in" parameters, and one "out" parameter. The
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync operation therefore requires two messages (one for the request,
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync with the two "in" parameters, and one for the result with the
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync return value). With RPC/encoded style, we end up with this:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <part name="baseFolder" type="xsd:string" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <part name="name" type="xsd:string" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <message name="ifname.methodname_Result">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <part name="_return" type="IMachine" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <portType name="ifname">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <operation name="methodname"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <input message="ifname.methodname_Request" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <output message="ifname.methodname_Result" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </operation>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </portType>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync With document/literal style, things get even more verbose, as
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync instead of listing the arguments and return values in the messages,
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync we declare a struct-like complexType in the <types> section
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync instead and then reference that type in the messages.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync version="1.0"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync method="xml"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync version="1.0"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync encoding="utf-8"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync indent="yes"/>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync elements="*" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!--**********************************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * global XSLT variables
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync **********************************************************************-->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:variable name="G_xsltFilename" select="'websrv-wsdl.xsl'" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- collect all interfaces with "wsmap='suppress'" in a global variable for
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync quick lookup -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync select="//interface[@wsmap='suppress']" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- this marker is used with WSDL document style to mark that a message
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync should have an automatic type that matches a complexType definition;
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync use a string that cannot possibly appear in an XIDL interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:variable name="G_typeIsGlobalRequestElementMarker"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync select="'<<<<Request'" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:variable name="G_typeIsGlobalResponseElementMarker"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync select="'<<<<Response'" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!--**********************************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * shared helpers
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync **********************************************************************-->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitConvertedType
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('......emitConvertedType: type="', $type, '"')" /></xsl:call-template>
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <!-- look up XML Schema type from IDL type from table array in websrv-shared.inc.xsl -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:variable name="xmltypefield" select="exsl:node-set($G_aSharedTypes)/type[@idlname=$type]/@xmlname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type=$G_typeIsGlobalRequestElementMarker"><xsl:value-of select="concat('vbox:', $ifname, $G_classSeparator, $methodname, $G_requestMessageElementSuffix)" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type=$G_typeIsGlobalResponseElementMarker"><xsl:value-of select="concat('vbox:', $ifname, $G_classSeparator, $methodname, $G_responseMessageElementSuffix)" /></xsl:when>
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <!-- if above lookup in table succeeded, use that type -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:when test="string-length($xmltypefield)"><xsl:value-of select="concat('xsd:', $xmltypefield)" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type='$unknown'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type='global'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type='managed'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$type='explicit'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- enums are easy, these are defined in schema at the top of the wsdl -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="//enum[@name=$type]"><xsl:value-of select="concat('vbox:', $type)" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- otherwise test for an interface with this name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- the type is one of our own interfaces: then it must have a wsmap attr -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="wsmap" select="(//interface[@name=$type]/@wsmap) | (//collection[@name=$type]/@wsmap)" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat('emitConvertedType: Type "', $type, '" in method "', $ifname, '::', $methodname, '" lacks wsmap attribute value in XIDL.')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$wsmap='struct'"><xsl:value-of select="concat('vbox:', $type)" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$wsmap='global'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$wsmap='managed'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="$wsmap='explicit'"><xsl:value-of select="$G_typeObjectRef" /></xsl:when>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat('emitConvertedType: Type "', $type, '" in method "', $ifname, '::', $methodname, '" has wsmap="suppress" attribute in XIDL. This function should have been suppressed as well.')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat('emitConvertedType: Type "', $type, '" used in method "', $ifname, '::', $methodname, '" has unsupported wsmap attribute value "', $wsmap, '"')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:value-of select="concat('vbox:ArrayOf', //collection[@name=$type]/@type)" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat('emitConvertedType: Unknown type "', $type, '" used in method "', $ifname, '::', $methodname, '".')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function convertTypeAndEmitPartOrElement
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="safearray" /> <!-- "yes" if XIDL has safearray=yes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="attrname" /> <!-- attrib of part or element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('....convertTypeAndEmitPartOrElement: arg name: ', $name)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:element name="{$elname}"> <!-- <part> or <element> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="$name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="minOccurs"><xsl:value-of select="'0'" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="maxOccurs"><xsl:value-of select="'unbounded'" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:element name="{$elname}"> <!-- <part> or <element> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="$name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitRequestArgs
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_ifname" /> <!-- interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_wsmap" /> <!-- interface's wsmap attribute -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_valuetype" /> <!-- optional, for attribute setter messages -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_valuesafearray" /> <!-- optional, 'yes' if attribute of setter has safearray=yes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_elname" /> <!-- "part" or "xsd:element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- first parameter will be object on which method is called, depending on wsmap attribute -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="($_wsmap='managed') or ($_wsmap='explicit')">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="name" select="$G_nameObjectRef" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- now for the real parameters, if any -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- emit only parts for "in" parameters -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="safearray" select="@safearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- <part>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name">value</xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="type"><xsl:value-of select='string($_valuetype)' /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </part> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="safearray" select="@safearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitResultArgs
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_params" /> <!-- set of parameter elements -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resulttype" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resultsafearray" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_elname" /> <!-- "part" or "xsd:element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $_ifname, '::', $_methodname, ': ', 'resultmsg for attr of type ', $_resulttype)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="type" select="$_resulttype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="safearray" select="$_resultsafearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', 'resultmsg for method: ', $_ifname, '::', $_methodname)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- emit only parts for "out" parameters -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="name"><xsl:value-of select="@name" /></xsl:with-param>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="type"><xsl:value-of select="@type" /></xsl:with-param>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="safearray" select="@safearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="name"><xsl:value-of select="$G_result" /></xsl:with-param>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="type"><xsl:value-of select="@type" /></xsl:with-param>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="safearray" select="@safearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="$_elname" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$_attrname" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitRequestElements:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync for "in" parameters
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_ifname" /> <!-- interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_wsmap" /> <!-- interface's wsmap attribute -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_valuetype" /> <!-- optional, for attribute setter messages -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_valuesafearray" /> <!-- optional, 'yes' if attribute of setter has safearray=yes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="concat($_ifname, $G_classSeparator, $_methodname, $G_requestMessageElementSuffix)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_ifname" select="$_ifname" /> <!-- interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_wsmap" select="$_wsmap" /> <!-- interface's wsmap attribute -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="$_params" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_valuetype" select="$_valuetype" /> <!-- optional, for attribute setter messages -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_valuesafearray" select="$_valuesafearray" /> <!-- optional, for attribute setter messages -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_elname" select="'xsd:element'" /> <!-- "part" or "xsd:element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_attrname" select="'type'" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitResultElements:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync for "out" and "return" parameters
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_params" /> <!-- set of parameter elements -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resulttype" /> <!-- optional, for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resultsafearray" /> <!-- optional, 'yes' if attribute of getter has safearray=yes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="concat($_ifname, $G_classSeparator, $_methodname, $G_responseMessageElementSuffix)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_ifname" select="$_ifname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="$_params" /> <!-- set of parameter elements -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select="$_resulttype" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resultsafearray" select="$_resultsafearray" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_elname" select="'xsd:element'" /> <!-- "part" or "xsd:element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_attrname" select="'type'" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitGetAttributeElements
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrGetter"><xsl:call-template name="makeGetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $ifname, '::', $attrGetter)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resultsafearray" select='$attrsafearray' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function: emitRequestMessage
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync for "in" parameters
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_ifname" /> <!-- interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_wsmap" /> <!-- interface's wsmap attribute -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_valuetype" /> <!-- optional, for attribute setter messages -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="concat($_ifname, $G_classSeparator, $_methodname, $G_methodRequest)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="name" select="'parameters'" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="type" select="$G_typeIsGlobalRequestElementMarker" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="'element'" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function: emitResultMessage
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync for "out" and "return" parameters
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_params" /> <!-- set of parameter elements -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resulttype" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:copy-of select="$_ifname" /><xsl:value-of select="$G_classSeparator" /><xsl:value-of select="$_methodname" /><xsl:copy-of select="$G_methodResponse" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- <xsl:variable name="cOutParams" select="count($_params[@dir='out']) + count($_params[@dir='return'])" /> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="convertTypeAndEmitPartOrElement">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="methodname" select="$_methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="name" select="'parameters'" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="type" select="$G_typeIsGlobalResponseElementMarker" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="'element'" /> <!-- attrib of part of element: <part type=...> or <part element=...> or <element type=...> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitGetAttributeMessages:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrGetter"><xsl:call-template name="makeGetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $ifname, '::', $attrGetter)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitSetAttributeMessages
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrSetter"><xsl:call-template name="makeSetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $ifname, '::', $attrSetter)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_valuetype" select="$attrtype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_params" select="/.." /> <!-- empty set -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitInOutOperation:
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync referencing the messages that must have been emitted previously
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_ifname" /> <!-- interface name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_methodname" /> <!-- method name -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:param name="_resulttype" /> <!-- for attribute getter methods only -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('....emitInOutOperation ', $_ifname, '::', $_methodname)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <operation>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:value-of select="concat($_ifname, '_', $_methodname)" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- VMware has an empty attribute like this as well -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="soapAction"><xsl:value-of select="''" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="style"><xsl:value-of select="$G_basefmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="use"><xsl:value-of select="$G_parmfmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- avoid jax-ws warning: <xsl:attribute name="namespace"><xsl:value-of select="concat($G_targetNamespace, $G_targetNamespaceSeparator)" /></xsl:attribute>-->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="message">vbox:<xsl:copy-of select="$_ifname" /><xsl:value-of select="$G_classSeparator" /><xsl:value-of select="$_methodname" /><xsl:copy-of select="$G_methodRequest" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="use"><xsl:value-of select="$G_parmfmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- avoid jax-ws warning: <xsl:attribute name="namespace"><xsl:value-of select="concat($G_targetNamespace, $G_targetNamespaceSeparator)" /></xsl:attribute> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="message">vbox:<xsl:copy-of select="$_ifname" /><xsl:value-of select="$G_classSeparator" /><xsl:value-of select="$_methodname" /><xsl:copy-of select="$G_methodResponse" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- <xsl:if test="count($_params[@dir='out'] | $_params[@dir='return']) > 0"> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="use"><xsl:value-of select="$G_parmfmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- avoid jax-ws warning: <xsl:attribute name="namespace"><xsl:value-of select="concat($G_targetNamespace, $G_targetNamespaceSeparator)" /></xsl:attribute> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="message">vbox:<xsl:copy-of select="$_ifname" /><xsl:value-of select="$G_classSeparator" /><xsl:value-of select="$_methodname" /><xsl:copy-of select="$G_methodResponse" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- </xsl:if> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <fault name="InvalidObjectFault" message="vbox:InvalidObjectFaultMsg" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <fault name="RuntimeFault" message="vbox:RuntimeFaultMsg" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="use"><xsl:value-of select="$G_parmfmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="use"><xsl:value-of select="$G_parmfmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </operation>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function verifyInterface
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat(local-name(), ' template: Interface "', $ifname, '" has invalid wsmap attribute "', $wsmap, '" in XIDL.')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- now make sure we have each interface only once -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:if test="(count(//library/interface[@name=$ifname]) > 1)">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat(local-name(), ' template: There is more than one interface with a name="', $ifname, '" attribute.')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitMessagesForInterface
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- 1) outside the portType, here come the in/out methods for all the "operations" we declare below;
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync a) for attributes (get/set methods)
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync b) for "real" methods
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('************* messages for interface "', $ifname, '"')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- a) attributes first -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrtype"><xsl:value-of select="@type" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrreadonly"><xsl:value-of select="@readonly" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('messages for ', $ifname, '::', $attrname, ': attribute of type "', $attrtype, '", readonly: ', $attrreadonly)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this attribute if it has parameters of a type that has wsmap="suppress" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="( $attrtype=($G_setSuppressedInterfaces/@name) )">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping attribute ', $attrtype, ' for it is of a suppressed type')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> readonly attribute <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$attrname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> read/write attribute <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$attrname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- aa) get method: emit request and result -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitGetAttributeMessages">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$attrname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrtype" select="$attrtype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- bb) emit a set method if the attribute is read/write -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitSetAttributeMessages">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$attrname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrtype" select="$attrtype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- b) "real" methods after the attributes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="methodname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('messages for ', $ifname, '::', $methodname, ': method')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> method <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$methodname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this method if it has parameters of a type that has wsmap="suppress" -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:when test=" (param[@type=($G_setSuppressedInterfaces/@name)])
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync or (param[@mod='ptr'])" >
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping method ', $methodname, ' for it has parameters with suppressed types')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- always emit a request message -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- emit a second "result" message only if the method has "out" arguments or a return value -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- <xsl:if test="(count(param[@dir='out'] | param[@dir='return']) > 0)"> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="@name" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="elname" select="'part'" /> <!-- "part" or "element" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- </xsl:if> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitOperationsForInterface
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:template name="emitOperationsInPortTypeForInterface">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- a) again, first for the attributes whose messages we produced above -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('************* portType for interface "', $ifname, '"')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrreadonly" select="@readonly" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('operations for ', $ifname, '::', $attrname, ': attribute of type "', $attrtype, '", readonly: ', $attrreadonly)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this attribute if it has parameters of a type that has wsmap="suppress" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="( $attrtype=($G_setSuppressedInterfaces/@name) )">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping attribute ', $attrtype, ' for it is of a suppressed type')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrGetter"><xsl:call-template name="makeGetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $G_attributeGetPrefix, $attrname)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrSetter"><xsl:call-template name="makeSetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $attrSetter)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- b) then for the "real" methods whose messages we produced above -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="methodname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('operations for ', $ifname, '::', $methodname, ': method')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this method if it has parameters of a type that has wsmap="suppress" -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:when test=" (param[@type=($G_setSuppressedInterfaces/@name)])
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync or (param[@mod='ptr'])" >
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping method ', $methodname, ' for it has parameters with suppressed types')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync function emitOperationsInBindingForInterface
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<xsl:template name="emitOperationsInBindingForInterface">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- a) again, first for the attributes whose messages we produced above -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrreadonly" select="@readonly" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this attribute if it has parameters of a type that has wsmap="suppress" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="( $attrtype=($G_setSuppressedInterfaces/@name) )">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping attribute ', $attrtype, ' for it is of a suppressed type')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrGetter"><xsl:call-template name="makeGetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrGetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrSetter"><xsl:call-template name="makeSetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_resulttype" select='$attrtype' />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- b) then for the "real" methods whose messages we produced above -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="methodname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this method if it has parameters of a type that has wsmap="suppress" -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:when test=" (param[@type=($G_setSuppressedInterfaces/@name)])
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync or (param[@mod='ptr'])" >
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping method ', $methodname, ' for it has parameters with suppressed types')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!--**********************************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync **********************************************************************-->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync template for "idl" match; this emits the header of the target file
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync and recurses into the librarys with interfaces (which are matched below)
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync DO NOT EDIT! This is a generated file.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync Generated from: src/VBox/Main/idl/VirtualBox.xidl (VirtualBox's interface definitions in XML)
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync Generator: src/VBox/Main/webservice/websrv-wsdl.xsl
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync template for "if" match: ignore all ifs except those for wsdl
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync template for "cpp": ignore
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- ignore this -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync - - - - - - - - - - - - - - - - - - - - - - -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- swallow -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync - - - - - - - - - - - - - - - - - - - - - - -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync - - - - - - - - - - - - - - - - - - - - - - -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- swallow -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync - - - - - - - - - - - - - - - - - - - - - - -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync "library" match: we use this to emit most of the WSDL <types> section.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync With WSDL "document" style, this requires us to go through all interfaces
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync and emit complexTypes for all method arguments and return values.
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <definitions
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync name="VirtualBox"
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="xmlns">http://schemas.xmlsoap.org/wsdl/</xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="targetNamespace"><xsl:value-of select="$G_targetNamespace" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- at top of WSDL file, dump a <types> section with user-defined types -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * WSDL type definitions in XML Schema
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="targetNamespace"><xsl:value-of select='$G_targetNamespace' /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- type-define all enums -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * enumerations
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> enum: <xsl:value-of select="@name" /> -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:value-of select="@name" />: <xsl:value-of select="@value" /> -
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- XML Schema does not seem to have a C-like mapping between identifiers and numbers;
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync instead, it treats enumerations like strings that can have only specific values. -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="value"><xsl:value-of select="@name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- type-define all interfaces that have wsmap=struct as structs (complexTypes) -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:for-each select="//interface[@wsmap='struct']">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> interface <xsl:value-of select="@name" /> as struct: </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- type-define all collections as arrays (complexTypes) -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * collections as arrays
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="ifwsmap" select="//interface[@name=$type]/@wsmap" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat(' collection ', @name, ' as array (wsmap: ', $ifwsmap, '): ')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="concat('ArrayOf', @type)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="($ifwsmap='managed') or ($ifwsmap='explicit')">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsd:element name="array" minOccurs="0" maxOccurs="unbounded">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="type"><xsl:value-of select="$G_typeObjectRef" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsd:element name="array" minOccurs="0" maxOccurs="unbounded">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="type"><xsl:value-of select="concat('vbox:', @type)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="msg" select="concat('library template: collection "', @name, '" uses interface with unsupported wsmap attribute value "', $ifwsmap, '"')" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- for WSDL 'document' style, we need to emit elements since we can't
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync refer to types in message parts as with RPC style -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * elements for message arguments (parts); generated for WSDL 'document' style
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="ifname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="wsmap"><xsl:value-of select="@wsmap" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:if test='not( ($wsmap="suppress") or ($wsmap="struct") )'>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment>Interface <xsl:copy-of select="$ifname" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('************* types: elements for interface "', $ifname, '"')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- a) attributes first -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrtype"><xsl:value-of select="@type" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrsafearray"><xsl:value-of select="@safearray" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrreadonly"><xsl:value-of select="@readonly" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('elements for ', $ifname, '::', $attrname, ': attribute of type "', $attrtype, '", readonly: ', $attrreadonly)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this attribute if it has parameters of a type that has wsmap="suppress" -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:when test="( $attrtype=($G_setSuppressedInterfaces/@name) )">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping attribute ', $attrtype, ' for it is of a suppressed type')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> readonly attribute <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$attrname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> read/write attribute <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$attrname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- aa) get method: emit request and result -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitGetAttributeElements">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrname" select="$attrname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrtype" select="$attrtype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="attrsafearray" select="$attrsafearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- bb) emit a set method if the attribute is read/write -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="attrSetter"><xsl:call-template name="makeSetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('..', $ifname, '::', $attrSetter)" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_valuetype" select="$attrtype" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_valuesafearray" select="$attrsafearray" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$attrSetter" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- b) "real" methods after the attributes -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="methodname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="debugMsg"><xsl:with-param name="msg" select="concat('messages for ', $ifname, '::', $methodname, ': method')" /></xsl:call-template>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment> method <xsl:copy-of select="$ifname" />::<xsl:copy-of select="$methodname" /> </xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- skip this method if it has parameters of a type that has wsmap="suppress" -->
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync <xsl:when test=" (param[@type=($G_setSuppressedInterfaces/@name)])
28a02a9abdb21adbaaeeae87339534ca0346f97avboxsync or (param[@mod='ptr'])" >
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:comment><xsl:value-of select="concat('skipping method ', $methodname, ' for it has parameters with suppressed types')" /></xsl:comment>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- always emit a request message -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- emit a second "result" message only if the method has "out" arguments or a return value -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- <xsl:if test="(count(param[@dir='out'] | param[@dir='return']) > 0)"> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:with-param name="_methodname" select="$methodname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- </xsl:if> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </xsl:if> <!-- <xsl:if test='not( ($wsmap="suppress") or ($wsmap="struct") )'> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </xsl:if> <!-- <xsl:if test="$G_basefmt='document'"> -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsd:element name="interfaceID" type="xsd:string" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <!-- done! -->
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <part name="fault" element="vbox:InvalidObjectFault" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * messages for all interfaces
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="ifname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="wsmap"><xsl:value-of select="@wsmap" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync messages for interface <xsl:copy-of select="$ifname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:if test='not( ($wsmap="suppress") or ($wsmap="struct") )'>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitMessagesForInterface">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * one portType for all interfaces
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:copy-of select="'vbox'" /><xsl:value-of select="$G_portTypeSuffix" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="ifname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="wsmap"><xsl:value-of select="@wsmap" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync operations in portType for interface <xsl:copy-of select="$ifname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:if test='not( ($wsmap="suppress") or ($wsmap="struct") )'>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitOperationsInPortTypeForInterface">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </portType>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync * one binding for all interfaces
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync ******************************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="name"><xsl:value-of select="concat('vbox', $G_bindingSuffix)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="type"><xsl:value-of select="concat('vbox:vbox', $G_portTypeSuffix)" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="style"><xsl:value-of select="$G_basefmt" /></xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:attribute name="transport">http://schemas.xmlsoap.org/soap/http</xsl:attribute>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="ifname"><xsl:value-of select="@name" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:variable name="wsmap"><xsl:value-of select="@wsmap" /></xsl:variable>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync operations in portType for interface <xsl:copy-of select="$ifname" />
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync *************************************
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:if test='not( ($wsmap="suppress") or ($wsmap="struct") )'>
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync <xsl:call-template name="emitOperationsInBindingForInterface">
db3dbd0ed7eb69f804a8921fa23a1267ea01f46evboxsync </definitions>