XML şema tanımı Aracı (XSD.exe'nin)

XML şema tanımı (XSD.exe'nin) aracı XDR, XML ve XSD dosyalarından veya bir çalışma zamanı derleme sınıflarda XML Şeması veya ortak dil çalışma zamanı sınıflar oluşturur.

XML Şema Tanımı aracı (Xsd.exe) genellikle aşağıdaki yolda bulunabilir:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\

Sözdizimi

Aracı komut satırından çalıştırın.

xsd file.xdr [-outputdir:directory][/parameters:file.xml]
xsd file.xml [-outputdir:directory] [/parameters:file.xml]
xsd file.xsd {/classes | /dataset} [/element:element]
             [/enableLinqDataSet] [/language:language]
                          [/namespace:namespace] [-outputdir:directory] [URI:uri]
                          [/parameters:file.xml]
xsd {file.dll | file.exe} [-outputdir:directory] [/type:typename [...]][/parameters:file.xml]

İpucu

.NET Framework araçlarının düzgün çalışması için, , Includeve Lib ortam değişkenlerinizi Pathdoğru ayarlamanız gerekir. SDK>\version>\<Bin dizininde <bulunan SDKVars.bat çalıştırarak bu ortam değişkenlerini ayarlayın. Her komut kabuğu'nu SDKVars.bat yürütülmelidir.

Bağımsız değişken

Bağımsız değişken Açıklama
file.extension Dönüştürülecek giriş dosyasını belirtir. Uzantıyı şunlardan biri olarak belirtmelisiniz: .xdr, .xml, .xsd, .dll veya .exe.

XDR şema dosyası (.xdr uzantısı) belirtirseniz, xsd.exe'nin bir XSD şemasına XDR şeması dönüştürür. Çıkış dosyası XDR şeması, ancak .xsd uzantısı ile aynı ada sahip.

Bir XML dosyası (.xml uzantısı) belirtirseniz, xsd.exe'nin veri dosyasındaki bir şema öğesinin ve bir XSD şeması üretir. Çıkış dosyası XML dosyası olarak, ancak .xsd uzantısı ile aynı ada sahip.

Bir XML şema dosyası (.xsd uzantısı) belirtirseniz, xsd.exe'nin için XML Şeması karşılık gelen çalışma zamanı nesneler için kaynak kodu oluşturur.

Bir çalışma zamanı derleme dosyası (.exe veya .dll uzantısı) belirtirseniz, xsd.exe'nin şemaları bir veya daha fazla türleri için bu derlemede oluşturur. Kullanabilirsiniz /type şemaları oluşturulacak türlerini belirtmek için seçeneği. Çıkış şemaları schema0.xsd, schema1.xsd vb. adlandırılır. Xsd.exe yalnızca belirli türler özel özniteliği kullanarak XMLRoot bir ad alanı belirtiyorsa birden çok şema oluşturur.

Genel seçenekleri

Seçenek Açıklama
/h[elp] Araç için komut sözdizimini ve seçenekleri görüntüler.
/o[utputdir]:directory Çıktı dosyaları dizinini belirtir. Bu bağımsız değişken yalnızca bir kez görünebilir. Geçerli dizin varsayılandır.
/? Araç için komut sözdizimini ve seçenekleri görüntüler.
/p[arameters]:file.xml Çeşitli işlem modları için seçenekler belirtilen .xml dosyasından okuyun. Kısa form şeklindedir /p:. Daha fazla bilgi için Açıklamalar bölümüne bakın.

XSD dosyası seçenekleri

.Xsd dosyaları için aşağıdaki seçeneklerden birini belirtmelisiniz.

Seçenek Açıklama
/c[lasses] Belirtilen şemaya karşılık gelen sınıflar oluşturur. Nesneye XML verilerini okumak için yöntemini kullanın XmlSerializer.Deserialize .
/d[ataset] Türetilen bir sınıf oluşturur DataSet belirtilen şemaya karşılık gelir. Türetilmiş sınıfa XML verilerini okumak için yöntemini kullanın DataSet.ReadXml .

.Xsd dosyaları için aşağıdaki seçeneklerden birini belirleyebilirsiniz.

Seçenek Açıklama
/e[lement]:element Öğe için kod oluşturmak için şema belirtir. Varsayılan olarak tüm öğeler yazılmalıdır. Bu bağımsız değişken birden çok kez belirtebilirsiniz.
/enableDataBinding Uygular INotifyPropertyChanged veri bağlama etkinleştirmek için oluşturulan tüm türleri arabirimi. Kısa form şeklindedir /edb.
/enableLinqDataSet (Kısa form: /eld.) Oluşturulan DataSet'in LINQ to DataSet kullanılarak sorgulanabileceğini belirtir. Bu seçenek /dataset seçeneği de belirtildiğinde kullanılır. Daha fazla bilgi için bkz . LINQ to DataSet'e Genel Bakış ve Yazılan Veri Kümelerini Sorgulama. LINQ kullanma hakkında genel bilgi için bkz . Language-Integrated Query (LINQ) - C# veya Language-Integrated Query (LINQ) - Visual Basic.
/f[ields] Yalnızca alanları oluşturur. Varsayılan olarak, yedekleme alanları olan özellikler oluşturulur.
/l[anguage]:language Kullanmak için programlama dilini belirtir. Aralarından seçim CS (C varsayılan değer olan #), VB (Visual Basic) JS (JScript) veya VJS (Visual J#). Ayrıca bir sınıf uygulamak için tam bir ad belirtinSystem.CodeDom.Compiler.CodeDomProvider
/n[amespace]:namespace Oluşturulan türleri için çalışma zamanı ad alanını belirtir. Varsayılan ad alanı Schemas.
/nologo Başlık göstermez.
/Sipariş Tüm parçacık üyeleri açık sipariş tanımlayıcılarını oluşturur.
/o[ut]:directoryName Dosyalarında yerleştirmek için çıktı dizini belirtir. Geçerli dizin varsayılandır.
/u[ri]:uri Öğeler için URI için kod oluşturmak için şema belirtir. Bu URI varsa, ile belirtilen tüm öğelere uygulanır /element seçeneği.

DLL ve EXE dosya seçenekleri

Seçenek Açıklama
/t[ype]:typename Şema için oluşturulacak tür adını belirtir. Birden çok tür bağımsız değişkeni belirtebilirsiniz. typename bir ad alanı belirtmiyorsa, Xsd.exe derlemedeki tüm türleri belirtilen türle eşleştirir. typename bir ad alanı belirtiyorsa, yalnızca bu tür eşleştirilir. Typename bir yıldız karakteri (*) ile bitiyorsa, araç * işaretinden önceki dizeyle başlayan tüm türlerle eşleşir. Unutursanız, /type seçeneği XSD.exe'nin derlemesinde tüm türler için şemalar oluşturur.

Açıklamalar

Aşağıdaki tablo operasyonları XSD.exe'nin gerçekleştireceğini gösterir.

Operasyon Açıklama
XDR XSD için Bir XML şeması bir XML veri azaltılmış şema dosyasından oluşturur. XDR erken bir XML tabanlı şema biçimidir.
XML için XSD Bir XML Şeması XML dosyasından oluşturur.
Veri kümesi için XSD Ortak dil çalışma zamanı oluşturur DataSet bir XSD şema dosyasından sınıfları. Oluşturulan sınıflar için normal XML verileri zengin nesne modeli sağlar.
XSD sınıflar için Bir XSD şema dosyasından çalışma zamanı sınıflar oluşturur. Oluşturulan sınıflar birlikte kullanılabilecek System.Xml.Serialization.XmlSerializer okuma ve yazma şema izleyen XML kodu.
XSD için sınıflar Bir XML şeması bir türü veya türleri bir çalışma zamanı derleme dosyası oluşturur. Oluşturulan şema tarafından XmlSerializerkullanılan XML biçimini tanımlar.

XSD.exe'nin yalnızca World Wide Web Konsorsiyumu (W3C) tarafından önerilen XML şema tanımı (XSD) dil izleyin XML şemaları yönetmenize olanak sağlar. XML Şema Tanımı teklifi veya XML standardı hakkında daha fazla bilgi için bkz https://w3.org. .

Bir XML dosyası ile seçenekleri ayarlama

anahtarını kullanarak /parameters , çeşitli seçenekleri ayarlayan tek bir XML dosyası belirtebilirsiniz. Nasıl XSD.exe'nin aracını kullanarak ayarlayabilirsiniz seçenekler bağlıdır. Seçenekler şunlardır şemaları oluşturmak, kod dosyaları oluşturmak veya dahil kod dosyaları oluşturmak DataSet özellikleri. Örneğin, ayarlayabilirsiniz <assembly> öğesi için bir yürütülebilir (.exe) veya bir şema oluşturulurken türü kitaplık (.dll) dosyası, ancak bir kod dosyası değil oluşturulurken adı. Aşağıdaki XML nasıl kullanılacağı gösterilmiştir <generateSchemas> belirtilen yürütülebilir öğe:

<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>

Yukarıdaki XML GenerateSchemas.xml adlı bir dosyada bulunuyorsa, komut istemine aşağıdakileri yazarak ve Enter tuşuna basarak anahtarı kullanın/parameters:

 xsd /p:GenerateSchemas.xml

Diğer yandan, derlemede bulunan tek bir tür için bir şema oluşturuyorsanız, aşağıdaki XML kullanabilirsiniz:

<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <type>IDItems</type>
</generateSchemas>
</xsd>

Ancak, önceki kodu kullanmak için da komut isteminde derlemenin adı sağlamanız gerekir. Komut istemine aşağıdakileri girin (XML dosyasının GenerateSchemaFromType.xml olarak adlandırılması):

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

İçin aşağıdaki seçeneklerden birini belirtmelisiniz <generateSchemas> öğesi.

Öğe Açıklama
<Derleme> Şema oluşturmak için bir derleme belirtir.
<type> Bir türü için bir şema oluşturmak için bir derleme bulundu belirtir.
<xml> Bir XML dosyası için bir şema oluşturmak için belirtir.
<Xdr> İçin bir şema oluşturmak için bir XDR dosyasını belirtir.

Bir kod dosyası oluşturmak için kullanılan <generateClasses> öğesi. Aşağıdaki örnek, bir kod dosyası oluşturur. Oluşturulan dosyanın programlama dilini ve ad alanını ayarlamanıza olanak sağlayan iki özniteliğin de gösterildiğini unutmayın.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='VB' namespace='Microsoft.Serialization.Examples'/>
</xsd>
<!-- You must supply an .xsd file when typing in the command line.-->
<!-- For example: xsd /p:genClasses mySchema.xsd -->

Seçenekleri için Ayarla <generateClasses> öğesi şunlar.

Öğe Açıklama
<Öğe> Bir öğe için kod oluşturmak üzere .xsd dosyasını belirtir.
<schemaImporterExtensions> Türetilen bir türü belirtiyor. SchemaImporterExtension sınıfı.
<Şema> Kodunu oluşturmak için bir XML şema dosyası belirtir. Birden çok şema> öğesi kullanılarak birden çok <XML Şeması dosyası belirtilebilir.

Aşağıdaki tabloda öğesiyle birlikte kullanılabilecek öznitelikler gösterilmektedir <generateClasses> .

Öznitelik Açıklama
dil Kullanmak için programlama dilini belirtir. Aralarından seçim CS (C#, varsayılan), VB (Visual Basic) JS (JScript) veya VJS (Visual J#). Ayrıca uygulayan bir sınıf için tam bir ad belirtin CodeDomProvider.
ad alanı Oluşturulan kodun ad alanını belirtir. Ad alanı CLR standartları (örneğin, boşluk veya ters eğik çizgi karakterleri) uyması gerekir.
seçenekler Aşağıdaki değerlerden biri: none, properties (ortak alanlar yerine özellikler oluşturur), orderveya enableDataBinding (önceki XSD Dosya Seçenekleri bölümündeki ve /enableDataBinding anahtarları bölümüne bakın/order.

Ayrıca öğesini kullanarak kodun nasıl DataSet oluşturulduğunu <generateDataSet> denetleyebilirsiniz. Aşağıdaki XML, oluşturulan kodun belirtilen bir öğe için Visual Basic kodu oluşturmak için yapıları (sınıf gibiDataTable) kullandığını DataSet belirtir. Oluşturulan DataSet yapıları LINQ sorgularını destekleyecektir.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
    <generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
    </generateDataSet>
</xsd>

Seçenekleri için Ayarla <generateDataSet> öğesi şunlar.

Öğe Açıklama
<Şema> Kodunu oluşturmak için bir XML şeması dosyasını belirtir. Birden çok şema> öğesi kullanılarak birden çok <XML Şeması dosyası belirtilebilir.

Aşağıdaki tabloda öğesiyle kullanılabilecek öznitelikler gösterilmektedir <generateDataSet> .

Öznitelik Açıklama
enableLinqDataSet Oluşturulan veri kümesi LINQ to DataSet kullanarak karşı sorgulanabilir belirtir. Varsayılan değer olarak yanlış kullanılır.
dil Kullanmak için programlama dilini belirtir. Aralarından seçim CS (C#, varsayılan), VB (Visual Basic) JS (JScript) veya VJS (Visual J#). Ayrıca uygulayan bir sınıf için tam bir ad belirtin CodeDomProvider.
ad alanı Oluşturulan kodun ad alanını belirtir. Ad alanı CLR standartları (örneğin, boşluk veya ters eğik çizgi karakterleri) uyması gerekir.

Üst düzey <xsd> öğesinde ayarlayabileceğiniz öznitelikler vardır. Herhangi bir alt öğelerinin bu seçenekler kullanılabilir (<generateSchemas>, <generateClasses> veya <generateDataSet>). Aşağıdaki XML kodu "MyOutputDirectory" adlı Çıktı dizininde "IDItems" adlı bir öğe için kod oluşturur.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
    <element>IDItems</element>
</generateClasses>
</xsd>

Aşağıdaki tabloda öğesiyle birlikte kullanılabilecek öznitelikler gösterilmektedir <xsd> .

Öznitelik Açıklama
çıkış Oluşturulan şema veya kod dosyanın yerleştirileceği bir dizinin adı.
nologo Başlık göstermez. Ayarlanan true veya false.
Yardım Araç için komut sözdizimini ve seçenekleri görüntüler. Ayarlanan true veya false.

Örnekler

Aşağıdaki komutu bir XML şema oluşturur myFile.xdr ve geçerli dizine kaydeder.

xsd myFile.xdr

Aşağıdaki komutu bir XML şema oluşturur myFile.xml ve belirtilen dizine kaydeder.

xsd myFile.xml /outputdir:myOutputDir

Aşağıdaki komutu olarak kaydeder ve C# dili belirtilen şemada karşılık gelen bir veri kümesi oluşturur XSDSchemaFile.cs geçerli dizin.

xsd /dataset /language:CS XSDSchemaFile.xsd

Aşağıdaki komutu tüm türleri için XML şemaları derlemesinde oluşturur myAssembly.dll ve bunları olarak kaydeder schema0.xsd geçerli dizin.

xsd myAssembly.dll

Ayrıca bkz.