DataSet, Relation, IsNested and WebService

C

Corno

Hi all,

If I want to provide a typed dataset from a webservice and if that dataset
has relations that are nested (isNested=True), then the relations(keyrefs)
are not available in the XSD that is offered. If I set IsNested to false or
default, then it is included in the XSD.
Is this a bug or by design?

Corno
 
S

Sahil Malik

Corno,

For what it's worth, I tried doing this in Visual Studio 2005 (that's all I
have installed - sorry) .. and this problem did not happen. Here is the
dataset I got. .. and as you look at the very bottom - the nested property
is set to true.

- Sahil Malik
http://dotnetjunkies.com/weblog/sahilmalik


<?xml version="1.0" encoding="utf-8" ?>
- <DataSet1 xmlns="http://tempuri.org/">
- <xs:schema id="DataSet1" targetNamespace="http://tempuri.org/DataSet1.xsd"
xmlns:mstns="http://tempuri.org/DataSet1.xsd"
xmlns="http://tempuri.org/DataSet1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:msprop="urn:schemas-microsoft-com:xml-msprop"
attributeFormDefault="qualified" elementFormDefault="qualified">
- <xs:element name="DataSet1" msdata:IsDataSet="true"
msprop:User_DataSetName="DataSet1"
msprop:DSGenerator_DataSetName="DataSet1">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="DataTable2" msdata:SuspendValidation="False"
msprop:User_TableName="DataTable2"
msprop:Generator_SuspendValidationPropName="SuspendValidation"
msprop:Generator_TableClassName="DataTable2DataTable"
msprop:Generator_SuspendValidationVarName="m_suspendValidation"
msprop:Generator_RowClassName="DataTable2Row"
msprop:Generator_RowEvArgName="DataTable2RowChangeEvent"
msprop:Generator_RowEvHandlerName="DataTable2RowChangeEventHandler"
msprop:Generator_TablePropName="DataTable2"
msprop:Generator_TableVarName="tableDataTable2">
- <xs:complexType>
- <xs:sequence>
<xs:element name="Column1"
msprop:Generator_DelegateName="Column1ChangeEventHandler"
msprop:Generator_ChangingEventName="Column1Changing"
msprop:Generator_ColumnVarNameInTable="columnColumn1"
msprop:Generator_EventArgName="Column1ChangeEventArg"
msprop:User_ColumnName="Column1"
msprop:Generator_ColumnPropNameInRow="Column1"
msprop:Generator_ChangedEventName="Column1Changed"
msprop:Generator_ColumnPropNameInTable="Column1Column" type="xs:string"
minOccurs="0" />
<xs:element name="Column2"
msprop:Generator_DelegateName="Column2ChangeEventHandler"
msprop:Generator_ChangingEventName="Column2Changing"
msprop:Generator_ColumnVarNameInTable="columnColumn2"
msprop:Generator_EventArgName="Column2ChangeEventArg"
msprop:User_ColumnName="Column2"
msprop:Generator_ColumnPropNameInRow="Column2"
msprop:Generator_ChangedEventName="Column2Changed"
msprop:Generator_ColumnPropNameInTable="Column2Column" type="xs:string"
minOccurs="0" />
- <xs:element name="DataTable1" msdata:SuspendValidation="False"
msprop:User_TableName="DataTable1"
msprop:Generator_SuspendValidationPropName="SuspendValidation"
msprop:Generator_TableClassName="DataTable1DataTable"
msprop:Generator_SuspendValidationVarName="m_suspendValidation"
msprop:Generator_RowClassName="DataTable1Row"
msprop:Generator_RowEvArgName="DataTable1RowChangeEvent"
msprop:Generator_RowEvHandlerName="DataTable1RowChangeEventHandler"
msprop:Generator_TablePropName="DataTable1"
msprop:Generator_TableVarName="tableDataTable1" minOccurs="0"
maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
<xs:element name="Column1"
msprop:Generator_DelegateName="Column1ChangeEventHandler"
msprop:Generator_ChangingEventName="Column1Changing"
msprop:Generator_ColumnVarNameInTable="columnColumn1"
msprop:Generator_EventArgName="Column1ChangeEventArg"
msprop:User_ColumnName="Column1"
msprop:Generator_ColumnPropNameInRow="Column1"
msprop:Generator_ChangedEventName="Column1Changed"
msprop:Generator_ColumnPropNameInTable="Column1Column" type="xs:string"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
- <xs:unique name="Constraint1">
<xs:selector xpath=".//mstns:DataTable2" />
<xs:field xpath="mstns:Column1" />
</xs:unique>
- <xs:keyref name="FK_DataTable2_DataTable1" refer="Constraint1"
msdata:IsNested="true">
<xs:selector xpath=".//mstns:DataTable1" />
<xs:field xpath="mstns:Column1" />
</xs:keyref>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" />
</DataSet1>


- Sahil Malik
http://dotnetjunkies.com/weblog/sahilmalik
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top