xml schema生成dataset时,遇到"The same table cannot be the child table in two nested relations"问题
如题。
我自己设计的xml schema.我根据这个xsd 文件生成了一个dataset 类(Entry)。
我在web service中声明了一个web method, 将这个dataset类作为返回值。当我尝试运行这个web service的时候,出现了exception: The same table 'XXX' cannot be the child table in two nested relations.
然后我回去看自己的schema 设计,使用xml编辑器察看,没觉得有重复的命名; 使用dataset编辑器察看,发现特别多的relation 在图中,我根本无从知道什么引起了这个错误。这究竟是什么原因呢?
另我使用的vs2008.
我的schema大概是这个样子:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema >
<xs:element name="CatalogEntry" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="MyEntry" msprop:Generator_DataSetName="MyEntry">
<xs:complexType>
<xs:sequence>
<xs:element name="GeneralProperty">
<xs:complexType>
<xs:sequence>
<xs:element name="Formation" type="xs:string">
</xs:element>
<xs:element name="Depth" type="xs:string">
</xs:element>
<xs:element name="Age" type="xs:string">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Mercury">
<xs:complexType>
<xs:sequence>
<xs:element name="Porosity" type="ctDoubleMeasure" />
<xs:element name="Permeability" type="ctDoubleMeasure" />
<xs:element name="Data" type="ctMercuryData" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ABCT1Saturation" type="ABCMeasurement" />
<xs:element name="ABCT2-1Saturation" type="ABCMeasurement" />
<xs:element name="ABCT2-2Saturation" type="ABCMeasurement" />
<xs:element name="ABCT2-3Saturation" type="ABCMeasurement" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ctDoubleMeasure">
<xs:sequence>
<xs:element name="Value" type="xs:double" />
<xs:element name="Unit" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ctMercuryData">
<xs:sequence>
<xs:element name="Pressure" type="xs:double" />
<xs:element name="Function" type="xs:double" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCMeasurement">
<xs:sequence>
<xs:element name="SaturationCondition" type="ctDoubleMeasure" />
<xs:element name="CoreAnalysisPermeability" type="ctDoubleMeasure" />
<xs:element name="CoreAnalysisPorosity" type="ctDoubleMeasure" />
<xs:choice>
<xs:element name="T1m1" type="ctDoubleMeasure" />