當您在 Visual Studio.NET XML 結構描述設計工具中檢視多維的 XSD 結構描述時,出現錯誤訊息

文章翻譯 文章翻譯
文章編號: 325695 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

當您嘗試開啟,並在 Visual Studio.NET 的 XML 設計工具] 視窗中檢視多維的 XML 結構描述定義 (XSD) 結構描述的結構描述設計工具視窗而不是可能會開啟,而且可能會收到下列錯誤訊息 XML 設計工具] 的 [資料] 檢視中:
雖然此 XML 文件的格式正確,它會包含 [DataView 無法顯示的結構。相同的資料表 (TableName) 不能在兩個巢狀關聯子資料工作表

發生的原因

XSD 結構描述會儲存為.xml 副檔名的檔案。Visual Studio.NET 設計工具是副檔名為基礎。如此會開啟 XML 設計工具視窗而非結構描述設計工具視窗,但您嘗試開啟,並在 Visual Studio.NET 中檢視文件,以.xml 副檔名的檔案會被解譯為一般的 XML 檔案。XML 設計工具在 Visual Studio.NET 中使用 ADO.NET 結構描述推斷規則來自動推斷 XML 文件的結構描述。不允許或支援多維的關聯性中的 Microsoft.NET Framework RTM 發行 ADO.NET 結構描述推斷規則。

解決方案

重新命名,或將文件儲存成具有.xsd 副檔名來開啟並檢視在 Visual Studio.NET XML 結構描述設計工具視窗中的檔案。Visual Studio.NET XML 結構描述設計工具可以正確地載入並顯示多維的 XSD 結構描述。

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

重新建立錯誤訊息和測試解析度,請依照下列步驟執行:
  1. In Notepad, paste the following code in a new file:
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    	<xs:element name="OrdersInventoryData" type="OrdersInventoryDataType" />
    	<xs:complexType name="ItemType">
    		<xs:sequence>
    			<xs:element name="id" type="xs:string" />
    			<xs:element name="qty" type="xs:integer" />
    		</xs:sequence>
    	</xs:complexType>
    	<xs:complexType name="OrderType">
    		<xs:sequence>
    			<xs:element name="OrderId" type="xs:string" />
    			<xs:element name="CustomerId" type="xs:string" />
    			<xs:element name="Item" type="ItemType" maxOccurs="unbounded" />
    		</xs:sequence>
    	</xs:complexType>
    	<xs:complexType name="InventoryType">
    		<xs:sequence>
    			<xs:element name="Item" type="ItemType" maxOccurs="unbounded" />
    		</xs:sequence>
    	</xs:complexType>
    	<xs:complexType name="OrdersInventoryDataType">
    		<xs:sequence>
    			<xs:element name="Order" type="OrderType" maxOccurs="unbounded" />
    			<xs:element name="Inventory" type="InventoryType" maxOccurs="unbounded"/>
    		</xs:sequence>
    	</xs:complexType>
    </xs:schema>
    					
  2. 將檔案儲存為 OrderInventory.xml 到您的硬碟。範例結構描述是多維的因為 順序OrdersInventoryData 項目 物品欄 子項目有子元素,名為 ItemType complexType (Item 項 目是在兩個父子式關聯性中的子系) 的 項目
  3. 在 Visual 的 Studio.NET 開啟新的或現有的 Microsoft Visual Basic.NET 或 Microsoft Visual C#.NET 專案,例如 Windows 應用程式專案或主控台應用程式專案。
  4. 將您剛才所建立的 OrderInventory.xml XML 文件加入至專案。
  5. 在 [方案總管] 中按兩下,以開啟 OrderInventory.xml。文件的內容的 [XML] 檢視會顯示在 XML 設計工具視窗中。
  6. 切換至 XML 設計工具視窗的 [資料 檢視。您會收到下列錯誤訊息:
    雖然此 XML 文件的格式正確,它會包含 [DataView 無法顯示的結構。相同的資料表 (Item) 不能在兩個巢狀關聯子資料工作表
    .xml 副檔名將導致一個 XML 設計工具] 視窗來代替結構描述設計工具視窗開啟。檔案的內容因此會被視為一般 XML 而不是為 XSD 結構描述。當開啟以顯示 XML 資料的 Visual Studio.NET XML 設計工具視窗時 ADO.NET 結構描述推斷規則會套用到決定 XML 文件的結構描述結構。從 ADO.NET 結構描述推斷觀點 complexType XML 項目被推斷為一個獨立的資料表,而且一個資料表不能兩個或以上的父子式關聯的子系表格。範例] 結構描述中 ItemType complexType項目 項目已被定義為的 訂單 (OrderType complexType) 和 物品欄 (InventoryType complexType) 項目子系。這不是允許或 ADO.NET 結構描述推斷規則,在 RTM 版 Microsoft.NET Framework 的支援。
  7. 關閉 XML 設計工具視窗。
  8. 在 [方案總管] 中重新命名 OrderInventory.xsd OrderInventory.xml。若要執行此動作在檔案上按一下滑鼠右鍵,然後按一下 [重新命名]。
  9. 在 [方案總管] 中按兩下,以開啟 OrderInventory.xsd。文件的內容的 [XML] 檢視會顯示在 XML 結構描述設計工具視窗中。切換到 結構描述] 檢視,並注意結構描述結構會正確顯示。

?考

當您使用 XML 檔案,與 Visual Studio.NET 或 Xsd.exe 公用程式,可能也會收到 「 相同的資料表 (TableName) 不能在兩個巢狀關聯子資料工作表 」 錯誤訊息。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
325696當您在 Visual Studio.NET XML 設計工具中檢視多維度的 XML 資料時,收到錯誤訊息

屬性

文章編號: 325695 - 上次校閱: 2006年6月14日 - 版次: 3.4
這篇文章中的資訊適用於:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
關鍵字:?
kbmt kbprb KB325695 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:325695
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com