<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Softwaremaker - Interoperability</title>
    <link>http://www.softwaremaker.net/blog/</link>
    <description>&lt;Challenging Conventions /&gt;</description>
    <language>en-us</language>
    <copyright>William T</copyright>
    <lastBuildDate>Fri, 24 Oct 2008 00:58:46 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>itnews@softwaremaker.net</managingEditor>
    <webMaster>itnews@softwaremaker.net</webMaster>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=ed446f21-e2ca-46a7-8dad-5ab67a0fdf85</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,ed446f21-e2ca-46a7-8dad-5ab67a0fdf85.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ahhh ... it has been a while, hasnt it ?
</p>
        <p>
My life is just torn between working with bits of 2, beats of 4 and nucleotides of
4. But while challenging, it has been really <a href="http://sg.vr-zone.com/articles/acryan-playon-hdmi-network-digital-video-recorder-review-updated-13-oct-/6084.html" target="_blank">fun</a>.
As spoken to a friend today, my passions in life seeks out to expand the comfort boundaries
of gray matter, which we called the mind and to constantly challenge and stimulate
the brain to learn and absorb new things that one would never think of learning if
one boxed themself in a virtual space, which techies like me would call "typecast".
</p>
        <p>
One example that I highlighted to my friend today, which I respectfully pointed out
to them that he falls under, is when he said: "<em>But we tech people are not good
at talking to people and engaging them in meaningful conversations ...</em>"
</p>
        <p>
Typecast alert !
</p>
        <p>
I ended up talking with him (not to him) for a good 20 minutes and told him we just
had a meaningful conversation and that he could hold one really well. I told him that
he himself set up this virtual boundary to box himself in. No one did and that he
could easily remove this barrier and elevate himself to do and more importantly, to
learn new things and behaviors. Instead of having new curiousities about old things,
have new questions, passions and interests towards <em><strong>new</strong></em> things.
</p>
        <p>
Anyways, I wont be talking about my new-found passions here but I will be briefly
touching on a topic that many people knew I have passions for (and I still do) - and
that is the innards and the plumbings of software technologies.
</p>
        <p>
I came across types of this type of questions a lot in emails, forum questions and
usergroup events:
</p>
        <p>
          <img height="34" alt="openquotes.png" src="http://www.softwaremaker.net/blog/content/binary/openquotes.png" width="44" border="0" /> I
have this WSDL file that looks something like this:
</p>
        <p>
&lt;?xml version='1.0' encoding='UTF-8'?&gt;
</p>
        <p>
&lt;definitions name="someCustomer" targetNamespace="urn:someCustomer" xmlns:typens="urn:someCustomer"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"&gt;<br />
      &lt;message name="add_someCustomer"&gt;<br />
            &lt;part name="resId"
type="xsd:string"/&gt;<br />
            &lt;part name="cPortable"
type="xsd:string"/&gt;<br />
      &lt;/message&gt;<br />
      &lt;message name="add_someCustomerResponse"&gt;<br />
            &lt;part name="add_someCustomerReturn"
type="xsd:string"/&gt;<br />
      &lt;/message&gt;<br />
      &lt;portType name="someCustomerPortType"&gt;<br />
            &lt;operation name="add_someCustomer"&gt;<br />
                 
&lt;input message="typens:add_someCustomer"/&gt;<br />
                 
&lt;output message="typens:add_someCustomerResponse"/&gt;<br />
            &lt;/operation&gt;<br />
      &lt;/portType&gt;<br />
      &lt;binding name="someCustomerBinding" type="typens:someCustomerPortType"&gt;<br />
            &lt;soap:binding
style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/&gt;<br />
            &lt;operation name="add_someCustomer"&gt;<br />
                 
&lt;soap:operation soapAction="urn:someCustomerAction"/&gt;<br />
                 
&lt;input&gt;<br />
                       
&lt;soap:body namespace="urn:someCustomer" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/&gt;<br />
                 
&lt;/input&gt;<br />
                 
&lt;output&gt;<br />
                       
&lt;soap:body namespace="urn:someCustomer" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/&gt;<br />
                 
&lt;/output&gt;<br />
            &lt;/operation&gt;<br />
      &lt;/binding&gt;<br />
      &lt;service name="someCustomerService"&gt;<br />
            &lt;port name="someCustomerPort"
binding="typens:someCustomerBinding"&gt;<br />
                 
&lt;soap:address location="http://foo/bar/someCustomer.php"/&gt;<br />
            &lt;/port&gt;<br />
      &lt;/service&gt;<br />
&lt;/definitions&gt;<br /></p>
        <p>
However, I need to change the add_someCustomerReturn  type from xsd:string to
a complex type.
</p>
        <p>
I’ve made several tests variants around trying to add a complex type, like the following:
</p>
        <p>
      &lt;message name="add_someCustomerResponse"&gt;<br />
            &lt;xsd:complexType
name="respType" &gt;<br />
                 
&lt;xsd:sequence&gt;<br />
                       
&lt;xsd:element name="someStatus" type="xsd:boolean" /&gt;<br />
                       
&lt;xsd:element name="someResult" type="xsd:boolean" /&gt;<br />
                 
&lt;/xsd:sequence&gt;<br />
            &lt;/xsd:complexType&gt;<br />
            &lt;part name="add_someCustomerReturn"
type="typens:respType"/&gt;<br />
      &lt;/message&gt;
</p>
        <p>
However I always end up having an error like:
</p>
        <p>
Custom tool error: Unable to import WebService/Schema. Unable to import binding 'customerBinding'
from namespace 'urn:customer'. Unable to import operation 'add_customer'. The datatype
'urn:customer:respType' is missing. <img height="34" alt="closequotes.png" src="http://www.softwaremaker.net/blog/content/binary/closequotes.png" width="44" border="0" /></p>
        <p>
          <br />
One thing to note is the above "web service" is using: <strong><em><u>soap:binding
style="rpc"</u></em></strong>. While I am not advocating one over another (<strong><em><u>document/literal</u></em></strong>),
I personally think that if you stripped the religious and philisophical debates, one
can certainly build a RPC-style web service using doc/literal encoding.
</p>
        <p>
The above exceptions funs afoul of what many techies called: <a href="http://www.w3.org/TR/wsdl" target="_blank">Section
5 Encoding</a></p>
        <p>
For the above to be resolved, you need to define a complexType reference by wsdl:part
“add_someCustomerReturn” <strong><em>in the schema</em></strong>.<br />
To do this, you MUST define wsdl:types and add the schema to the WSDL that defines
the complex and change the type=”xsd:string” (of the wsdl:part) to the identifying
complexType in the schema (encoded in wsdl:types)<br /></p>
        <p>
While this is an old article written by Tim, the same principles apply. Do check it
out of you need to stimulate your brain: <a href="http://msdn.microsoft.com/en-us/library/ms995710.aspx" target="_blank">The
Argument against SOAP Encoding</a></p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=ed446f21-e2ca-46a7-8dad-5ab67a0fdf85" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>All about WSDL, Types and Section 5 Encoding (again)</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,ed446f21-e2ca-46a7-8dad-5ab67a0fdf85.aspx</guid>
      <link>http://www.softwaremaker.net/blog/AllAboutWSDLTypesAndSection5EncodingAgain.aspx</link>
      <pubDate>Fri, 24 Oct 2008 00:58:46 GMT</pubDate>
      <description>&lt;p&gt;
