J
Jiho Han
I have an abstract class and a couple of derived classes. I didn't like
the default schema exposed by wsdl, so I decided to implement XmlSchemaProvider.
The schema is exposed properly for the abstract class. However, the derived
classes are not being exposed at all through wsdl. The child schema is being
loaded because the schema method is being invoked and the file is getting
loaded. However, the wsdl only exposed the abstract class.
Here're the declarations:
[System.Xml.Serialization.XmlRootAttribute("entity", DataType="ParentEntity",
Namespace="http://schemas.infinityinfo.com", IsNullable=false)]
[XmlInclude(typeof(accountEntity))]
[XmlSchemaProvider("LoadSchemaFile")]
ublic abstract partial class ParentEntity : IXmlSerializable {}
....
[System.Xml.Serialization.XmlSchemaProvider("LoadSchemaFile")]
public partial class accountEntity : ParentEntity, IXmlSerializable
The wsdl exposes a method like this:
public void Create(ParentEntity entity);
Here's a relevant portion of the schema:
<xs:complexType name="ParentEntity" abstract="true" final=""/>
<xs:element name="entity" type="iisarentEntity" />
<xs:complexType name="accountEntity">
<xs:complexContent mixed="false">
<xs:extension base="iisarentEntity">
<xs:sequence>....
Thanks
Jiho Han
Senior Software Engineer
Infinity Info Systems
The Sales Technology Experts
Tel: 212.563.4400 x216
Fax: 212.760.0540
(e-mail address removed)
www.infinityinfo.com
the default schema exposed by wsdl, so I decided to implement XmlSchemaProvider.
The schema is exposed properly for the abstract class. However, the derived
classes are not being exposed at all through wsdl. The child schema is being
loaded because the schema method is being invoked and the file is getting
loaded. However, the wsdl only exposed the abstract class.
Here're the declarations:
[System.Xml.Serialization.XmlRootAttribute("entity", DataType="ParentEntity",
Namespace="http://schemas.infinityinfo.com", IsNullable=false)]
[XmlInclude(typeof(accountEntity))]
[XmlSchemaProvider("LoadSchemaFile")]
ublic abstract partial class ParentEntity : IXmlSerializable {}
....
[System.Xml.Serialization.XmlSchemaProvider("LoadSchemaFile")]
public partial class accountEntity : ParentEntity, IXmlSerializable
The wsdl exposes a method like this:
public void Create(ParentEntity entity);
Here's a relevant portion of the schema:
<xs:complexType name="ParentEntity" abstract="true" final=""/>
<xs:element name="entity" type="iisarentEntity" />
<xs:complexType name="accountEntity">
<xs:complexContent mixed="false">
<xs:extension base="iisarentEntity">
<xs:sequence>....
Thanks
Jiho Han
Senior Software Engineer
Infinity Info Systems
The Sales Technology Experts
Tel: 212.563.4400 x216
Fax: 212.760.0540
(e-mail address removed)
www.infinityinfo.com