WEB开发网
开发学院数据库MSSQL Server 从 SQL Server 2005 中处理 XML 阅读

从 SQL Server 2005 中处理 XML

 2007-05-13 09:26:22 来源:WEB开发网   
核心提示: 四、在客户端上使用 XML 架构支持SQL Server 2005 支持强类型化的 XML,这意味着 XML 必须符合某个 XML 架构或 XML 架构集,从 SQL Server 2005 中处理 XML(8),通过使用 SQL Server 中的架构集合可以实现这种支持,XML 架构集

四、在客户端上使用 XML 架构支持

SQL Server 2005 支持强类型化的 XML,这意味着 XML 必须符合某个 XML 架构或 XML 架构集。通过使用 SQL Server 中的架构集合可以实现这种支持。XML 架构集合如同任何其他 SQL Server 对象一样定义,XML 架构存储在 SQL Server 中。T-SQL DDL CREATE 语句和 XML 架构集合的用法如下所示:

CREATE XML SCHEMA COLLECTION books_xsd
AS
-- one or more XML schemas here
GO
CREATE TABLE typed_xml (
 id INT IDENTITY PRIMARY KEY,
 -- require books_col content to be schema-valid
 books_col XML(books_xsd)
)
-- validated here
INSERT typed_xml VALUES('<!-- some document -->')
-- validated here too
UPDATE typed_xml
 SET books_col.modify('<!-- some XQuery DML -->')
 WHERE id = 1

当您从客户端使用 SQL Server 2005 中强类型化的 XML 数据时,验证是在服务器上执行,而非在客户端上执行。例如,如果您使用前述示例中显示的 AddARow 方法向 typed_xml 表添加一行,则在验证发生之前,数据跨网络发送到 SQL Server。然而,只需少量工作,就可以从SQL Server XML SCHEMA COLLECTIONs 检索 XML 架构,并将它们隐藏在客户端上以完成客户端的验证。这可以防止用户或 Web 服务将架构无效的 XML 发送到用于 SQL Server 存储的客户端,从而节省了一些反复的操作,但是,必须考虑两处警告/澄清。首先,依赖于从 SQL Server 所获取的 XML 架构信息如同依赖于任何高速缓存的客户端元数据。可能某人已使用 T-SQL ALTER XML SCHEMA 语句改变了架构集合,或者甚至删除了架构集合并重新创建它,从而使得您的客户端的检查无用。您可以在 CREATE/ALTER/DROP XML SCHEMA DDL 语句上使用新的 EVENT NOTIFICATION,以防止出现异常。然后,您将使用自定义代码监视 Service Broker SERVICE,这类似于使用带有查询通知的 SqlNotificationRequest。EVENT NOTIFICATIONs 是 SQL Server 2005 中的新功能,但它类似于在我前面的文章 ADO.NET 2.0 中的查询通知中讨论的查询通知。第二,请记住,即使您在客户端执行 XML 架构验证,SQL Server 也将在服务器上重新检查。没有办法向 SQL Server 指示“我知道这个 SQL Server 架构类型化的 XML 实例的架构有效,请不要麻烦地自己检查了。”

上一页  3 4 5 6 7 8 9 10  下一页

Tags:SQL Server 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接