Ahhh ... it has been a while, hasnt it ?
&lt;/p&gt;
&lt;p&gt;
My life is just torn between working with bits of 2, beats of 4 and nucleotides of
4. But while challenging, it has been really &lt;a href="http://sg.vr-zone.com/articles/acryan-playon-hdmi-network-digital-video-recorder-review-updated-13-oct-/6084.html" target=_blank&gt;fun&lt;/a&gt;.
As spoken to a friend today, my passions in life seeks out to expand the comfort boundaries
of gray matter, which we called the mind and to constantly challenge and stimulate
the brain to learn and absorb new things that one would never think of learning if
one boxed themself in a virtual space, which techies like me&amp;nbsp;would call "typecast".
&lt;/p&gt;
&lt;p&gt;
One example that I highlighted to my friend today, which I respectfully pointed out
to them that he falls under, is when he said: "&lt;em&gt;But we tech people are not good
at talking to people and engaging them in meaningful conversations ...&lt;/em&gt;"
&lt;/p&gt;
&lt;p&gt;
Typecast alert !
&lt;/p&gt;
&lt;p&gt;
I ended up talking with him (not to him) for a good 20 minutes and told him we just
had a meaningful conversation and that he could hold one really well. I told him that
he himself set up this virtual boundary to box himself in. No one did and that he
could easily remove this barrier and elevate himself to do and more importantly, to
learn new things and behaviors. Instead of having new curiousities about old things,
have new questions, passions and interests&amp;nbsp;towards &lt;em&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/em&gt; things.
&lt;/p&gt;
&lt;p&gt;
Anyways, I wont be talking about my new-found passions here but I will be briefly
touching on a topic that many people knew I have passions for (and I still do) - and
that is the innards and the plumbings of software technologies.
&lt;/p&gt;
&lt;p&gt;
I came across types of this type of questions a lot in emails, forum questions and
usergroup events:
&lt;/p&gt;
&lt;p&gt;
&lt;img height=34 alt=openquotes.png src="http://www.softwaremaker.net/blog/content/binary/openquotes.png" width=44 border=0&gt;&amp;nbsp;I
have this WSDL file that looks something like this:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;definitions name="someCustomer" targetNamespace="urn:someCustomer" xmlns:typens="urn:someCustomer"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;message name="add_someCustomer"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;part name="resId"
type="xsd:string"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;part name="cPortable"
type="xsd:string"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/message&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;message name="add_someCustomerResponse"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;part name="add_someCustomerReturn"
type="xsd:string"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/message&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;portType name="someCustomerPortType"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;operation name="add_someCustomer"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;input message="typens:add_someCustomer"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;output message="typens:add_someCustomerResponse"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/operation&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/portType&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;binding name="someCustomerBinding" type="typens:someCustomerPortType"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;soap:binding
style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;operation name="add_someCustomer"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;soap:operation soapAction="urn:someCustomerAction"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;input&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;soap:body namespace="urn:someCustomer" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/input&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;output&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;soap:body namespace="urn:someCustomer" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/output&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/operation&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/binding&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;service name="someCustomerService"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;port name="someCustomerPort"
binding="typens:someCustomerBinding"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;soap:address location="http://foo/bar/someCustomer.php"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/port&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/service&amp;gt;&lt;br&gt;
&amp;lt;/definitions&amp;gt;&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
However, I need to change the add_someCustomerReturn&amp;nbsp; type from xsd:string to
a complex type.
&lt;/p&gt;
&lt;p&gt;
I’ve made several tests variants around trying to add a complex type, like the following:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;message name="add_someCustomerResponse"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsd:complexType
name="respType" &amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xsd:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xsd:element name="someStatus" type="xsd:boolean" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xsd:element name="someResult" type="xsd:boolean" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/xsd:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsd:complexType&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;part name="add_someCustomerReturn"
type="typens:respType"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/message&amp;gt;
&lt;/p&gt;
&lt;p&gt;
However I always end up having an error like:
&lt;/p&gt;
&lt;p&gt;
Custom tool error: Unable to import WebService/Schema. Unable to import binding 'customerBinding'
from namespace 'urn:customer'. Unable to import operation 'add_customer'. The datatype
'urn:customer:respType' is missing. &lt;img height=34 alt=closequotes.png src="http://www.softwaremaker.net/blog/content/binary/closequotes.png" width=44 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
One thing to note is the above "web service" is using: &lt;strong&gt;&lt;em&gt;&lt;u&gt;soap:binding
style="rpc"&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;. While I am not advocating one over another (&lt;strong&gt;&lt;em&gt;&lt;u&gt;document/literal&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;),
I personally think that if you stripped the religious and&amp;nbsp;philisophical debates,&amp;nbsp;one
can certainly build a RPC-style web service using doc/literal encoding.
&lt;/p&gt;
&lt;p&gt;
The above exceptions funs afoul of what many techies called: &lt;a href="http://www.w3.org/TR/wsdl" target=_blank&gt;Section
5 Encoding&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
For the above to be resolved, you need to define a complexType reference by wsdl:part
“add_someCustomerReturn” &lt;strong&gt;&lt;em&gt;in the schema&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
To do this, you MUST define wsdl:types and add the schema to the WSDL that defines
the complex and change the type=”xsd:string” (of the wsdl:part) to the identifying
complexType in the schema (encoded in wsdl:types)&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
While this is an old article written by Tim, the same principles apply. Do check it
out of you need to stimulate your brain: &lt;a href="http://msdn.microsoft.com/en-us/library/ms995710.aspx" target=_blank&gt;The
Argument against SOAP Encoding&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=ed446f21-e2ca-46a7-8dad-5ab67a0fdf85" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Interoperability;Software Development;Useful Tips;WS-Splat Specs;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=ffb0444f-6f6f-4840-9082-9f3bf0e2a4c6</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,ffb0444f-6f6f-4840-9082-9f3bf0e2a4c6.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Finally, <a href="http://www.oasis-open.org" target="_blank">OASIS</a> announced last
week that it is <a href="http://www.oasis-open.org/archives/members/200704/msg00023.html" target="_blank">calling
for participation for Web Services Federation</a>. The formation of the WS-Federation
Technical Committee is announced <a href="http://www.oasis-open.org/news/oasis-news-2007-05-02.php" target="_blank">here</a>.
</p>
        <p>
WS-Fed is an important addition to the WS-* protocol suite that enables users to sign-in
seamlessly to systems outside of their own organization without requiring (more) new
usernames and passwords using Single-Sign-On (SSO) between separate organizations
with an established trust relationship.
</p>
        <p>
          <em>
            <strong>WS-Fed builds upon and composes with other WS-* protocols:</strong>
          </em>
        </p>
        <ul>
          <li>
WS-Fed extends WS-Trust 
</li>
          <li>
WS-Fed composes with WS-Security and WS-SecureConversation to ensure data integrity
and privacy 
</li>
          <li>
