XML スキーマの使用方法
SMO で使用できる XML プログラミングの機能は、XML データ型や XML 名前空間の提供、および XML データ型の列での簡易インデックス作成に限定されています。
Microsoft SQL Server は、XML ドキュメント インスタンスのネイティブ ストレージを提供します。 XML スキーマを使用すると、複雑な XML データ型を定義することができます。これを使用して、XML ドキュメントを検証し、データの整合性を確保することができます。 XML スキーマは、XmlSchemaCollection オブジェクトで定義します。
例
提供されているコード例を使用するには、アプリケーションを作成するプログラミング環境、プログラミング テンプレート、およびプログラミング言語を選択する必要があります。 詳細については、「 Visual Studio .NET で Visual Basic SMO プロジェクトを作成する」または「Visual Studio .NETで Visual C# SMO プロジェクトを作成する」を参照してください。
Visual Basic での XML スキーマの作成
このコード例では、XmlSchemaCollection オブジェクトを使用して XML スキーマを作成する方法を示します。 XML スキーマ コレクションを定義する Text プロパティは、複数の二重引用符記号を格納しています。 これらは chr(34)
文字列に置き換えられます。
Visual C# での XML スキーマの作成
このコード例では、XmlSchemaCollection オブジェクトを使用して XML スキーマを作成する方法を示します。 XML スキーマ コレクションを定義する Text プロパティは、複数の二重引用符記号を格納しています。 これらは chr(34)
文字列に置き換えられます。
{
//Connect to the local, default instance of SQL Server.
Server srv = default(Server);
srv = new Server();
//Reference the AdventureWorks2012 database.
Database db = default(Database);
db = srv.Databases["AdventureWorks2012"];
//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();
}
PowerShell での XML スキーマの作成
このコード例では、XmlSchemaCollection オブジェクトを使用して XML スキーマを作成する方法を示します。 XML スキーマ コレクションを定義する Text プロパティは、複数の二重引用符記号を格納しています。 これらは chr(34)
文字列に置き換えられます。
#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["AdventureWorks2012"]
#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()