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
Elk element en attribuut in het XSD-schema wordt gekoppeld aan een databasetabel/weergave en kolom vanwege de standaardmapping. Als je een element in het XSD-schema wilt maken dat niet wordt toegewezen aan een databasetabel (weergave) of kolom en niet in de XML voorkomt, kun je de sql:mapped annotatie specificeren.
De sql:mapped annotatie is vooral nuttig als het schema niet kan worden aangepast of als het schema wordt gebruikt om XML uit andere bronnen te valideren en toch data bevat die niet in je database staan. De sql:mapped annotatie verschilt van sql:is-constant doordat de niet-toegewezen elementen en attributen niet in het XML-document voorkomen.
De sql:mapped annotatie neemt een Booleaanse waarde aan (0 = vals, 1 = waar). De acceptabele waarden zijn 0, 1, waar en onwaar.
Voorbeelden
Om werkmonsters te maken met de volgende voorbeelden, moet je aan bepaalde eisen voldoen. Voor meer informatie, zie Vereisten voor het uitvoeren van SQLXML-voorbeelden.
Eén. Het specificeren van de sql:mapped annotatie
Stel dat je een XSD-schema hebt van een andere bron. Dit XSD-schema bestaat uit een <Person.Contact-element> met attributen ContactID,FirstName, EtterName en HomeAddress .
Bij het mappen van dit XSD-schema aan de Person.Contact-tabel in de AdventureWorks-database wordt sql:mapped opgegeven op het HomeAddress-attribuut omdat de Employees-tabel de thuisadressen van medewerkers niet opslaat. Als gevolg hiervan wordt dit attribuut niet aan de database gekoppeld en wordt het niet teruggegeven in het resulterende XML-document wanneer een XPath-query wordt gespecificeerd tegen het mappingschema.
Standaardmapping vindt plaats voor de rest van het schema. Het <Person.Contact-element> wordt gekoppeld aan de Person.Contact-tabel, en alle attributen worden gekoppeld aan de kolommen met dezelfde naam in de Person.Contact-tabel.
<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" type="xsd:string"/>
<xsd:attribute name="FirstName" type="xsd:string" />
<xsd:attribute name="LastName" type="xsd:string" />
<xsd:attribute name="HomeAddress" type="xsd:string"
sql:mapped="false" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Om een voorbeeld van een XPath-query te testen tegen het schema
Kopieer de bovenstaande schemacode en plak deze in een tekstbestand. Sla het bestand op als sql-mapped.xml.
Kopieer het volgende sjabloon en plak het in een tekstbestand. Sla het bestand op als sql-mappedT.xml in dezelfde map waar je sql-mapped.xmlhebt opgeslagen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sql-mapped.xml"> /Person.Contact[@ContactID < 10] </sql:xpath-query> </ROOT>Het directorypad dat voor het mappingschema (MySchema.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\sql-mapped.xml"Maak het SQLXML 4.0 Test Script (Sqlxml4test.vbs) aan en gebruik het om het sjabloon uit te voeren.
Voor meer informatie, zie Gebruik ADO om SQLXML-queries uit te voeren.
Dit is de resultaatverzameling:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong" />
<Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel" />
<Person.Contact ContactID="3" FirstName="Kim" LastName="Abercrombie" />
<Person.Contact ContactID="4" FirstName="Humberto" LastName="Acevedo" />
<Person.Contact ContactID="5" FirstName="Pilar" LastName="Ackerman" />
<Person.Contact ContactID="6" FirstName="Frances" LastName="Adams" />
<Person.Contact ContactID="7" FirstName="Margaret" LastName="Smith" />
<Person.Contact ContactID="8" FirstName="Carla" LastName="Adams" />
<Person.Contact ContactID="9" FirstName="Jay" LastName="Adams" />
</ROOT>
Let op dat ContactID, FirstName en Etternaam aanwezig zijn, maar HomeAddress niet, omdat het mappingschema 0 specificeerde voor het sql:mapped attribuut.
Zie ook
Standaardmapping van XSD-elementen en attributen naar tabellen en kolommen (SQLXML 4.0)