WS-Fed composes with WS-MetadataExchange and WS-Policy to enable simple provisioning
and trust relationship configuration</li>
        </ul>
        <p>
          <strong>
            <em>Does WS-Fed compete with Liberty SAML?<br /></em>
          </strong>
        </p>
        <ul>
          <li>
Both SAML and WS-Fed enable browser-based identity federation (<em>Passive-Mode</em>) 
</li>
          <li>
However, WS-Fed enables a superset of scenarios, including: 
<ul><li>
Seamless federation with Web Services and/or Rick-Client applications 
</li><li>
Separation of identities, token types, protocols and encodings 
</li><li>
Multi-purpose Security Token Service (STS) that can return tokens stating different
assertions based upon the scenario<br /></li></ul></li>
        </ul>
        <p>
          <strong>
            <em>WS-Fed adds identity federation capabilities to the existing WS-* suite
of protocols resulting in:</em>
          </strong>
          <br />
        </p>
        <ul>
          <li>
A single protocol stack that supports the majority of your needs and scenarios 
</li>
          <li>
Simplified development, deployment, management and control</li>
        </ul>
        <p>
The formation of the Technical Committee to drive the standardization of the WS-Fed
is an important step in evolution of the industry-wide effort to create a single,
comprehensive communication protocol suite that enables many current and new scenarios
most effectively.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=ffb0444f-6f6f-4840-9082-9f3bf0e2a4c6" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>OASIS and the WS-Federation Specifications</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,ffb0444f-6f6f-4840-9082-9f3bf0e2a4c6.aspx</guid>
      <link>http://www.softwaremaker.net/blog/OASISAndTheWSFederationSpecifications.aspx</link>
      <pubDate>Wed, 02 May 2007 03:39:08 GMT</pubDate>
      <description>&lt;p&gt;
Finally, &lt;a href="http://www.oasis-open.org" target="_blank"&gt;OASIS&lt;/a&gt; announced last
week that it is &lt;a href="http://www.oasis-open.org/archives/members/200704/msg00023.html" target=_blank&gt;calling
for participation for Web Services Federation&lt;/a&gt;. The formation of the WS-Federation
Technical Committee is announced &lt;a href="http://www.oasis-open.org/news/oasis-news-2007-05-02.php" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
WS-Fed is an important addition to the WS-* protocol suite that enables users to sign-in
seamlessly to systems outside of their own organization without requiring (more) new
usernames and passwords using Single-Sign-On (SSO) between separate organizations
with an established trust relationship.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;WS-Fed builds upon and composes with other WS-* protocols:&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
WS-Fed extends WS-Trust 
&lt;li&gt;
WS-Fed composes with WS-Security and WS-SecureConversation to ensure data integrity
and privacy 
&lt;li&gt;
WS-Fed composes with WS-MetadataExchange and WS-Policy to enable simple provisioning
and trust relationship configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Does WS-Fed compete with Liberty SAML?&lt;br&gt;
&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Both SAML and WS-Fed enable browser-based identity federation (&lt;em&gt;Passive-Mode&lt;/em&gt;) 
&lt;li&gt;
However, WS-Fed enables a superset of scenarios, including: 
&lt;ul&gt;
&lt;li&gt;
Seamless federation with Web Services and/or Rick-Client applications 
&lt;li&gt;
Separation of identities, token types, protocols and encodings 
&lt;li&gt;
Multi-purpose Security Token Service (STS) that can return tokens stating different
assertions based upon the scenario&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;WS-Fed adds identity federation capabilities to the existing WS-* suite
of protocols resulting in:&lt;/em&gt;&lt;/strong&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A single protocol stack that supports the majority of your needs and scenarios 
&lt;li&gt;
Simplified development, deployment, management and control&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The formation of the Technical Committee to drive the standardization of the WS-Fed
is an important step in evolution of the industry-wide effort to create a single,
comprehensive communication protocol suite that enables many current and new scenarios
most effectively.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=ffb0444f-6f6f-4840-9082-9f3bf0e2a4c6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Interoperability;WS-Splat Specs;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=899fe212-5778-451a-b2cc-0b27f39349c2</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,899fe212-5778-451a-b2cc-0b27f39349c2.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <title>Published: WCF Interoperability with WSE 2.0 and the Migration Incentive</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,899fe212-5778-451a-b2cc-0b27f39349c2.aspx</guid>
      <link>http://www.softwaremaker.net/blog/PublishedWCFInteroperabilityWithWSE20AndTheMigrationIncentive.aspx</link>
      <pubDate>Fri, 07 Jul 2006 06:11:57 GMT</pubDate>
      <description>&lt;p&gt;
