Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Database
Každý prvek a atribut v XSD schématu se mapuje na databázovou tabulku/pohled a sloupec kvůli výchozímu mapování. Pokud chcete vytvořit prvek v XSD schématu, který se nemapuje na žádnou databázovou tabulku (view) nebo sloupec a který se neobjevuje v XML, můžete specifikovat sql : mapovanou anotaci.
Anotace sql:mapped je obzvlášť užitečná, pokud schéma nelze upravit nebo pokud je schéma použito k ověření XML z jiných zdrojů a přesto obsahuje data, která nejsou uložena ve vaší databázi. Anotace sql:mapped se liší od sql:is-constant tím, že nemapované prvky a atributy se v XML dokumentu neobjevují.
Anotace sql:mapped přijímá Booleovskou hodnotu (0 = nepravda, 1 = pravda). Přijatelné hodnoty jsou 0, 1, pravda a nepravda.
Examples
Pro vytvoření pracovních vzorků podle následujících příkladů musíte splnit určité požadavky. Pro více informací viz Požadavky na spouštění SQLXML Examples.
A. Specifikace sql:mapované anotace
Předpokládejte, že máte XSD schéma z jiného zdroje. Toto schéma XSD se skládá z prvku <Person.Contact> s atributy ContactID,FirstName, LastName a HomeAddress .
Při mapování tohoto XSD schématu do tabulky Person.Contact v databázi AdventureWorks je sql:mapped specifikován v atributu HomeAddress , protože tabulka Employees neukládá domácí adresy zaměstnanců. V důsledku toho tento atribut není mapován na databázi a není vrácen v výsledném XML dokumentu, když je dotaz XPath zadán proti mapovacímu schématu.
Výchozí mapování probíhá pro zbytek schématu. Prvek <Person.Contact> se mapuje na tabulku Person.Contact a všechny atributy se mapují na sloupce se stejným názvem v tabulce Person.Contact.
<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>
Pro testování vzorku dotazu XPath proti schématu
Zkopírujte výše uvedený kód schématu a vložte ho do textového souboru. Uložte soubor jako sql-mapped.xml.
Zkopírujte následující šablonu a vložte ji do textového souboru. Ulož soubor jako sql-mappedT.xml do stejného adresáře, kde jsi uložil 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>Adresářová cesta určená pro mapovací schéma (MySchema.xml) je relativní k adresáři, ve kterém je šablona uložena. Absolutní cestu lze také specifikovat, například:
mapping-schema="C:\MyDir\sql-mapped.xml"Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.
Pro více informací viz Použití ADO pro provádění dotazů SQLXML.
Toto je množina výsledků:
<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>
Všimněte si, že ContactID, FirstName a LastName jsou přítomny, ale HomeAddress není, protože mapovací schéma specifikovalo 0 pro atribut sql:mapped .
Viz také
Výchozí mapování prvků a atributů XSD na tabulky a sloupce (SQLXML 4.0)