2
我已經創建了一個在SQL2008數據庫中具有強類型XML列的表。我無法理解文檔或示例,這些文檔或示例顯示瞭如何通過簡單查詢來選擇特定元素的值爲true的行。在SQL Server 2008中查詢XML類型列
我可以得到,而不必引發的錯誤最接近的是:
SELECT Person.*
FROM [Profile].[Person]
WHERE Flags.exist('
declare namespace ws="http://schema/profile/person/2010/09/flags";
ws:root/ws:CompetitionExclusion = xs:boolean("false")') = 1
但這個查詢返回的所有行不只是那些假對我感興趣的元素
簡單。例如:
定義的XML架構集合
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:ws="http://schema/profile/person/2010/09/flags"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://schema/profile/person/2010/09/flags"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="CompetitionExclusion" type="xs:boolean" />
<xs:element name="EnrolmentExclusion" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
連續存放的
<?xml version="1.0" encoding="utf-16"?>
<ws:root xmlns:ws="http://schema/profile/person/2010/09/flags">
<ws:CompetitionExclusion>true</ws:CompetitionExclusion>
<ws:EnrolmentExclusion>false</ws:EnrolmentExclusion>
</ws:root>
如果有人能告訴我如何構建將與假只返回行的,將是巨大CompetitionExclusion元素的XQuery
示例XML。我發現的所有樣本都傾向於處理屬性而不是元素。
感謝