Blasphemy ...
&lt;/p&gt;
&lt;p&gt;
It is finally &lt;a href="http://wcf.netfx3.com/content/WindowsCommunicationFoundationWCFInteroperabilityandMigrationwithWSE20.aspx" target="_blank"&gt;published&lt;/a&gt;.
After many, many, and I mean, many months of paying the process tax for this piece,
it is finally &lt;a href="http://wcf.netfx3.com/content/WindowsCommunicationFoundationWCFInteroperabilityandMigrationwithWSE20.aspx" target="_blank"&gt;LIVE&lt;/a&gt; !
&lt;/p&gt;
&lt;p&gt;
I started this piece with the first ever March 2005 CTP of &lt;a href=http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx target=_blank&gt;Windows
Communication Foundation (WCF, previously - Indigo)&lt;/a&gt; and I went through so many
port demos and edit document cycles its so unbelievably painful ...
&lt;/p&gt;
&lt;p&gt;
But it is really good to see this in online form and shape.
&lt;/p&gt;
&lt;p&gt;
I started with this idea even though &lt;a href=http://www.microsoft.com target=_blank&gt;MSFT
Corp&lt;/a&gt; has &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/WSS_Appx_InteropCons_WSE30.asp" target="_blank"&gt;explicity
stated that it will not support any form of interoperability&lt;/a&gt; between &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1ba1f631-c3e7-420a-bc1e-ef18bab66122&amp;amp;displaylang=en" target="_blank"&gt;WSE
2.0&lt;/a&gt; and WCF, even though it is &amp;quot;&lt;em&gt;theoretically possible to develop Web
services using WSE 2.0 in such a way that they can interoperate with WSE 3.0 (and
WCF) by using only a &lt;strong&gt;reduced set of specifications&lt;/strong&gt;&lt;/em&gt;&amp;quot;
&lt;/p&gt;
&lt;p&gt;
More importantly, the main reason for the motivation to write such a piece&amp;nbsp;is
written in the article itself and I quote:
&lt;/p&gt;
&lt;p&gt;
[BEGIN QUOTE] 
&lt;/p&gt;
&lt;hr /&gt;
&lt;em&gt;&lt;font color="#808080"&gt;...WSE 2.0 has seen 3 service pack releases since its official
launch in 2004. It implemented the OASIS Web Services Security 1.0 specification which
was the widely accepted interoperability standard protocols between secured web services
as well as the implementations of WS-Addressing, WS-SecureConversation and WS-Trust.
It was integrated very nicely into Visual Studio 2003. Even BizTalk Server 2004 carries
with it a WSE 2.0 adapter for securing of Web Services. Thus, it would be fair to
assume that there is more than its fair share of implementations in the market today.&lt;/font&gt;&lt;/em&gt; 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color="#808080"&gt;Depending on timing, budget, complexity and a whole host
of other requirements, some of these applications will need to be moved and migrated
to WSE3.0 and some to WCF. Aaron Skonnard has provided a great &lt;/font&gt;&lt;/em&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/04/ServiceStation/" target="_blank"&gt;&lt;em&gt;&lt;font color="#808080"&gt;resource&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;font color="#808080"&gt; in
his &amp;ldquo;Service Station&amp;rdquo; column on MSDN on a brief overview on the migration
of WSE 2.0 applications to WSE 3.0 ones. However, as stated in his article, there
are some major changes in the programming model and architecture in WSE 3.0 and migrating
them from WSE 2.0 may not be trivial.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color="#808080"&gt;Another very important factor to take note is while WinFX,
and therefore WCF, is available downstream from Windows Vista to Windows 2003 and
Windows XP. That is as far down as it goes. There still exists a huge installed base
of Windows 2000 Servers out there running on server and data farms and if you need
to implement the advanced Web Services stacks on those servers, WSE is still a very
important strategy you cannot ignore.&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color="#808080"&gt;As noted in the above guidelines, even though Microsoft
will not guarantee interoperability between WSE 2.0 and WCF, the good news is that
there are a few WSE 2.0 common scenarios, which can allow wire-interoperability with
WCF. I will illustrate them in the next section...&lt;/font&gt;&lt;/em&gt; 
&lt;/p&gt;
&lt;hr /&gt;
[END QUOTE] 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
So, &lt;a href="http://wcf.netfx3.com/content/WindowsCommunicationFoundationWCFInteroperabilityandMigrationwithWSE20.aspx" target="_blank"&gt;this
article&lt;/a&gt; will outlined &lt;strong&gt;WHAT&lt;/strong&gt; that reduced set of specifications
are and &lt;strong&gt;HOW&lt;/strong&gt; to go about using them.
&lt;/p&gt;
&lt;p&gt;
Many Special Thanks go to &lt;a href="http://pluralsight.com/blogs/kirillg/" target="_blank"&gt;Kirill&lt;/a&gt;,&amp;nbsp;the
Interop PM on WCF, who&amp;nbsp;gave me&amp;nbsp;a couple of&amp;nbsp;tips to get over the&amp;nbsp;port-over
humps I had thoughout this piece since last year. And of course, I cannot forget &lt;a href="http://friends.newtelligence.net/clemensv/" target="_blank"&gt;Clemens&lt;/a&gt;,
who is the catalyst to making this publication happen when he came onboard.
&lt;/p&gt;
&lt;p&gt;
I hope this helps at least someone out there. Enjoy !
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=899fe212-5778-451a-b2cc-0b27f39349c2" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Articles;Community;Interoperability;Software Development;Web Services Enhancements (WSE);Windows Communication Foundation (WCF) aka Indigo;WS-Splat Specs;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=5814b1a6-ffe2-477a-aa0c-aea01f205635</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,5814b1a6-ffe2-477a-aa0c-aea01f205635.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
What a way to start off a new category on my blog called "Interoperability".<br />
I recently came across an interesting post in the forums that goes something like
this:
</p>
        <p>
          <strong>[QUOTE] 
<hr /></strong>
          <em>
            <font color="#808080">Currently I'm working with Visual Studio 2003 in
order to generate xmldsig signature. I'm using the class signedxml  to create
the xmldsig signature and I get somthing like this:</font>
          </em>
        </p>
        <p>
        </p>
        <p>
          <em>
            <font color="#808080">  [Signature xmlns="http://www.w3.org/2000/09/xmldsig#"]<br />
    [SignedInfo]<br />
      [CanonicalizationMethod<br />
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /]<br />
............<br />
  [/Signature]</font>
          </em>
        </p>
        <p>
          <em>
            <font color="#808080">But I need the signature to be in a namespace that should
