你目前正处于脱机状态,正在等待 Internet 重新连接

在 Visual Studio.net XML 架构设计器中查看多维 XSD 架构时出现错误消息

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 325695
症状
当您尝试打开并在 Visual Studio.net 的 XML 设计器窗口中查看多维的 XML 架构定义 (XSD) 架构可能会打开一个架构设计器窗口而不是,并在 XML 设计器的 数据 视图中可能会收到以下错误消息:
尽管此 XML 文档的格式正确,它包含了在 DataView 无法显示的结构。在同一个表 (TableName) 不能是子表中两个嵌套关系
原因
XSD 架构保存为扩展名为.xml 文件中。在 Visual Studio.net 设计器是基于扩展名的。使用.xml 扩展名的文件都被解释为常规的 XML 文件,因此当您尝试打开并在 Visual Studio.net 中查看文档的架构设计器窗口而不是打开一个 XML 设计器窗口。在 Visual Studio.net 中的 XML 设计器使用 ADO.NET 架构推理规则来自动推断架构的 XML 文档。ADO.NET 架构推理规则不允许,或在 Microsoft.net 框架的 RTM 版本中支持多维的关系。
解决方案
重命名或将文档另存为以打开并查看它在 Visual Studio.net XML 架构设计器窗口中,扩展名为.xsd 文件。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 元素具有名为 ItemItemType 复杂类型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 无法显示的结构。在同一个表 (项目) 不能是子表中两个嵌套关系
    .xml 文件扩展名会导致要打开的架构设计器窗口而不是一个 XML 设计器窗口。该文件的内容都因此被视为定期而不是作为 XSD 架构的 XML。当打开一个 Visual Studio.net XML 设计器窗口来显示 XML 数据时,ADO.NET 架构推理规则应用于确定 XML 文档的架构结构。从 ADO.NET 架构推理的角度看一个 复杂类型 的 XML 元素被推断为一个独立的表和表不能是子表中两个或多个父-子关系。示例架构中已经定义了 ItemType 复杂类型Item 元素是 顺序OrderType 复杂类型) 和 库存InventoryType 复杂类型) 元素的子级。这不是允许或由 ADO.NET 架构推理规则在 Microsoft.net 框架的 RTM 版本中受支持。
  7. 关闭 XML 设计器窗口。
  8. 在解决方案资源管理器中,OrderInventory.xml 重命名 OrderInventory.xsd。以执行此操作,请用鼠标右键单击该文件,然后单击 重命名
  9. 在解决方案资源管理器中,双击 $ 打开 OrderInventory.xsd。在 XML 架构设计器窗口中显示文档的内容的 XML 视图。切换到 架构 视图中,注意架构结构都正确显示。
参考
使用 Visual Studio.net 或 Xsd.exe 实用工具使用 XML 文件时,您还可能收到的同一个表 (TableName) 不能是子表在两个嵌套关系中的"错误消息。 有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
325696在 Visual Studio.net XML 设计器中查看的多维的 XML 数据时,您会收到一条错误消息

警告:本文已自动翻译

属性

文章 ID:325695 - 上次审阅时间:06/14/2006 20:34:08 - 修订版本: 3.4

Microsoft Visual Studio 2005 Standard Edition, Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2005 Express Edition, Microsoft Visual Studio .NET 2003 Professional Edition, Microsoft Visual Studio .NET 2003 Enterprise Developer, Microsoft Visual Studio .NET 2003 Enterprise Architect, Microsoft Visual Studio .NET 2002 专业版, Microsoft Visual Studio .NET 2002 企业级开发版, Microsoft Visual Studio .NET 2002 企业级结构设计版

  • kbmt kbprb KB325695 KbMtzh
反馈