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
Du kan skapa XML-vyer av relationsdata genom att använda XML Schema Definition (XSD)-språket. Dessa vyer kan sedan förfrågas med hjälp av XML Path language (XPath)-frågor. Detta liknar att skapa vyer genom att använda CREATE VIEW-satser och sedan specificera SQL-frågor mot vyn.
Ett XML-schema beskriver strukturen i ett XML-dokument och beskriver även de olika begränsningarna på datan i dokumentet. När du specificerar XPath-frågor mot schemat bestäms strukturen i det returnerade XML-dokumentet av schemat mot vilket XPath-frågan körs.
I ett XSD-schema< omsluter xsd:schema-elementet> hela schemat; alla elementdeklarationer måste finnas inom <xsd:schema-elementet>. Du kan beskriva attribut som definierar namnrymden där schemat finns och namnrymden som används i schemat som egenskaper för <xsd:schema-elementet> .
Ett giltigt XSD-schema måste innehålla xsd:schema-elementet<> definierat enligt följande:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<!-- additional schema definitions here -->
</xsd:schema>
<xsd:schema-elementet> härstammar från XML Schema-namnrymdspecifikationen vid http://www.w3.org/2001/XMLSchema.
Annotationer till XSD-schemat
Du kan använda ett XSD-schema med annotationer som beskriver mappningen till en databas, fråga databasen och returnera resultaten i form av ett XML-dokument. Annotationer tillhandahålls för att mappa ett XSD-schema till databastabeller och kolumner. XPath-frågor kan specificeras mot XML-vyn som skapas av XSD-schemat för att söka databasen och få resultat som XML.
Anmärkning
I Microsoft SQLXML 4.0 stöder XSD-schemaspråket de annotationer som introducerades med annotated XML-Data Reduced (XDR) schema language i SQL Server 2000 (8.x). Annoterad XDR är föråldrad i SQLXML 4.0.
I relationsdatabasens kontext är det användbart att mappa det godtyckliga XSD-schemat till en relationell lagring. Ett sätt att uppnå detta är att annotera XSD-schemat. Ett XSD-schema med anteckningarna kallas ett mappningsschema, vilket ger information om hur XML-data ska mappas till relationslagringen. Ett mappningsschema är i praktiken en XML-vy av relationsdata. Dessa mappningar kan användas för att hämta relationsdata som ett XML-dokument.
Namnrymd för annoteringar
I ett XSD-schema specificeras annotationer genom att använda namnrymden urn:schemas-microsoft-com:mapping-schema. Som visas i följande exempel är det enklaste sättet att specificera namnrymden att ange den i taggen< xsd:schema>.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
...
</xsd:schema>
Prefixet i namnrymden som används är godtyckligt. I denna dokumentation används sql-prefixet för att beteckna annoteringsnamnrymden och för att skilja annotationer i detta namnrymd från de i andra namnrymder.
Exempel på ett annoterat XSD-schema
I följande exempel består XSD-schemat av ett <Person.Contact-element> . Employee-elementet <> har ett ContactID-attribut samt <FirstName> och <Efternamn-barn>:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
type="xsd:string" />
<xsd:element name="LName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Annotationer läggs till i detta XSD-schema för att mappa dess element och attribut till databasens tabeller och kolumner:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Contact" sql:relation="Person.Contact" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FName"
sql:field="FirstName"
type="xsd:string" />
<xsd:element name="LName"
sql:field="LastName"
type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="ConID"
sql:field="ContactID"
type="xsd:integer" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
I mappningsschemat mappas Contact-elementet<> till Person.Contact-tabellen i exempeldatabasen AdventureWorks2025 med hjälp av sql:relation-annotationen. Attributen ConID, FName och LName mappas till kolumnerna ContactID, FirstName och LastName i Person.Contact-tabellen genom att använda sql: field-annotationerna.
Detta annoterade XSD-schema tillhandahåller XML-vyn av relationsdatan. Denna XML-vy kan förfrågas med XPath-språket. En XPath-fråga returnerar ett XML-dokument som resultat, istället för raduppsättningen som returneras av SQL-frågor.
Anmärkning
I mappningsschemat beror kasuskänsligheten för de angivna relationsvärdena (såsom tabellnamn och kolumnnamn) på om SQL Server använder kasuskänsliga sorteringsinställningar. Mer information finns i Collation och Unicode Support.
Andra resurser
Du kan hitta mer information om XML Schema Definition language (XSD), XML Path-språket (XPath) och Extensible Stylesheet Language Transformations (XSLT) på följande webbplatser:
XML Schema Del 0: Introduktion, W3C-rekommendation (https://www.w3.org/TR/xmlschema-0/)
XML Schema Del 1: Strukturer, W3C-rekommendation (https://www.w3.org/TR/xmlschema-1/)
XML Schema Del 2: Datatyper, W3C-rekommendation (https://www.w3.org/TR/xmlschema-2/)
XML Path Language (XPath) (https://www.w3.org/TR/xpath)
XSL-transformationer (XSLT) (https://www.w3.org/TR/xslt)
Se även
Annoterade schemasäkerhetsöverväganden (SQLXML 4.0)
Annoterade XDR-scheman (föråldrade i SQLXML 4.0)