0

0

使用带批注的 XDR 架构创建 XML 视图

黄舟

黄舟

发布时间:2017-03-01 16:44:33

|

1727人浏览过

|

来源于php中文网

原创

可以使用 xdr(简化 xml-data)架构创建关系数据的 xml 视图。然后可以使用 xpath 查询来查询这些视图。这类似于使用 create view 语句创建视图并指定对视图的 sql 查询。 
xml 架构描述 xml 文档的结构以及对文档中数据的不同约束。当指定对该架构的 xpath 查询时,返回的 xml 文档结构由对其执行 xpath 查询的架构确定。 
在 microsoft® sql server™ 2000 中,使用简化 xml-data (xdr) 语言创建架构。xdr 是一种灵活的语言,它克服了用来描述文档结构的文档类型定义 (dtd) 的一些限制。与 dtd 不同,xdr 架构使用与 xml 文档相同的语法描述文档结构。 此外,在 dtd 中,所有数据内容均为字符数据。xdr 语言架构使您得以指定元素或特性的数据类型。 
在 xdr 架构中, 元素包含整个架构。作为 元素的属性,可以描述定义架构名称的特性和架构驻留的命名空间。在 xdr 语言中,所有元素声明都必须包含在 元素中。 
最小的 xdr 架构如下: 

 
 
   ... 
 
 元素是从 xml-data 命名空间 (urn:schemas-microsoft-com:xml-data) 派生出的。

说明  本文档假设您熟悉 XML-Data 语言。 
XDR 架构的批注 
可以在 XDR 架构中使用对到数据库的映射进行描述的批注来查询该数据库,并以 XML 文档格式返回结果。SQL Server 2000 引入了许多批注,可以使用这些批注将 XDR 架构映射到数据库中的表和列。可以对 XDR 架构所创建的 XML 视图指定 XPath 查询,以查询数据库并获得 XML 格式的结果。 
这是替代更复杂的 SQL 查询编写过程的方法,该方法使用 FOR XML EXPLICIT 模式将 XML 文档结构作为查询的一部分加以描述。有关在 SELECT 查询中使用 FOR XML EXPLICIT 模式的更多信息,请参见使用 EXPLICIT 模式。然而,为克服对映射架构上的 XPath 查询的大多数限制,请使用 FOR XML EXPLICIT 模式的 SQL 查询返回 XML 文档格式的结果。 
如果拥有公用 XDR 架构(如 Microsoft BizTalk™ 架构),可以执行下列任一操作:  
· 编写 FOR XML EXPLICIT 模式的查询,以便生成的数据对公用 XDR 架构有效;然而,编写 FOR XML EXPLICIT 查询可能比较麻烦。  
· 制作公用 XDR 架构的专用复本。然后将批注添加到专用复本,从而生成映射架构。可以指定对映射架构的 XPath 查询。该查询所生成的是公用架构命名空间中的数据。与编写复杂的 FOR XML EXPLICIT 查询相比,创建带批注的架构并指定对该架构的 XPath 查询是一个简单得多的过程。下图说明了此过程。

说明  Microsoft BizTalk™ 框架旨在为常用商业对象(如合同、订单和约会)定义标准 XML 格式。这些商业架构复本可以在 http://biztalk.org/BizTalk/default.asp 中找到。 
映射架构 
在关系数据库的上下文中,将任意的 XDR 架构映射到关系存储是非常有用的。达到此目的的一个方法是对 XDR 架构进行批注。带批注的 XDR 架构称为"映射架构",它提供了关于如何将 XML 数据映射到关系存储的信息。映射架构实际上是关系数据的 XML 视图。可以使用这些映射检索 XML 文档格式的关系数据。 
Microsoft SQL Server 2000 引入了许多批注,可以在 XDR 架构中使用这些批注,将元素和特性映射到数据库表和列。可以使用 XPath(XML 路径)指定对映射架构(XML 视图)的查询。映射架构描述了最后所得到的文档结构。 
批注的命名空间 
在 XDR 架构中,使用下面的命名空间指定批注:urn:schemas-microsoft-com:xml-sql。 
下例显示指定命名空间的最简单方法是在 标记中指定它。urn:schemas-microsoft-com:xml-sql 命名空间的批注必须是由命名空间限定的。

 
 
    ........... 

所用的命名空间前缀是任意的。 在本文档中,sql 前缀用于表示批注命名空间和使此命名空间中的批注区别于其它命名空间中的批注。 
数据类型的命名空间 
XDR 架构使您得以指定元素或特性的数据类型。使用下面的命名空间指定数据类型: urn:schemas-microsoft-com:datatypes。 
以下是带有命名空间声明的最小 XDR 架构:

 
 
   ... 

所用的命名空间前缀是任意的。 在本文档中,dt 前缀用于表示数据类型命名空间和使此命名空间中的批注区别于其它命名空间中的批注。 
元素来源于 xml-data 命名空间:urn:schemas-microsoft-com:xml-data。  
XDR 架构示例 
下例显示如何将批注添加到 XDR 架构中。XDR 架构由 元素和 EmpID、Fname 及 Lname 特性组成。 

AI智研社
AI智研社

AI智研社是一个专注于人工智能领域的综合性平台

下载
 

 
     
     
    
     
     
     
 

现在,将批注添加到此 XDR 架构中,使架构的元素和特性映射到数据库的表和列。 带批注的 XDR 架构如下:  

 

 
     
     
    
     
     
     
 

在此映射架构中,使用 sql:relation 批注将 元素映射到 Employees 表。使用 sql:field 批注将特性 EmpID、Fname 和 Lname 映射到 Employees 表中的 EmployeeID、FirstName 和 LastName 列。 
此带批注的 XDR 架构提供关系数据的 XML 视图。使用 Xpath(XML 路径)语言可以查询该 XML 视图。Xpath 查询返回 XML 文档形式的结果,而不是 SQL 查询所返回的行集。 
  
说明  在映射架构中,指定的关系值(如表名和列名)区分大小写。

以上就是使用带批注的 XDR 架构创建 XML 视图的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.1万人学习

Django 教程
Django 教程

共28课时 | 3.7万人学习

React 教程
React 教程

共58课时 | 4.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号