When creating a disassembler we set the envelope and document schemas. With the document schema being multiples or Unbounded.
If I create a schema for "People" like so:
=====================================================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element name="Person">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Name" type="xs:string" />
<xs:element name="Age" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
===================================================
I can not point to the document to the unbounded element as it does not have its own schema, or can I?
If I create the same information like so:
===================================================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:ns0=" xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:import schemaLocation=".\schema3.xsd" namespace=" />
<xs:annotation>
<xs:appinfo>
<b:references>
<b:reference targetNamespace=" />
</b:references>
</xs:appinfo>
</xs:annotation>
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ns0erson" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
AND
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:element name="Person">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Age" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
========================================================
Where the document schema is seperated and imported into the envelope schema there is no problem identifying the envelope and document schemas and the disassembler will work.
However, in the later method, when converted into a Web Service, the proxy treats the unbounded element as an array.
Biztalk will not acccept a method (Web Service or Not) that requires an array as a parameter.
So basically if you create a web service using the later method Biztalk Orcestrations can not consume it.
If you use the first you can not disassemble the message
This, to me, is absolutely ridiculas, for a intergration engine not to be able to intergrate even with its own requirements.
I would like to be able to assume that my orchestrations can consume any standards compliant web service. Especially if the web service is constructed with BizTalk.
Please can someone tell me I AM WRONG and how I should be going about this.
Any Comments would be appreciated.
Best Regards,
Rod
If I create a schema for "People" like so:
=====================================================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element name="Person">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Name" type="xs:string" />
<xs:element name="Age" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
===================================================
I can not point to the document to the unbounded element as it does not have its own schema, or can I?
If I create the same information like so:
===================================================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:ns0=" xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:import schemaLocation=".\schema3.xsd" namespace=" />
<xs:annotation>
<xs:appinfo>
<b:references>
<b:reference targetNamespace=" />
</b:references>
</xs:appinfo>
</xs:annotation>
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ns0erson" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
AND
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns=" xmlns:b=" targetNamespace=" xmlns:xs=" <xs:element name="Person">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Age" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
========================================================
Where the document schema is seperated and imported into the envelope schema there is no problem identifying the envelope and document schemas and the disassembler will work.
However, in the later method, when converted into a Web Service, the proxy treats the unbounded element as an array.
Biztalk will not acccept a method (Web Service or Not) that requires an array as a parameter.
So basically if you create a web service using the later method Biztalk Orcestrations can not consume it.
If you use the first you can not disassemble the message
This, to me, is absolutely ridiculas, for a intergration engine not to be able to intergrate even with its own requirements.
I would like to be able to assume that my orchestrations can consume any standards compliant web service. Especially if the web service is constructed with BizTalk.
Please can someone tell me I AM WRONG and how I should be going about this.
Any Comments would be appreciated.
Best Regards,
Rod