Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Azure SQL Database
Możesz tworzyć widoki XML danych relacyjnych, używając języka XML Schema Definition (XSD). Te widoki można następnie zapytać za pomocą zapytań XML Path Language (XPath). Jest to podobne do tworzenia widoków poprzez użycie instrukcji CREATE VIEW i określania zapytań SQL względem widoku.
Schemat XML opisuje strukturę dokumentu XML oraz różne ograniczenia dotyczące danych zawartych w dokumencie. Gdy określasz zapytania XPath względem schematu, struktura zwróconego dokumentu XML jest określana przez schemat, na którym wykonywane jest zapytanie XPath.
W schemacie XSD element <xsd:schema> obejmuje cały schemat; wszystkie deklaracje elementów muszą być zawarte w elemencie <xsd:schema> . Możesz opisać atrybuty definiujące przestrzeń nazw, w której znajduje się schemat, oraz przestrzenie nazw używane w schemie jako właściwości elementu <xsd:schema> .
Poprawny schemat XSD musi zawierać <element xsd:schema> zdefiniowany następująco:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<!-- additional schema definitions here -->
</xsd:schema>
Element <xsd:schema> pochodzi ze specyfikacji przestrzeni nazw XML Schema w .http://www.w3.org/2001/XMLSchema
Adnotacje do schematu XSD
Możesz użyć schematu XSD z adnotacjami opisującymi mapowanie do bazy danych, zapytać bazę i zwracać wyniki w formie dokumentu XML. Do mapowania schematu XSD na tabele i kolumny bazy danych są dostarczane adnotacje. Zapytania XPath można określać względem widoku XML utworzonego przez schemat XSD, aby zapytać bazę danych i uzyskać wyniki jako XML.
Uwaga / Notatka
W Microsoft SQLXML 4.0 język schematów XSD obsługuje adnotacje wprowadzone w języku annotated XML-Data Reduced (XDR) w SQL Server 2000 (8.x). Annotated XDR jest wycofany z SQLXML 4.0.
W kontekście bazy danych relacyjnej przydatne jest odwzorowanie dowolnego schematu XSD na magazyn relacyjny. Jednym ze sposobów na osiągnięcie tego jest oznaczenie schematu XSD. Schemat XSD z adnotacjami nazywany jest schematem mapowania, który dostarcza informacji dotyczących sposobu mapowania danych XML do magazynu relacyjnego. Schemat mapowania jest w istocie widokiem XML danych relacyjnych. Te mapowania mogą być używane do pobierania danych relacyjnych jako dokumentu XML.
Przestrzeń nazw dla adnotacji
W schemacie XSD adnotacje określa się za pomocą przestrzeni nazw urn:schemas-microsoft-com:mapping-schema. Jak pokazano w poniższym przykładzie, najprostszym sposobem określenia przestrzeni nazw jest jej określenie w tagu <xsd:schema> .
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
...
</xsd:schema>
Prefiks przestrzeni nazw, który jest używany, jest dowolny. W tej dokumentacji prefiks sql służy do oznaczania przestrzeni nazw adnotacji oraz do odróżnienia adnotacji w tej przestrzeni od innych przestrzeni nazw.
Przykład schematu XSD z adnotacjami
W poniższym przykładzie schemat XSD składa się z elementu <Person.Contact> . Element <Pracownik> posiada atrybut ContactID oraz <elementy potomne Imię> i Nazwisko<>:
<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>
Do tego schematu XSD dodane są adnotacje, aby mapować jego elementy i atrybuty na tabele i kolumny bazy danych:
<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>
W schemacie <mapowania element Contact> jest mapowany na tabelę Person.Contact w przykładowej bazie AdventureWorks2025 danych za pomocą adnotacji sql:relation . Atrybuty ConID, FName i LName są mapowane na kolumny ContactID, FirstName i LastName w tabeli Person.Contact za pomocą adnotacji sql:field .
Ten annotowany schemat XSD zapewnia widok XML danych relacyjnych. Ten widok XML można zapytać za pomocą języka XPath. Zapytanie XPath zwraca dokument XML zamiast zestawu wierszy zwracanego przez zapytania SQL.
Uwaga / Notatka
W schemacie mapowania czułość na wielka literę dla określonych wartości relacyjnych (takich jak nazwa tabeli i nazwa kolumny) zależy od tego, czy SQL Server używa ustawień sortowania na podstawie wielkich liter. Aby uzyskać więcej informacji, zobacz Sortowanie i obsługa Unicode.
Inne zasoby
Więcej informacji o XML Schema Definition language (XSD), XML Path language (XPath) oraz Extensible Stylesheet Language Transformations (XSLT) znajdziesz na następujących stronach internetowych:
Schemat XML Część 0: Wstęp, rekomendacja W3C (https://www.w3.org/TR/xmlschema-0/)
Schemat XML Część 1: Struktury, rekomendacja W3C (https://www.w3.org/TR/xmlschema-1/)
Schemat XML Część 2: Typy danych, rekomendacja W3C (https://www.w3.org/TR/xmlschema-2/)
Język ścieżek XML (XPath) (https://www.w3.org/TR/xpath)
Transformacje XSL (XSLT) (https://www.w3.org/TR/xslt)
Zobacz też
Aspekty bezpieczeństwa schematów adnotowanych (SQLXML 4.0)
Schematy XDR z adnotacjami (wycofane w SQLXML 4.0)