Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
När en XPath-fråga körs mot ett XSD-schema har det resulterande XML-dokumentet element och attribut som anges i schemat. Du kan ange att vissa element och attribut ska döljas i schemat med hjälp av sql:hide anteckning. Detta är användbart när urvalskriterierna för frågan kräver vissa element eller attribut i schemat, men du inte vill att de ska returneras i DET XML-dokument som genereras.
Den sql:hide-anteckningen tar ett booleskt värde (0=false, 1=true). De acceptabla värdena är 0, 1, true och false.
Exempel
Om du vill skapa arbetsexempel med hjälp av följande exempel måste du uppfylla vissa krav. Mer information finns i Krav för att köra SQLXML-exempel.
A. Ange sql:hide för ett attribut
XSD-schemat i det här exemplet består av ett <Person.Contact>-element med ContactID, FirstNameoch LastName attribut.
Elementet <Person.Contact> är av komplex typ och mappar därför till tabellen med samma namn (standardmappning). Alla attribut för <Person.Contact> element är av enkel typ och mappar till kolumner med samma namn i Databasen Person.Contactable i AdventureWorks. I schemat anges sql:hide-anteckning på attributet ContactID. När en XPath-fråga anges mot det här schemat returneras inte ContactID- i XML-dokumentet.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Contact" >
<xsd:complexType>
<xsd:attribute name="ContactID" sql:hide="true" />
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Testa en XPath-exempelfråga mot schemat
Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som Hide.xml.
Kopiera följande mall och klistra in den i en textfil. Spara filen som HideT.xml i samma katalog där du sparade Hide.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="Hide.xml"> /Person.Contact[@ContactID="1"] </sql:xpath-query> </ROOT>Katalogsökvägen som angetts för mappningsschemat (Hide.xml) är relativ till katalogen där mallen sparas. En absolut sökväg kan också anges, till exempel:
mapping-schema="C:\MyDir\Hide.xml"Skapa och använd SQLXML 4.0-testskriptet (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är resultatuppsättningen:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact FirstName="Gustavo" LastName="Achong" />
</ROOT>
När sql:hide anges för ett element visas inte elementet och dess attribut eller underordnade element i DET XML-dokument som genereras. Här är ett annat XSD-schema där sql:hide anges i elementet <OD>:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:documentation>
Sales.Customer-Sales.SalesOrderHeader-Sales.SalesOrderDetail Schema
Copyright 2004 Microsoft. All rights reserved.
</xsd:documentation>
<xsd:appinfo>
<sql:relationship name="CustomerOrder"
parent="Sales.Customer"
parent-key="CustomerID"
child-key="CustomerID"
child="Sales.SalesOrderHeader" />
<sql:relationship name="OrderOrderDetails"
parent="Sales.SalesOrderHeader"
parent-key="SalesOrderID"
child-key="SalesOrderID"
child="Sales.SalesOrderDetail"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Customers" sql:relation="Sales.Customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Order" sql:relation="Sales.SalesOrderHeader"
maxOccurs="unbounded"
sql:relationship="CustomerOrder">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="OD" sql:relation="Sales.SalesOrderDetail" maxOccurs="unbounded" sql:relationship="OrderOrderDetails" sql:hide="1">
<xsd:complexType>
<xsd:attribute name="SalesOrderID" type="xsd:string"/>
<xsd:attribute name="ProductID" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="CustomerID" type="xsd:string"/>
<xsd:attribute name="OID" sql:field="SalesOrderID"
type="xsd:string"/>
<xsd:attribute name="OrderDate" type="xsd:date"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="CID" sql:field="CustomerID"
type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
När en XPath-fråga (till exempel /Customers[@CID="1"]) har angetts mot det här schemat innehåller xml-dokumentet som genereras inte elementet <OD> och dess underordnade element, vilket visas i det här partiella resultatet:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customers CID="1">
<Order CustomerID="1" OID="43860" OrderDate="2001-08-01" />
<Order CustomerID="1" OID="44501" OrderDate="2001-11-01" />
<Order CustomerID="1" OID="45283" OrderDate="2002-02-01" />
<Order CustomerID="1" OID="46042" OrderDate="2002-05-01" />
</Customers>
</ROOT>