Exkludering av schemaelement från XML-dokumentet med sql:mappad

gäller för:SQL ServerAzure SQL Database

Varje element och attribut i XSD-schemat mappas till en databastabell/vy och kolumn tack vare standardmappningen. Om du vill skapa ett element i XSD-schemat som inte mappas till någon databastabell (vy) eller kolumn och som inte visas i XML:en, kan du ange sql:mapped-annoteringen .

SQL:mapped-annotationen är särskilt användbar om schemat inte kan ändras eller om schemat används för att validera XML från andra källor men ändå innehåller data som inte finns lagrad i din databas. sql:mapped-annotationen skiljer sig från sql:is-constant genom att de omappade elementen och attributen inte förekommer i XML-dokumentet.

sql:mapped-annotationen tar ett boolesk värde (0 = falskt, 1 = sant). De acceptabla värdena är 0, 1, sant och falskt.

Examples

För att skapa arbetsprover med hjälp av följande exempel måste du uppfylla vissa krav. För mer information, se Krav för att köra SQLXML-exempel.

A. Specificering av sql:mapped-annoteringen

Anta att du har ett XSD-schema från någon annan källa. Detta XSD-schema består av ett <Person.Contact-element> med attributen ContactID,FirstName, LastName och HomeAddress .

Vid mappning av detta XSD-schema till Person.Contact-tabellen i AdventureWorks-databasen anges sql:mappedHomeAddress-attributet eftersom tabellen Employees inte lagrar hemadresserna till anställda. Som ett resultat mappas inte detta attribut till databasen och returneras inte i det resulterande XML-dokumentet när en XPath-fråga anges mot mappningsschemat.

Standardmappningen sker för resten av schemat. <Person.Contact-elementet> mappas till Person.Contact-tabellen, och alla attribut mappas till kolumnerna med samma namn i Person.Contact-tabellen.

<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>  
För att testa en exempel-XPath-fråga mot schemat
  1. Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som sql-mapped.xml.

  2. Kopiera följande mall och klistra in den i en textfil. Spara filen som sql-mappedT.xml i samma katalog där du sparade sql-mapped.xml.

    <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>  
    

    Den katalogväg som anges för mappningsschemat (MySchema.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:

    mapping-schema="C:\MyDir\sql-mapped.xml"  
    
  3. Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.

    För mer information, se Användning av ADO för att köra SQLXML-frågor.

Detta är resultatmängden:

<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>  

Observera att ContactID, FirstName och LastName finns, men HomeAddress inte eftersom mappningsschemat angav 0 för sql:mapped-attributet .

Se även

Standardmappning av XSD-element och attribut till tabeller och kolumner (SQLXML 4.0)