be identified by<br />
the dsig prefix:</font>
          </em>
        </p>
        <p>
          <em>
            <font color="#808080">[dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"]<br />
[dsig:SignedInfo]<br />
.....<br />
[/dsig:Signature]</font>
          </em>
          <hr />
        </p>
        <p>
        </p>
        <p>
I really didnt think anything of this. At first glance, I thought the problem lies
not in the code BUT the processor / validator that was used to read this.
</p>
        <p>
The dsig or any prefix, for that matter, doesn't indicate whether they 2 use
different namespaces. Check<br />
the [default] namespaces and compare.
</p>
        <p>
Strictly speaking - 
</p>
        <ul>
          <li>
            <strong>[ds:Signature xmlns:ds="urn:softwaremaker.net-foo.bar" /]</strong>
          </li>
          <li>
            <strong>[dsig:Signature xmlns:dsig="urn:softwaremaker.net-foo.bar" /]</strong>
          </li>
          <li>
            <strong>[Signature xmlns="urn:softwaremaker.net-foo.bar /]</strong>
          </li>
        </ul>
        <p>
are <a href="http://www.google.com.sg/search?hl=en&amp;q=define%3A+Isomorphic&amp;meta=" target="_blank">isomorphically</a> the
same. If the end processor / validator reads it and treats differently, I believe
that it should be a design flaw at the other end as it is really poor design
to rely on namespace prefix.
</p>
        <p>
If you look at the <a href="http://www.w3.org/TR/xmldsig-core/" target="_blank">XML-Digital
Signature</a> Specifications, Section 1.3 states that:
</p>
        <p>
          <em>
            <font color="#808080">This namespace is also used as the prefix for algorithm
identifiers used by this specification. While applications MUST support XML and XML
namespaces, the use of internal entities [XML] or our "dsig" XML namespace prefix
and defaulting/scoping conventions are OPTIONAL; we use these facilities to provide
compact and readable examples.</font>
          </em>
        </p>
        <p>
Therefore, it is NOT necessarily to have a prefix to it as long as it points to the
same namespace.
</p>
        <p>
However, I spoke too fast. Further explanations by the other party has made me put
my thinking cap on. He provided 2 reasons being:
</p>
        <ol>
          <li>
Compatibility with our existing signer. 
</li>
          <li>
We are planning to extend the signature to <a href="http://www.w3.org/TR/XAdES/" target="_blank">XML
Advanced Electronic Signatures (XAdES)</a> format. In that case the <strong><em>prefix
is mandatory</em></strong>.</li>
        </ol>
        <p>
I am surprised [which kinda shows how much I know, or dont know ???]. I spent some
minutes digging into the <a href="http://www.w3.org/TR/XAdES/" target="_blank">XML
Advanced Electronic Signatures (XAdES)</a> specifications and true enough, it declares: 
<hr /><em><font color="#808080">The XML schema definition in clause 5 Qualifying properties
syntax defines the prefix "ds" for all the XML elements already defined in [XMLDSIG],
and states that the default namespace is the one defined for the present document.
In consequence, in the examples of this clause, the elements already defined in [XMLDSIG]
appear with the prefix "ds", whereas the new XML elements defined in the present document
appear without prefix.</font></em></p>
        <p>
        </p>
        <p>
          <table class="eg" cellpadding="5" width="100%" bgcolor="#99ffff" summary="Example" border="1">
            <tbody>
              <tr>
                <td>
                  <pre>                              XMLDSIG 
                                   |
&lt;ds:Signature ID?&gt;- - - - - - - - -+- - - - -+
  &lt;ds:SignedInfo&gt;                  |         |
    &lt;ds:CanonicalizationMethod/&gt;   |         |
    &lt;ds:SignatureMethod/&gt;          |         |
    (&lt;ds:Reference URI? &gt;          |         |
      (&lt;ds:Transforms&gt;)?           |         |
      &lt;ds:DigestMethod&gt;            |         |
      &lt;ds:DigestValue&gt;             |         |
    &lt;/ds:Reference&gt;)+              |         |
  &lt;/ds:SignedInfo&gt;                 |         |
  &lt;ds:SignatureValue&gt;              |         |
  (&lt;ds:KeyInfo&gt;)?- - - - - - - - - +         |
                                             |
  &lt;ds:Object&gt;                                |
                                             |
    &lt;QualifyingProperties&gt;                   |
                                             |
      &lt;SignedProperties&gt;                     |
                                             |
        &lt;SignedSignatureProperties&gt;          |
          (SigningTime)                      |
          (SigningCertificate)               |
          (SignaturePolicyIdentifier)        |
          (SignatureProductionPlace)?        |
          (SignerRole)?                      |
        &lt;/SignedSignatureProperties&gt;         |
                                             |
        &lt;SignedDataObjectProperties&gt;         |
          (DataObjectFormat)*                |
          (CommitmentTypeIndication)*        |
          (AllDataObjectsTimeStamp)*         |
          (IndividualDataObjectsTimeStamp)*  |
        &lt;/SignedDataObjectProperties&gt;        |
                                             |
      &lt;/SignedProperties&gt;                    |
                                             |
      &lt;UnsignedProperties&gt;                   |
                                             |
        &lt;UnsignedSignatureProperties&gt;        |
          (CounterSignature)*                |
        &lt;/UnsignedSignatureProperties&gt;       |
                                             |
      &lt;/UnsignedProperties&gt;                  |
                                             |
    &lt;/QualifyingProperties&gt;                  |
                                             |
  &lt;/ds:Object&gt;                               |
                                             |
&lt;/ds:Signature&gt;- - - - - - - - - - - - - - - +
                                             |
                                          XAdES</pre>
                </td>
              </tr>
            </tbody>
          </table>
                       <br /><font color="#808080"><em>Readers must take into account that the XAdES forms build
up on the[XMLDSIG] by adding new XML elements containing qualifying information within
the shown [XMLDSIG]ds:Object element, according to the rules defined in the present
document. This ds:Object element will act as a bag for the whole set of qualifying
properties defined in the present document, conveniently grouped. 
<hr /></em></font></p>
        <p>
        </p>
        <p>
So, there are 2 questions to answer here:
</p>
        <ol>
          <li>
Is there a way to handle the Digital Signature prefix in the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecuritycryptographyxmlsignedxmlclasstopic.asp" target="_blank">SignedXML
Class</a> in .NET Framework 1.1 
</li>
          <li>
If so - How ? If not - How ?</li>
        </ol>
        <p>
I decided to spend some time on this and after much disassembling some of the <em>System.Security.Crytography.XML</em> binaries,
I found out to my dismay that the answer to Question [1] is NO. This is because the
constants and the URIs of the XML Digital Signature functions in the <em>System.Security.Crytography.XML</em> space
are found in the <strong><em>XMLSignature</em></strong> class and that class is declared
as an <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfInternalPG.asp" target="_blank">internal</a> class <img src="http://www.softwaremaker.net/pictures/swmemoticons/sad.gif" />.
</p>
        <p>
Therefore, the answer to Question [2] would be to build our own customized Digital
Signature stack. This may actually sound harder than it is. Truth is:- With <a href="http://www.aisto.com/roeder/dotnet/" target="_blank">Reflector</a> and
work done behind the <a href="http://www.mono-project.com/" target="_blank">MONO-Project</a> and
published on <a href="http://www.koders.com/" target="_blank">Koders.com</a>, I hacked
a workaround in a few hours time. That actually means that I didnt really do much
testing on it and so I <a href="http://www.softwaremaker.net/SWMTNC.asp" target="_blank">disclaim</a> myself
from any liabilities, including, but not limited to, mistakes, injuries, deaths,
etc caused if you choose to use it.
</p>
        <p>
You would use this assembly just like you would with System.Security.Cryptography.Xml.
The namespace would be <strong>Softwaremaker.NET.Security.Cryptography.Xml.PfDsigInterop</strong>.
</p>
        <p>
Do take note that I has ONLY implemented the XML Digital Signature in this assembly. 
<hr /><span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System.IO<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System.Security.Cryptography<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System.Xml<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System.text<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> Mono.Xml<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> System.Text.UTF8Encoding<br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Imports</span> Softwaremaker.NET.Security.Cryptography.Xml.PfDsigInterop<br /><br />
myRSA <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> RSACryptoServiceProvider<br />
myRSA.FromXmlString(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"..."</span>)<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> doc <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> XmlDocument <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> XmlDocument<br />
doc.PreserveWhitespace <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">False</span><br />
doc.Load(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> XmlTextReader(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"..."</span>))<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> mySignedXML <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> SignedXml <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> SignedXml(doc)<br />
mySignedXML.SigningKey <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> myRSA<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Create a data object to hold the data to sign.</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> dataObject <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> DataObject<br />
dataObject.Data <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> doc.ChildNodes<br />
dataObject.Id <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"someSWMId"</span><br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Add the data object to the signature.</span><br />
mySignedXML.AddObject(dataObject)<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> ref <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> Reference<br />
ref.Uri <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"#someSWMId"</span><br />
mySignedXML.AddReference(ref)<br /><br />
mySignedXML.ComputeSignature()<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> xmldg <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> XmlElement <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> mySignedXML.GetXml<br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Append the element to the XML document.</span><br />
doc.DocumentElement.AppendChild(doc.ImportNode(xmldg, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">True</span>))<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Save the signed XML document to a file</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> xmltw <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> XmlTextWriter(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"..."</span>, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> UTF8Encoding(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">False</span>))<br />
doc.WriteTo(xmltw)<br />
xmltw.Close() 
<hr /></span></p>
        <p>
        </p>
        <p>
To verify the signed XML, we would just have to use back the <strong>System.Security.Cryptography.Xml</strong> found
in the .NET Framework. At least, the .NET stack got the design of the namespaces and
the prefixes right. 
<hr /><span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Create a new XML document.</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> xmlDocument <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> XmlDocument<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Load the passedXML file into the document.</span><br />
xmlDocument.Load(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"..."</span>)<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Create a new original SignedXml object and pass it the XML document class.</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> signedXml <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> System.Security.Cryptography.Xml.SignedXml<br /><br /><span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'
Find the "Signature" node and create a new XmlNodeList object.</span><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> xmlnsmgr <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> XmlNamespaceManager(xmlDocument.NameTable)<br />
xmlnsmgr.AddNamespace(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"SWM"</span>, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"http://www.w3.org/2000/09/xmldsig#"</span>)<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> nodeList <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> XmlNodeList <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> xmlDocument.SelectNodes(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"//SWM:Signature"</span>,
xmlnsmgr)<br />
signedXml.LoadXml(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">CType</span>(nodeList(0),
XmlElement))<br /><br />
myRSA <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> RSACryptoServiceProvider<br />
myRSA.FromXmlString(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"..."</span>)<br /><br /><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Return</span> signedXml.CheckSignature(myRSA) 
<hr /></span></p>
        <p>
        </p>
        <p>
You can download my [prefixed-XMLDSIG] custom assembly <a href="http://www.softwaremaker.net/DownloadSvcs/dsSWMPfDSigInteropLIB.asp" target="_blank">here</a>.
Do let me know if you have any comments or feedback. Enjoy !!!
</p>
        <p>
          <font color="#ff0000">
            <strong>[AUTHOR UPDATE]:</strong>
          </font>
          <hr />
          <font color="#ff0000">
            <em>I have spoken to a few experts [on the standards body] about
this and it seems that the concensus is that the prefix is NOT needed at all.</em>
          </font>
        </p>
        <p>
        </p>
        <p>
          <font color="#ff0000">
            <em>The XAdES specifications did not EXPLICITLY state that the
prefix is needed so I don't see how the conclusions are drawn that prefixes
are fixed. Maybe I am missing something.</em>
          </font>
        </p>
        <p>
          <font color="#ff0000">
            <em>It looked to me like all the spec was saying was that the
*examples* used those prefixes.</em>
          </font>
        </p>
        <p>
          <font color="#ff0000">
            <em>It strikes me as surprising that any specification worth
its salt would specify a *fixed prefix*. It would have been too restrictive and not
something that many vendors would agree and abide.</em>
          </font>
        </p>
        <p>
          <font color="#ff0000">
            <em>I have advised the other party to check with the other
parties/vendors for this. In the meantime, I will pull this assembly offline until
I get better clarifications.</em>
          </font>
          <hr />
        </p>
        <p>
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5814b1a6-ffe2-477a-aa0c-aea01f205635" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>XAdES Interop with XML-DSIG as implemented by the .NET Framework</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,5814b1a6-ffe2-477a-aa0c-aea01f205635.aspx</guid>
      <link>http://www.softwaremaker.net/blog/XAdESInteropWithXMLDSIGAsImplementedByTheNETFramework.aspx</link>
      <pubDate>Wed, 08 Feb 2006 13:18:02 GMT</pubDate>
      <description>&lt;p&gt;
What a way to start off a new category on my blog called "Interoperability".&lt;br&gt;
I recently came across an interesting post in the forums that goes something like
this:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;[QUOTE] 
&lt;hr&gt;
&lt;/strong&gt;&lt;em&gt;&lt;font color=#808080&gt;Currently I'm working with Visual Studio 2003 in
order to generate xmldsig signature. I'm using the class signedxml&amp;nbsp; to create
the xmldsig signature and I get somthing like this:&lt;/font&gt;&lt;/em&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;&amp;nbsp; [Signature xmlns="http://www.w3.org/2000/09/xmldsig#"]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [SignedInfo]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CanonicalizationMethod&lt;br&gt;
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /]&lt;br&gt;
............&lt;br&gt;
&amp;nbsp; [/Signature]&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;But I need the signature to be in a namespace that should
be identified by&lt;br&gt;
the dsig prefix:&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;[dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"]&lt;br&gt;
[dsig:SignedInfo]&lt;br&gt;
.....&lt;br&gt;
[/dsig:Signature]&lt;/font&gt;&lt;/em&gt; 
&lt;hr&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
I really didnt think anything of this. At first glance, I thought the problem&amp;nbsp;lies
not in the&amp;nbsp;code BUT the processor / validator that was used to read this.
&lt;/p&gt;
&lt;p&gt;
The dsig or any prefix, for that matter,&amp;nbsp;doesn't indicate whether they 2 use
different namespaces. Check&lt;br&gt;
the [default] namespaces and compare.
&lt;/p&gt;
&lt;p&gt;
Strictly speaking - 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[ds:Signature xmlns:ds="urn:softwaremaker.net-foo.bar" /]&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;[dsig:Signature xmlns:dsig="urn:softwaremaker.net-foo.bar" /]&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;[Signature xmlns="urn:softwaremaker.net-foo.bar /]&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
are &lt;a href="http://www.google.com.sg/search?hl=en&amp;amp;q=define%3A+Isomorphic&amp;amp;meta=" target=_blank&gt;isomorphically&lt;/a&gt; the
same. If the end processor / validator reads it and treats differently, I believe
that it should be a design flaw at the other end as it&amp;nbsp;is really poor design
to rely on namespace prefix.
&lt;/p&gt;
&lt;p&gt;
If you look at the &lt;a href="http://www.w3.org/TR/xmldsig-core/" target="_blank"&gt;XML-Digital
Signature&lt;/a&gt; Specifications, Section 1.3 states that:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font color=#808080&gt;This namespace is also used as the prefix for algorithm identifiers
used by this specification. While applications MUST support XML and XML namespaces,
the use of internal entities [XML] or our "dsig" XML namespace prefix and defaulting/scoping
conventions are OPTIONAL; we use these facilities to provide compact and readable
examples.&lt;/font&gt;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
Therefore, it is NOT necessarily to have a prefix to it as long as it points to the
same namespace.
&lt;/p&gt;
&lt;p&gt;
However, I spoke too fast. Further explanations by the other party has made me put
my thinking cap on. He provided 2 reasons being:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Compatibility with our existing signer. 
&lt;li&gt;
We are planning to extend the signature to &lt;a href=http://www.w3.org/TR/XAdES/ target=_blank&gt;XML
Advanced Electronic Signatures (XAdES)&lt;/a&gt; format. In that case the&amp;nbsp;&lt;strong&gt;&lt;em&gt;prefix
is mandatory&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I am surprised [which kinda shows how much I know, or dont know ???]. I spent some
minutes digging into the &lt;a href=http://www.w3.org/TR/XAdES/ target=_blank&gt;XML Advanced
Electronic Signatures (XAdES)&lt;/a&gt; specifications and true enough, it declares: 
&lt;hr&gt;
&lt;em&gt;&lt;font color=#808080&gt;The XML schema definition in clause 5 Qualifying properties
syntax defines the prefix "ds" for all the XML elements already defined in [XMLDSIG],
and states that the default namespace is the one defined for the present document.
In consequence, in the examples of this clause, the elements already defined in [XMLDSIG]
appear with the prefix "ds", whereas the new XML elements defined in the present document
appear without prefix.&lt;/font&gt;&lt;/em&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;table class=eg cellpadding=5 width="100%" bgcolor=#99ffff summary=Example border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre&gt;                              XMLDSIG 
                                   |
&amp;lt;ds:Signature ID?&amp;gt;- - - - - - - - -+- - - - -+
  &amp;lt;ds:SignedInfo&amp;gt;                  |         |
    &amp;lt;ds:CanonicalizationMethod/&amp;gt;   |         |
    &amp;lt;ds:SignatureMethod/&amp;gt;          |         |
    (&amp;lt;ds:Reference URI? &amp;gt;          |         |
      (&amp;lt;ds:Transforms&amp;gt;)?           |         |
      &amp;lt;ds:DigestMethod&amp;gt;            |         |
      &amp;lt;ds:DigestValue&amp;gt;             |         |
    &amp;lt;/ds:Reference&amp;gt;)+              |         |
  &amp;lt;/ds:SignedInfo&amp;gt;                 |         |
  &amp;lt;ds:SignatureValue&amp;gt;              |         |
  (&amp;lt;ds:KeyInfo&amp;gt;)?- - - - - - - - - +         |
                                             |
  &amp;lt;ds:Object&amp;gt;                                |
                                             |
    &amp;lt;QualifyingProperties&amp;gt;                   |
                                             |
      &amp;lt;SignedProperties&amp;gt;                     |
                                             |
        &amp;lt;SignedSignatureProperties&amp;gt;          |
          (SigningTime)                      |
          (SigningCertificate)               |
          (SignaturePolicyIdentifier)        |
          (SignatureProductionPlace)?        |
          (SignerRole)?                      |
        &amp;lt;/SignedSignatureProperties&amp;gt;         |
                                             |
        &amp;lt;SignedDataObjectProperties&amp;gt;         |
          (DataObjectFormat)*                |
          (CommitmentTypeIndication)*        |
          (AllDataObjectsTimeStamp)*         |
          (IndividualDataObjectsTimeStamp)*  |
        &amp;lt;/SignedDataObjectProperties&amp;gt;        |
                                             |
      &amp;lt;/SignedProperties&amp;gt;                    |
                                             |
      &amp;lt;UnsignedProperties&amp;gt;                   |
                                             |
        &amp;lt;UnsignedSignatureProperties&amp;gt;        |
          (CounterSignature)*                |
        &amp;lt;/UnsignedSignatureProperties&amp;gt;       |
                                             |
      &amp;lt;/UnsignedProperties&amp;gt;                  |
                                             |
    &amp;lt;/QualifyingProperties&amp;gt;                  |
                                             |
  &amp;lt;/ds:Object&amp;gt;                               |
                                             |
&amp;lt;/ds:Signature&amp;gt;- - - - - - - - - - - - - - - +
                                             |
                                          XAdES&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&lt;font color=#808080&gt;&lt;em&gt;Readers must take into account that the XAdES forms build
up on the[XMLDSIG] by adding new XML elements containing qualifying information within
the shown [XMLDSIG]ds:Object element, according to the rules defined in the present
document. This ds:Object element will act as a bag for the whole set of qualifying
properties defined in the present document, conveniently grouped. 
&lt;hr&gt;
&lt;/em&gt;&lt;/font&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
So, there are 2 questions to answer here:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Is there a way to handle the Digital Signature prefix&amp;nbsp;in the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecuritycryptographyxmlsignedxmlclasstopic.asp" target=_blank&gt;SignedXML
Class&lt;/a&gt; in .NET Framework 1.1 
&lt;li&gt;
If so - How ? If not - How ?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I decided to spend some time on this and after much disassembling some of the &lt;em&gt;System.Security.Crytography.XML&lt;/em&gt; binaries,
I found out to my dismay that the answer to Question [1] is NO. This is because the
constants and the URIs of the XML Digital Signature functions in the &lt;em&gt;System.Security.Crytography.XML&lt;/em&gt; space
are found in the &lt;strong&gt;&lt;em&gt;XMLSignature&lt;/em&gt;&lt;/strong&gt; class and that class is declared
as an &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfInternalPG.asp" target=_blank&gt;internal&lt;/a&gt; class &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/sad.gif"&gt;.
&lt;/p&gt;
&lt;p&gt;
Therefore, the answer to Question [2] would be to build our own customized Digital
Signature stack. This may actually sound harder than it is. Truth is:- With &lt;a href="http://www.aisto.com/roeder/dotnet/" target=_blank&gt;Reflector&lt;/a&gt;&amp;nbsp;and
work done behind the &lt;a href="http://www.mono-project.com/" target=_blank&gt;MONO-Project&lt;/a&gt; and
published on &lt;a href="http://www.koders.com/" target=_blank&gt;Koders.com&lt;/a&gt;, I hacked
a workaround in a few hours time. That actually means that I didnt really do much
testing on it and so I &lt;a href="http://www.softwaremaker.net/SWMTNC.asp" target=_blank&gt;disclaim&lt;/a&gt; myself
from any liabilities, including, but not limited to,&amp;nbsp;mistakes, injuries, deaths,
etc&amp;nbsp;caused if you choose to use it.
&lt;/p&gt;
&lt;p&gt;
You would use this assembly just like you would with System.Security.Cryptography.Xml.
The namespace would be &lt;strong&gt;Softwaremaker.NET.Security.Cryptography.Xml.PfDsigInterop&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Do take note that I has ONLY implemented the XML Digital Signature in this assembly. 
&lt;hr&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System.IO&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System.Security.Cryptography&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System.Xml&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System.text&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; Mono.Xml&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; System.Text.UTF8Encoding&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Imports&lt;/span&gt; Softwaremaker.NET.Security.Cryptography.Xml.PfDsigInterop&lt;br&gt;
&lt;br&gt;
myRSA &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; RSACryptoServiceProvider&lt;br&gt;
myRSA.FromXmlString(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"..."&lt;/span&gt;)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; doc &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; XmlDocument &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; XmlDocument&lt;br&gt;
doc.PreserveWhitespace &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;False&lt;/span&gt;
&lt;br&gt;
doc.Load(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; XmlTextReader(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"..."&lt;/span&gt;))&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; mySignedXML &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; SignedXml &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; SignedXml(doc)&lt;br&gt;
mySignedXML.SigningKey &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; myRSA&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Create a data object to hold the data to sign.&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; dataObject &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; DataObject&lt;br&gt;
dataObject.Data &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; doc.ChildNodes&lt;br&gt;
dataObject.Id &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"someSWMId"&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Add the data object to the signature.&lt;/span&gt;
&lt;br&gt;
mySignedXML.AddObject(dataObject)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; ref &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; Reference&lt;br&gt;
ref.Uri &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"#someSWMId"&lt;/span&gt;
&lt;br&gt;
mySignedXML.AddReference(ref)&lt;br&gt;
&lt;br&gt;
mySignedXML.ComputeSignature()&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; xmldg &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; XmlElement &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; mySignedXML.GetXml&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Append the element to the XML document.&lt;/span&gt;
&lt;br&gt;
doc.DocumentElement.AppendChild(doc.ImportNode(xmldg, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;True&lt;/span&gt;))&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Save the signed XML document to a file&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; xmltw &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; XmlTextWriter(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"..."&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; UTF8Encoding(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;False&lt;/span&gt;))&lt;br&gt;
doc.WriteTo(xmltw)&lt;br&gt;
xmltw.Close() 
&lt;hr&gt;
&lt;/span&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
To verify the signed XML, we would just have to use back the &lt;strong&gt;System.Security.Cryptography.Xml&lt;/strong&gt; found
in the .NET Framework. At least, the .NET stack got the design of the namespaces and
the prefixes right. 
&lt;hr&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Create a new XML document.&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; xmlDocument &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; XmlDocument&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Load the passedXML file into the document.&lt;/span&gt;
&lt;br&gt;
xmlDocument.Load(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"..."&lt;/span&gt;)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Create a new original SignedXml object and pass it the XML document class.&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; signedXml &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; System.Security.Cryptography.Xml.SignedXml&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;'
Find the "Signature" node and create a new XmlNodeList object.&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; xmlnsmgr &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; XmlNamespaceManager(xmlDocument.NameTable)&lt;br&gt;
xmlnsmgr.AddNamespace(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"SWM"&lt;/span&gt;, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"http://www.w3.org/2000/09/xmldsig#"&lt;/span&gt;)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Dim&lt;/span&gt; nodeList &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;As&lt;/span&gt; XmlNodeList &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; xmlDocument.SelectNodes(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"//SWM:Signature"&lt;/span&gt;,
xmlnsmgr)&lt;br&gt;
signedXml.LoadXml(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;CType&lt;/span&gt;(nodeList(0),
XmlElement))&lt;br&gt;
&lt;br&gt;
myRSA &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;New&lt;/span&gt; RSACryptoServiceProvider&lt;br&gt;
myRSA.FromXmlString(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"..."&lt;/span&gt;)&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;Return&lt;/span&gt; signedXml.CheckSignature(myRSA) 
&lt;hr&gt;
&lt;/span&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
You can download my [prefixed-XMLDSIG] custom assembly &lt;a href="http://www.softwaremaker.net/DownloadSvcs/dsSWMPfDSigInteropLIB.asp" target=_blank&gt;here&lt;/a&gt;.
Do let me know if you have any comments or feedback. Enjoy !!!
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;[AUTHOR UPDATE]:&lt;/strong&gt;&lt;/font&gt; 
&lt;hr&gt;
&lt;font color=#ff0000&gt;&lt;em&gt;I have spoken to a few experts [on the standards body] about
this and it seems that the concensus is that the prefix is NOT needed at all.&lt;/em&gt;&lt;/font&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;em&gt;The XAdES specifications did not EXPLICITLY state that the
prefix is needed so I don't see how&amp;nbsp;the conclusions are drawn&amp;nbsp;that prefixes
are fixed. Maybe I am missing something.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;em&gt;It looked to me like all the spec was saying was that the
*examples* used those prefixes.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;em&gt;It strikes me as surprising that any specification worth its
salt would specify a *fixed prefix*. It would have been too restrictive and not something
that many vendors would agree and abide.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;em&gt;I have advised the other party to&amp;nbsp;check with the other
parties/vendors for this. In the meantime, I will pull this assembly offline until
I get better clarifications.&lt;/em&gt;&lt;/font&gt; 
&lt;hr&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=5814b1a6-ffe2-477a-aa0c-aea01f205635" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Community;Interoperability;Software Development;XML Services</category>
    </item>
    <item>
      <trackback:ping>http://www.softwaremaker.net/blog/Trackback.aspx?guid=d9654392-b25c-46ce-b22e-acd29f21e890</trackback:ping>
      <pingback:server>http://www.softwaremaker.net/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.softwaremaker.net/blog/PermaLink,guid,d9654392-b25c-46ce-b22e-acd29f21e890.aspx</pingback:target>
      <dc:creator>William Tay</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now-Now <a href="http://www.hanselman.com/blog" target="_blank">Scott</a>, I think
we both agree on my thoughts <em>(below)</em> since Day 1, but I wouldnt go as
far as <a href="http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx" target="_blank">you</a>. <img src="http://www.softwaremaker.net/pictures/swmemoticons/smile.gif" />.
</p>
        <p>
          <hr />
... <em><strong>Some issues that I have come across are the use of <span class="searchword">Datasets</span> (a
NO ! NO ! in distributed designs -- &gt; Interop is a big problem and <span class="searchword">Datasets</span> are
TOO verbose), the inclusions of Data Schemas at the wire level when traversing network
calls, etc</strong>.</em> ... 
<hr /></p>
        <p>
        </p>
        <p>
My Evil trophy would <em>(have)</em> go<em>(ne)</em> to "<a href="http://www.softwaremaker.net/blog/ContractFirstMessagebasedWebMethodOverloading.aspx" target="_blank">Add
Web Reference</a>". Why the past tense in that ? It is <a href="http://www.softwaremaker.net/blog/SomethingSimpleCanGoAVeryLongWay.aspx" target="_blank">rectified</a>.
</p>
        <img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d9654392-b25c-46ce-b22e-acd29f21e890" />
        <br />
        <hr />
© William Tay 2012 | Swinging Technologist 
<br /><a href="http://www.softwaremaker.net/blog">http://www.softwaremaker.net/blog</a></body>
      <title>Datasets in Distributed Systems Design, Add Web Reference and All Things Evil</title>
      <guid isPermaLink="false">http://www.softwaremaker.net/blog/PermaLink,guid,d9654392-b25c-46ce-b22e-acd29f21e890.aspx</guid>
      <link>http://www.softwaremaker.net/blog/DatasetsInDistributedSystemsDesignAddWebReferenceAndAllThingsEvil.aspx</link>
      <pubDate>Wed, 08 Feb 2006 00:42:35 GMT</pubDate>
      <description>&lt;p&gt;
Now-Now &lt;a href="http://www.hanselman.com/blog" target=_blank&gt;Scott&lt;/a&gt;, I think we
both agree on my thoughts &lt;em&gt;(below)&lt;/em&gt; since Day 1, but I wouldnt go&amp;nbsp;as far
as &lt;a href="http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx" target=_blank&gt;you&lt;/a&gt;. &lt;img src="http://www.softwaremaker.net/pictures/swmemoticons/smile.gif"&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;hr&gt;
... &lt;em&gt;&lt;strong&gt;Some issues that I have come across are the use of &lt;span class=searchword&gt;Datasets&lt;/span&gt; (a
NO ! NO ! in distributed designs -- &amp;gt; Interop is a big problem and &lt;span class=searchword&gt;Datasets&lt;/span&gt; are
TOO verbose), the inclusions of Data Schemas at the wire level when traversing network
calls, etc&lt;/strong&gt;.&lt;/em&gt; ... 
&lt;hr&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
My Evil trophy would &lt;em&gt;(have)&lt;/em&gt; go&lt;em&gt;(ne)&lt;/em&gt; to&amp;nbsp;"&lt;a href="http://www.softwaremaker.net/blog/ContractFirstMessagebasedWebMethodOverloading.aspx" target=_blank&gt;Add
Web Reference&lt;/a&gt;". Why the past tense in that ? It is &lt;a href="http://www.softwaremaker.net/blog/SomethingSimpleCanGoAVeryLongWay.aspx" target=_blank&gt;rectified&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.softwaremaker.net/blog/aggbug.ashx?id=d9654392-b25c-46ce-b22e-acd29f21e890" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
© William Tay 2012 | Swinging Technologist 
&lt;br /&gt;
&lt;a href="http://www.softwaremaker.net/blog"&gt;http://www.softwaremaker.net/blog&lt;/a&gt;</description>
      <category>Interoperability;Software Development;XML Services</category>
    </item>
  </channel>
</rss>