import 元素绑定支持
本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.
.NET Framework 为 <import> 元素提供部分绑定支持。
对于 <import> 元素,Xsd.exe 工具忽略 schemaLocation 特性,并且希望将导入的文件作为附加命令行参数。
说明
<import> 元素类似于 <include> 元素。这两个元素均显示为根元素 <schema> 的子级;它们必须出现在其他任何子级之前。二者均位于一个单独的 <schema> 定义中,该定义通常在另一个 .xsd 文件中定义。二者有一个重要的区别,如下所述:
<import>:在使用 namespace 特性指定的单独命名空间内导入架构定义和声明。
<include>:在指定为现有 XML 架构定义的 targetNamespace 的同一个命名空间内包括附加的架构定义和声明。
下面是 <import> 元素的用法示例:
<xsd:import namespace="http://example.org/attr" schemaLocation="http://example.org/definitions/attr.xsd" />
SchemaLocation 特性
schemaLocation 特性用于指定导入的 .xsd 文件的位置。但是,当 schemaLocation 特性出现在 <import> 元素中时,Xsd.exe 将忽略该特性。而对于 Xsd.exe 来说,导入的任何文件都被指定为附加的命令行参数。
所生成的源文件的名称是以参数形式传递的最后一个 XSD 文件的名称。例如,下面的 Xsd.exe 命令行调用:
xsd importedAttribute.xsd attributeRef.xsd /classes /language:CS
所得到的源文件的名称将为 attributeRef.cs。
![]() |
---|
当 schemaLocation 特性出现在 <include> 元素中时,Xsd.exe 会使用该特性。当从 XML 架构文档生成源代码时,Xsd.exe 识别使用文件系统绝对路径的值。有关更多信息,请参见 include 元素绑定支持. |
Namespace 特性
namespace 特性用来标识导入的目标命名空间,该命名空间必须不同于执行导入的 XSD 文档(包含 <import> 元素的文档)的目标命名空间。
当从 XML 架构文档生成源代码时,Xsd.exe 会在应用于与所导入的实体对应的每个类型或字段的 .NET Framework 特性上设置 Namespace 属性。即使在未导入额外命名空间时,Xsd.exe 也会将以下两个特性的 Namespace 属性设置为原始 XSD 文档的目标命名空间的该属性。
XmlTypeAttribute:如果在架构中定义了任何数据类型。
可以使用某些与 XML 相关的特性类的 Namespace 属性来指定导入的命名空间。该属性如下所示:
可能的特性 | 绑定支持 |
---|---|
id |
Xsd.exe 实用工具会忽略旨在提供唯一标识符的 id 特性。 |
namespace |
请参见前面的 Namespace Attribute部分。 |
schemaLocation |
请参见前面的 SchemaLocation Attribute部分。 |
可能的父元素:<schema>
可能的子元素:<annotation>