Wykluczanie elementów schematu wynikowy dokument XML za pomocą sql: mapowane (SQLXML 4.0)
Każdy element i atrybut schematu XSD mapuje widoku tabela bazy danych i kolumna z powodu domyślnego mapowania.Jeśli chcesz utworzyć element w schematu XSD, który mapuje kolumna lub tabela bazy danych (Widok) i który nie ma w pliku XML, można określić sql:mapped adnotacji.
sql:mapped Adnotacja jest szczególnie przydatne, jeśli nie można zmodyfikować schemat lub schematu jest używany do sprawdzania poprawności XML z innych źródeł i zawiera jeszcze danych nie jest przechowywana w bazie danych.sql:mapped Adnotacji różni się od sql:is-constant , niezamapowani elementy i atrybuty nie występują w dokumencie XML.
sql:use-cdata Adnotacji przyjmuje wartość logiczna (0 = false, 1 = true).Dopuszczalne wartości to 0, 1, true i false.
Przykłady
Aby utworzyć próbki pracy przy użyciu poniższych przykładach, musi spełniać określone wymagania.Aby uzyskać więcej informacji, zobacz Wymagania dotyczące uruchamianie przykładów SQLXML.
A.Określanie sql: mapowane adnotacji
Załóżmy, że masz schematu XSD z innego źródło.Tego schematu XSD składa się z <Person.Person> element z BusinessEntityID, Imię, nazwisko, i TelefonDomowy atrybuty.
W mapowaniu tego schematu XSD w Person.Person tabela w AdventureWorks2008R2 bazy danych, sql:mapped jest określona na TelefonDomowy atrybut, ponieważ w tabela Pracownicy nie przechowuje adres domowy pracowników.W rezultacie ten atrybut nie jest mapowany do bazy danych i nie jest zwracana w wynikowym dokumencie XML, gdy określono kwerendę XPath schematem mapowania.
Mapowanie domyślne odbywa się w pozostałej części schematu.<Person.Person> elementu mapy do tabela Person.Person i wszystkie atrybuty mapować kolumn o tej samej nazwie w tabela Person.Person.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Person.Person">
<xsd:complexType>
<xsd:attribute name="BusinessEntityID" 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>
Aby przetestować przykładowe kwerendy XPath względem schematu
Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako sql mapped.xml.
Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako mappedT.xml sql w tym samym katalogu, w którym zapisano sql mapped.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sql-mapped.xml"> /Person.Person[@BusinessEntityID < 10] </sql:xpath-query> </ROOT>
Ścieżka katalogu określonego dla mapowania schematu (MySchema.xml) jest katalog, w którym zapisany szablon.Ścieżka bezwzględna również można określić, na przykład:
mapping-schema="C:\MyDir\sql-mapped.xml"
Tworzenie i używanie szablon wykonać skryptu testu 4.0 SQLXML (Sqlxml4test.vbs).
Aby uzyskać więcej informacji, zobacz Przy użyciu ADO do wykonywania kwerend SQLXML.
Jest to zestaw wyników:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Person BusinessEntityID="1" FirstName="Gustavo" LastName="Achong" />
<Person.Person BusinessEntityID="2" FirstName="Catherine" LastName="Abel" />
<Person.Person BusinessEntityID="3" FirstName="Kim" LastName="Abercrombie" />
<Person.Person BusinessEntityID="4" FirstName="Humberto" LastName="Acevedo" />
<Person.Person BusinessEntityID="5" FirstName="Pilar" LastName="Ackerman" />
<Person.Person BusinessEntityID="6" FirstName="Frances" LastName="Adams" />
<Person.Person BusinessEntityID="7" FirstName="Margaret" LastName="Smith" />
<Person.Person BusinessEntityID="8" FirstName="Carla" LastName="Adams" />
<Person.Person BusinessEntityID="9" FirstName="Jay" LastName="Adams" />
</ROOT>
BusinessEntityID, imię i nazwisko są obecne, ale TelefonDomowy jest nie, ponieważ schemat mapowanie określony 0 dla sql:mapped atrybut.