axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <samisa_abeysin...@yahoo.com>
Subject Re: xsd:any support - FYI
Date Fri, 04 Jun 2004 03:56:50 GMT
Susantha,
    There is a partial DOM API already in Axis C++.
    This includes the BasicNode base class and ComplexElement and CharacterElement classes.
    You could use them for the time being. The same could be expanced to support DOM for xsd:any.

Thanks,
Samisa...
     
--- susantha@opensource.lk wrote:
> Hi all,
> 
> It seems that implementing of xsd:any support in Axis C++ need to be
> discussed further and in detail. I did further research on how other
> implementations implements xsd:any. Some of them goes with providing a DOM
> tree for xsd:any. Some other implementations support only types registered
> at runtime. They relies on registries.
> 
> So my suggestion is that Axis C++ should provide support for both
> registered types through type registries and DOM tree kind of approach for
> un-registered types. When we give DOM support its better to go with Axis
> C++ specific DOM API because DOM is not seem to be an standard in C/C++
> yet and all DOM functionality may not be needed in supporting xsd:any.
> 
> But for Axis 1.2 release its difficult to go with the complete
> implementation of both above approaches (also much research into the other
> implementations and user choices has to be considered).
> 
> So as a start I am going to give xsd:any support in the following way for
> Axis 1.2. Later we can improve.
> 
> I am going to pass the XML string in place of xsd:any type.
> 
> So lets consider following wsdl
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions name="ExtensibilityQuery"
> targetNamespace="urn:ExtensibilityQuery"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="urn:ExtensibilityQuery"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <types>
>     <xsd:schema attributeFormDefault="qualified"
>     elementFormDefault="qualified" targetNamespace="urn:ExtensibilityQuery">
> 
> 
>       <xsd:complexType name="ExtensibilityType">
>         <xsd:sequence>
>           <xsd:any namespace="##any"/>
>         </xsd:sequence>
>       </xsd:complexType>
> 
>       <xsd:element name="query">
>         <xsd:complexType>
>           <xsd:sequence>
>             <xsd:element name="queryExpression"
> type="tns:ExtensibilityType"/>
>           </xsd:sequence>
>         </xsd:complexType>
>       </xsd:element>
> 
>       <xsd:element name="queryResponse">
>         <xsd:complexType>
>           <xsd:sequence>
>             <xsd:element name="queryResult" type="tns:ExtensibilityType"/>
>           </xsd:sequence>
>         </xsd:complexType>
>       </xsd:element>
> 
>     </xsd:schema>
>   </types>
> 
>   <message name="queryIn">
>     <part element="tns:query" name="parameters" />
>   </message>
> 
>   <message name="queryOut">
>     <part element="tns:queryResponse" name="parameters" />
>   </message>
> 
>   <portType name="ExtensibilityQueryPortType">
>     <operation name="query">
>       <input message="tns:queryIn" />
>       <output message="tns:queryOut" />
>     </operation>
>   </portType>
> 
>   <binding name="ExtensibilityQueryBinding"
> type="tns:ExtensibilityQueryPortType">
>     <soap:binding style="document"
>     transport="http://schemas.xmlsoap.org/soap/http" />
>     <operation name="query">
>       <soap:operation soapAction="query" />
>       <input>
>         <soap:body use="literal" />
>       </input>
>       <output>
>         <soap:body use="literal" />
>       </output>
>     </operation>
>   </binding>
> 
> 
> 
> Then the wsdl2ws tool will generate a skeleton at server side
> 
> class ExtensibilityQueryPortType
> {
> 	XML_String query(XML_String queryExpression);
> }
> 
> 
> Where XML_String is
> 
> typedef XML_String char*
> 
> 
> Then the server skeleton implementator can parse the XML segment and
> understand it.
> 
> The client side stubs too will be implemented in the same way.
> 
> Please comment on this approach. Let me have your suggestions too.
> 
> Thanks,
> 
> Susantha.
> 
> 



	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

Mime
View raw message