2011-04-20 54 views
1

我想將XML模式(Main.xsd)添加到包含另一模式(base.xsd)的數據集中,前者使用複雜類型。「將字段節點中的無效XPath選擇無法找到..」錯誤加載到數據集中時

Main.xsd有一個定義xs:unique的選項和字段,用於唯一地定義一個特定的元素作爲主鍵。 這裏是Main.xsd:

<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/Main.xsd" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" targetNamespace="http://tempuri.org/Main.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified" version="3.0.4 01-07-2011"> 

<xs:include schemaLocation="base.xsd"/> 

<xs:complexType name="Employees"> 
<xs:sequence> 
    <xs:element name="EmployeeID" type="UE_SignedInt"/> 
</xs:sequence> 
</xs:complexType> 

<xs:element name="Report" type=" Employees" /> 

<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
<xs:complexType> 
    <xs:choice minOccurs="0" maxOccurs="unbounded"> 
    <xs:element ref=" Report " /> 
    </xs:choice> 
</xs:complexType> 
<xs:unique name="ReportConst" msdata:PrimaryKey="true"> 
    <xs:selector xpath=".//Report" /> 
    <xs:field xpath="EmployeeID" /> 
</xs:unique> 
</xs:element> 
</xs:schema> 

類型「UE_SignedInt」,其中包含在所述Main.xsd被base.xsd defind。

現在,當我嘗試將Main.xsd包含到數據集中時,它會引發錯誤:「字段節點內部的XPath選擇無效。無法找到EmployeeID「,因爲EmployeeID使用base.xsd中定義的類型。

如果我在這個元素中使用了一些基本的類型如「xs:int」,那麼加載到數據集中的工作很好。任何人都可以請幫我解決這個問題?

回答

1

的問題得到了解決:

<xs:unique name="ReportConst" msdata:PrimaryKey="true"> 
<xs:selector xpath="." /> 
<xs:field xpath="EmployeeID" /> 
</xs:unique> 
0

您需要指定UE_SignedInt元素的名稱空間。當我體改獨特塊作爲

<xs:element name="EmployeeID" type="xxx:UE_SignedInt"/> 
+0

謝謝您response.But的「僱員」使用Main.xsd模式的相同的命名空間。所以,我們不必明確提及名稱空間 – Archana 2011-04-20 07:32:20

相關問題