Udostępnij za pośrednictwem


Korzystanie ze schematów XML

Programowania kodu XML w SMO ogranicza się do typów danych XML, przestrzeni nazw XML i proste indeksowania na kolumnach typu danych XML.

Microsoft SQL Server provides native storage for XML document instances.Schematy XML umożliwiają definiowanie złożonych typów danych XML, które mogą być używane do sprawdzania poprawności dokumentów XML do zapewnienia integralność danych.Schemat XML jest zdefiniowany w XmlSchemaCollection obiektu.

Przykład

Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji.Aby uzyskać więcej informacji, zobacz Jak Tworzenie projektu SMO Visual Basic w programie Visual Studio.NET lub Jak Tworzenie projektu programu Visual C# SMO w programie Visual Studio.NET.

Tworzenie schematu XML w języku Visual Basic

Poniższy przykład kodu pokazuje, jak utworzyć schemat XML przy użyciu XmlSchemaCollection obiektu.Text Właściwość, która definiuje kolekcja schematu XML zawiera kilka podwójnych cudzysłowów.Otrzymuje brzmienie chr(34) ciąg.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server()
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Define an XmlSchemaCollection object by supplying the parent database and name arguments in the constructor.
Dim xsc As XmlSchemaCollection
xsc = New XmlSchemaCollection(db, "MySampleCollection")
xsc.Text = "<schema xmlns=" + Chr(34) + "http://www.w3.org/2001/XMLSchema" + Chr(34) + "  xmlns:ns=" + Chr(34) + "http://ns" + Chr(34) + "><element name=" + Chr(34) + "e" + Chr(34) + " type=" + Chr(34) + "dateTime" + Chr(34) + "/></schema>"
'Create the XML schema collection on the instance of SQL Server.
xsc.Create()

Tworzenie schematu XML w języku Visual C#

Poniższy przykład kodu pokazuje, jak utworzyć schemat XML przy użyciu XmlSchemaCollection obiektu.Text Właściwość, która definiuje kolekcja schematu XML zawiera kilka podwójnych cudzysłowów.Otrzymuje brzmienie chr(34) ciąg.

{
            //Connect to the local, default instance of SQL Server. 
            Server srv = default(Server);
            srv = new Server();
            //Reference the AdventureWorks2008R2 database. 
            Database db = default(Database);
            db = srv.Databases["AdventureWorks2008R2"];
            //Define an XmlSchemaCollection object by supplying the parent
            // database and name arguments in the constructor. 
            XmlSchemaCollection xsc = default(XmlSchemaCollection);
            xsc = new XmlSchemaCollection(db, "MySampleCollection");
            xsc.Text = "<schema xmlns=" + Strings.Chr(34) + "http://www.w3.org/2001/XMLSchema" + Strings.Chr(34) + " xmlns:ns=" + Strings.Chr(34) + "http://ns" + Strings.Chr(34) + "><element name=" + Strings.Chr(34) + "e" + Strings.Chr(34) + " type=" + Strings.Chr(34) + "dateTime" + Strings.Chr(34) + "/></schema>";
            //Create the XML schema collection on the instance of SQL Server. 
            xsc.Create();
        }

Tworzenie schematu XML w PowerShell

Poniższy przykład kodu pokazuje, jak utworzyć schemat XML przy użyciu XmlSchemaCollection obiektu.Text Właściwość, która definiuje kolekcja schematu XML zawiera kilka podwójnych cudzysłowów.Otrzymuje brzmienie chr(34) ciąg.

#Get a server object which corresponds to the default instance replace LocalMachine with the physical server
cd \sql\LocalHost
$srv = get-item default

#Reference the AdventureWorks database.
$db = $srv.Databases["AdventureWorks2008R2"]

#Create a new schema collection
$xsc = New-Object -TypeName Microsoft.SqlServer.Management.SMO.XmlSchemaCollection `
-argumentlist $db,"MySampleCollection"

#Add the xml
$dq = '"' # the double quote character
$xsc.Text = "<schema xmlns=" + $dq + "http://www.w3.org/2001/XMLSchema" + $dq + `
"  xmlns:ns=" + $dq + "http://ns" + $dq + "><element name=" + $dq + "e" + $dq +`
 " type=" + $dq + "dateTime" + $dq + "/></schema>"
 
#Create the XML schema collection on the instance of SQL Server.
$xsc.Create()