Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
De volgende voorbeelden tonen hoe expliciete conversiefuncties worden gespecificeerd in XPath-queries. De XPath-queries in deze voorbeelden zijn gespecificeerd tegen het mappingschema dat in SampleSchema1.xmlis opgenomen. Voor informatie over dit voorbeeldschema, zie Voorbeeld Geannoteerd XSD-schema voor XPath-voorbeelden (SQLXML 4.0).
Voorbeelden
Eén. Gebruik de number() expliciete conversiefunctie
De getal() -functie zet een argument om in een getal.
Aangenomen dat de waarde van ContactID niet-numeriek is, zet de volgende query ContactID om in een nummer en vergelijkt dit met de waarde 4. De query geeft vervolgens alle <Employee-elementen> van de contextknoop terug met het ContactID-attribuut dat een numerieke waarde van 4 heeft:
/child::Contact[number(attribute::ContactID)= 4]
Een snelkoppeling naar de attribuutas (@) kan worden gespecificeerd, en omdat de kindas de standaard is, kan deze uit de zoekopdracht worden weggelaten:
/Contact[number(@ContactID) = 4]
In relationele termen levert de query een werknemer op met een ContactID van 4.
Om de XPath-query te testen tegen het mappingschema
Kopieer de voorbeeldschemacode en plak deze in een tekstbestand. Sla het bestand op als SampleSchema1.xml.
Maak het volgende sjabloon aan (ExplicitConversionA.xml) en sla het op in de map waar SampleSchema1.xml is opgeslagen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Contact[number(@ContactID)=4] </sql:xpath-query> </ROOT>Het directorypad dat voor het mappingschema (SampleSchema1.xml) is gespecificeerd is relatief tot de map waar het sjabloon wordt opgeslagen. Een absoluut pad kan ook worden gespecificeerd, bijvoorbeeld:
mapping-schema="C:\MyDir\SampleSchema1.xml"Maak het SQLXML 4.0 Test Script (Sqlxml4test.vbs) aan en gebruik het om het sjabloon uit te voeren.
Zie ADO gebruiken om SQLXML 4.0-query's uit te voeren voor meer informatie.
De resultaatset voor deze template-uitvoering is:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />
</ROOT>
B. Gebruik de string() expliciete conversiefunctie
De string()- functie zet een argument om in een string.
De volgende query zet ContactID om in een string en vergelijkt deze met de stringwaarde "4". De query geeft alle <Employee-elementen> van de contextknoop terug met een ContactID met een stringwaarde van "4":
/child::Contact[string(attribute::ContactID)="4"]
Een snelkoppeling naar de attribuutas (@) kan worden gespecificeerd, en omdat de kindas de standaard is, kan deze uit de zoekopdracht worden weggelaten:
/Contact[string(@ContactID)="4"]
Functioneel geeft deze query dezelfde resultaten als de vorige voorbeeldzoekopdracht, hoewel de evaluatie wordt uitgevoerd op basis van een stringwaarde en niet de numerieke waarde (dat wil zeggen, het getal 4).
Om de XPath-query te testen tegen het mappingschema
Kopieer de voorbeeldschemacode en plak deze in een tekstbestand. Sla het bestand op als SampleSchema1.xml.
Maak het volgende sjabloon aan (ExplicitConversionB.xml) en sla het op in de map waar SampleSchema1.xml is opgeslagen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> Contact[string(@ContactID)="4"] </sql:xpath-query> </ROOT>Het directorypad dat voor het mappingschema (SampleSchema1.xml) is gespecificeerd is relatief tot de map waar het sjabloon wordt opgeslagen. Een absoluut pad kan ook worden gespecificeerd, bijvoorbeeld:
mapping-schema="C:\MyDir\SampleSchema1.xml"Maak het SQLXML 4.0 Test Script (Sqlxml4test.vbs) aan en gebruik het om het sjabloon uit te voeren.
Zie ADO gebruiken om SQLXML 4.0-query's uit te voeren voor meer informatie.
Hier is de resultaatset van de template-uitvoering:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />
</ROOT>