在查询中使用带批注的 XDR 架构(不推荐在 SQLXML 4.0 中使用)
重要提示 |
---|
本主题是针对早期应用程序提供的参考,以后不会就该功能继续进行开发。请避免在新的开发工作中使用此功能,而应使用带批注的 XSD 架构来创建 XML 视图。有关详细信息,请参阅带批注的 XSD 架构简介 (SQLXML 4.0)。可以将现有带批注的 XDR 架构转换为 XSD 架构。有关详细信息,请参阅将带批注的 XDR 架构转换为等效的 XSD 架构 (SQLXML 4.0)。 |
注意 |
---|
若要创建使用以下示例的工作示例,必须满足某些要求。有关详细信息,请参阅运行 SQLXML 示例的要求。 |
有几种方法可以针对带批注的架构指定查询以从数据库检索数据:
针对 XDR 架构在模板中指定 XPath 查询
<sql:xpath-query> 元素允许您针对带批注的架构所定义的 XML 视图指定 XPath 查询。使用 <sql:xpath-query> 元素的 mapping-schema 属性来标识带批注的架构,将针对该架构执行 XPath 查询。
模板是包含一个或多个查询的有效 XML 文档。FOR XML 和 XPath 查询返回文档片段。模板充当生成的文档片段的容器(模板提供一种指定单个顶级元素的方法)。
本主题中的示例使用模板针对带批注的架构指定 XPath 查询以从数据库检索数据。
内联映射架构
带批注的架构可以直接包括在模板中。sql:is-mapping-schema 批注用于指定带批注的内联架构。sql:is-mapping-schema 取布尔类型的值(0 = FALSE,1 = TRUE)。为模板中的 <Schema> 元素指定 sql:is-mapping-schema。
sql:id 属性唯一标识包含它的元素。sql:id 是 ID 类型的属性,针对 <Schema> 元素指定。然后使用赋给 sql:id 的值通过在 <sql:xpath-query> 中使用 mapping-schema 属性引用带批注的内联架构。
例如,以下是一个指定带批注的内联架构的模板:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <Schema xmlns="urn:schemas-microsoft-com:xml-data" sql:id="MyMappingSchema" sql:is-mapping-schema="1"> <ElementType name="Person.Contact" > <AttributeType name="ContactID" /> <AttributeType name="FirstName" /> <AttributeType name="LastName" /> <attribute type="ContactID" /> <attribute type="FirstName" /> <attribute type="LastName" /> </ElementType> </Schema> <sql:xpath-query mapping-schema="#MyMappingSchema"> Person.Contact[@ContactID < 4] </sql:xpath-query> </ROOT>
为了进行说明,使用文件名 InlineSchemaTemplate.xml 保存此模板。