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, , Include
ve Lib
ortam değişkenlerinizi Path
doğ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), order veya 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