“FOR XML PATH”查询中的嵌套命名空间消除
在“FOR XML PATH”查询的上下文中使用“WITH XMLNAMESPACES”定义默认命名空间、嵌套查询可以在顶层引入冗余的命名空间声明。当子查询在嵌套查询中使用“FOR XML PATH”时,就会出现此问题。
示例:
考虑以下查询:
... select a.c2 as "@species" , (select l.c3 as "text()" from t2 l where l.c2 = a.c1 for xml path('leg'), type) as "legs" from t1 a for xml path('animal'), root('zoo') ...
此处,嵌套查询为“legs”将导致“legs”上的“uri:animal”的附加命名空间声明
解决方案:
要消除这种冗余,可以在子查询中结合使用“FOR XML PATH”和主查询中的“FOR XML EXPLICIT”。此方法涉及在“FOR XML EXPLICIT”查询中使用“xmltext”指令来抑制最外层的命名空间声明。
DECLARE @xml XML = (SELECT OrderID AS "@OrderID", (SELECT ItemID AS "@ItemID", Name AS "data()" FROM @OrderDetail WHERE OrderID = o.OrderID FOR XML PATH ('Item'), TYPE) FROM @Order o FOR XML PATH ('Order'), ROOT('dummyTag'), TYPE) SELECT 1 AS Tag ,NULL AS Parent ,@xml AS [xml!1!!xmltext] ,'http://test.com/order' AS [xml!1!xmlns] FOR XML EXPLICIT
结果将是:
<xml xmlns="http://test.com/order"> <order orderid="1"> <item itemid="A">Drink</item> <item itemid="B">Cup</item> </order> <order orderid="2"> <item itemid="A">Drink</item> <item itemid="C">Straw</item> <item itemid="D">Napkin</item> </order> </xml>
此技术提供“FOR XML PATH”对于嵌套查询的灵活性,同时在根节点上维护单个命名空间声明。
以上是如何消除嵌套'FOR XML PATH”查询中的冗余命名空间声明?的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版