SQL xml を実行すると、次のスキーマが 4 つのプロジェクトを返します。
<xsd:element name="iati-activities" sql:relation="IATI.ACTIVITIES" sql:key-fields="BUSINESS_UNIT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="iati-activity" sql:relation="IATI.PROJECT_METADATA" sql:relationship="ACTIVITIES_ACTIVITY">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ProjectId" type="xsd:string" sql:field="PROJECT_ID" sql:key-fields="PROJECT_ID" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:complexType>
</xsd:element>
私は手に入れたい:
<iati-activities>
<iati-activity>
<ProjectId>00072877</ProjectId>
</iati-activity>
</iati-activities>
ただし、実行するとフィルタリングされません。私が使用する xpath-query は次のとおりです。
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header sql:nullvalue="ISNULL">
<sql:param name="ProjectId">00072877</sql:param>
</sql:header>
<sql:xpath-query mapping-schema="activity_schema.xsd">
iati-activities[iati-activity/ProjectId=$ProjectId]
</sql:xpath-query>
</root>
これは私が得るものです:
<iati-activities>
<iati-activity>
<ProjectId>00072877</ProjectId>
</iati-activity>
<iati-activity>
<ProjectId>00059626</ProjectId>
</iati-activity>
<iati-activity>
<ProjectId>...</ProjectId>
</iati-activity>
<iati-activity>
<ProjectId>...</ProjectId>
</iati-activity>
</iati-activities>
次のクエリを使用する場合:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header sql:nullvalue="ISNULL">
<sql:param name="ProjectId">00072877</sql:param>
</sql:header>
<sql:xpath-query mapping-schema="activity_schema.xsd">
iati-activities/iati-activity[ProjectId=$ProjectId]
</sql:xpath-query>
</root>
iati-acitivties 要素なしで以下を取得します。
<iati-activity>
<ProjectId>00072877</ProjectId>
</iati-activity>
私が間違っていることを知っている人はいますか?