WEB开发网
开发学院数据库MSSQL Server SQL 2008中XML的新增功能 阅读

SQL 2008中XML的新增功能

 2008-09-28 10:06:40 来源:WEB开发网   
核心提示: <Invoice xmlns="http://adventure-works.com/order"xmlns:shp="http://adventure-works.com/shipping"><Order><Custo

<Invoice xmlns="http://adventure-works.com/order"
xmlns:shp="http://adventure-works.com/shipping">
 <Order>
  <CustomerName>Graeme Malcolm</CustomerName>
  <OrderTotal>299.99</OrderTotal>
  <shp:Delivery>Express</shp:Delivery>
 </Order>
</Invoice>

验证通配符部分依赖于架构定义中通配符部分的 processContents 属性。在 SQL Server 2005 中,架构可以对any 和 anyAttribute 声明使用 skip 和 strict 的 processContents 值。在前面的例子中,通配符元素的 processContents 属性已经设置为 skip,因此没有尝试验证元素的内容。尽管架构集合包括对 shp:Delivery 元素的声明(例如,定义一个有效传递方法列表),但该元素仍然是未验证的,除非在 Order 元素的通配符声明中将 processContents 属性设置为strict。

SQL Server 2008 添加了对第三个验证选项的支持。通过将通配符部分的 processContents 属性设置为 lax,可以对任何含有与它们相关架构声明的元素强制实施验证,但是忽略任何在架构中未定义的元素。继续前面的例子,如果将架构中通配符元素声明的 declaration 属性设置为 lax,并为 shp:Delivery 元素添加一个声明,则在 XML 文档中的 shp:Delivery 元素将被验证。然而,如果替换 shp:Delivery 元素,则文档就包含一个在架构中未定义的元素,此元素将被忽略。

此外,XML 架构规范定义了 anyType 声明,该声明包含 anyType 内容模式的 lax 处理。SQL Server 2005 不支持 lax 处理,因此 anyType 内容会被严格验证。SQL Server 2008支持 anyType 内容的 lax 处理,因此该内容会被正确验证。

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

Tags:SQL XML 新增

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