Инструмент определения схемы XML (Xsd.exe)
Инструмент определения схемы XML (Xsd.exe) создает схему XML или классы CLR из файлов XDR, XML и XSD либо из классов в сборке среды выполнения.
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]
Аргумент
Аргумент | Описание |
---|---|
file.extension |
Задает входной файл, который необходимо преобразовать. Следует указать одно из следующих расширений : XDR, XML, XSD, DLL или EXE. Если указать файл схемы XDR (расширение XDR), Xsd.exe преобразует схему XDR в схему XSD. Имя выходного файла аналогично имени схемы XDR, но имеет расширение XSD. Если указать XML-файл (расширение XML), Xsd.exe определяет схему по данным в файле и создает схему XSD. Имя выходного файла аналогично имени XML-файла, но имеет расширение XSD. Если указать файл схемы XML (расширение XSD), Xsd.exe создает исходный код для объектов среды выполнения, соответствующих схеме XML. Если указать файл сборки среды выполнения (расширение EXE или DLL), Xsd.exe создает схемы для одного или нескольких типов в этой сборке. Чтобы указать типы, для которых необходимо создать схемы, можно использовать параметр /type. Выходным схемам присваиваются имена schema0.xsd, schema1.xsd и т. д. Xsd.exe создает несколько схем, только если указанные типы задают пространство имен с использованием настраиваемого атрибута XMLRoot. |
Общие параметры
Параметр | Описание |
---|---|
/h[elp] |
Отображает синтаксис команд и параметров инструмента. |
/o[utputdir]:directory |
Задает каталог выходных файлов. Этот аргумент отображается только один раз. Значением по умолчанию является текущий каталог. |
/? |
Отображает синтаксис команд и параметров инструмента. |
/P[arameters]:file.xml |
Считывает параметры различных режимов операций из указанного XML-файла. Краткая форма "/p:". Дополнительные сведения см. в разделе "Примечания". |
Параметры файла XSD
Для файлов XSD следует указать только один из следующих параметров.
Параметр | Описание |
---|---|
/c[lasses] |
Создает классы, соответствующие указанной схеме. Чтобы считать данные XML в объект, используйте метод System.Xml.Serialization.XmlSerializer.Deserializer. |
/d[ataset] |
Создает классы, которые являются производными класса DataSet и соответствуют указанной схеме. Чтобы считать данные XML в производный класс, используйте метод System.Data.DataSet.ReadXml. |
Для файлов XSD также можно указать любой из следующих параметров.
Параметр | Описание |
---|---|
/e[lement]:element |
Определяет элемент в схеме, для которого создается код. По умолчанию все элементы имеют тип. Этот аргумент можно задать несколько раз. |
/enableDataBinding |
Реализует интерфейс INotifyPropertyChanged для всех созданных типов для обеспечения привязки данных. Краткая форма — "/edb". |
/enableLinqDataSet |
(Краткая форма: /eld.) Указывает, что созданный набор данных можно запросить с помощью LINQ to DataSet. Этот параметр используется только при указании параметра /dataset. Дополнительные сведения см. в разделах LINQ to DataSet Overview и Querying Typed DataSets. Общие сведения об использовании LINQ см. в разделе Language-Integrated Query (LINQ). |
/f[ields] |
Создает поля вместо свойств. По умолчанию создаются свойства. |
/l[anguage]:language |
Задает используемый язык программирования. Доступный выбор: CS (C#, по умолчанию), VB (Visual Basic), JS (JScript) или VJS (Visual J#). Также можно указать полное имя класса, реализующего System.CodeDom.Compiler.CodeDomProvider |
/n[amespace]:namespace |
Определяет пространство имен среды выполнения для создаваемых типов. Пространство имен по умолчанию — Schemas. |
/nologo |
Отключает баннер. |
/order |
Создает явные идентификаторы порядка для всех примитивных членов. |
/o[ut]:directoryName |
Задает выходной каталог, в котором следует размещать файлы. По умолчанию используется текущий каталог. |
/u[ri]:uri |
Определяет универсальный код ресурса (URI) для элементов схемы, для которого создается код. Этот универсальный код ресурса, если имеется, применяется ко всем элементам, заданным параметром /element. |
Параметры файлов DLL и EXE
Параметр | Описание |
---|---|
/t[ype]:typename |
Задает имя типа, для которого следует создать схему. Можно указать несколько аргументов типа. Если typename не указывает пространство имен, Xsd.exe сопоставляет все типы в сборке с указанным типом. Если typename задает пространство имен, сопоставляется только этот тип. Если typename заканчивается знаком звездочки (*), инструмент сопоставляет все типы, которые начинаются со строки, предшествующей знаку звездочки (*). Если параметр /type не задан, Xsd.exe создает схемы для всех типов в сборке. |
Замечания
В следующей таблице показаны операции, выполняемые Xsd.exe.
- XDR в XSD
Создает схему XML из файла схемы XDR. XDR является более ранним форматом схемы, основанной на XML.
- XML в XSD
Создает схему XML из XML-файла.
- XSD в DataSet
Создает классы CLR DataSet из файла схемы XSD. Создаваемые классы представляют собой объектную модель с широкими функциональными возможностями для обычных данных XML.
- XSD в классы
Создает классы среды выполнения из файла схемы XSD. Созданные классы можно использовать совместно с System.Xml.Serialization.XmlSerializer для чтения и записи кода XML, соответствующего схеме.
- Классы в XSD
Создает схему XML из типа или типов в файле сборки среды выполнения. Созданная схема определяет формат XML, используемый System.Xml.Serialization.XmlSerializer.
Xsd.exe позволяет управлять только схемами XML, которые соответствуют языку определения схемы XML (XSD), предложенному консорциумом World Wide Web Consortium (W3C). Дополнительные сведения о предложенном определении схемы XML или стандарте XML см. на веб-сайте http://w3.org.
Установка параметров с помощью XML-файла
С помощью ключа /parameters можно задать один XML-файл, который содержит различные параметры. Задаваемые параметры зависят от способа использования инструмента XSD.exe. Варианты включают в себя создание схем, файлов кода или создание файлов кода, содержащих функции DataSet. Например, можно задать элемент <assembly> как имя исполняемого файла (расширение EXE) или файла библиотеки типов (расширение DLL) при создании схемы, но не при создании файла кода. В следующем примере XML показано, как использовать элемент <generateSchemas> с указанным исполняемым файлом:
<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='https://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>
Если предыдущий XML содержится в файле с именем "GenerateSchemas.xml", используйте ключ /parameters, введя следующий текст в командной строке и нажав клавишу ENTER:
xsd /p:GenerateSchemas.xml
С другой стороны, при создании схемы для одного типа, найденного в сборке, можно использовать следующий XML:
<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='https://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<type>IDItems</type>
</generateSchemas>
</xsd>
Но чтобы использовать предыдущий код, в командной строке следует также указать имя сборки. В командной строке введите следующую команду (допустим, имя XML-файла — GenerateSchemaFromType.xml):
xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe
Для элемента <generateSchemas> следует указать только один из следующих параметров.
Элемент | Описание |
---|---|
<assembly> |
Определяет сборку, из которой создается схема. |
<type> |
Определяет тип, найденный в сборке, для которого создается схема. |
<xml> |
Задает XML-файл, для которого создается схема. |
<xdr> |
Определяет XDR-файл, для которого создается схема. |
Чтобы создать файл кода, используйте элемент <generateClasses>. В следующем примере создается файл кода. Обратите внимание, что также отображаются два атрибута, с помощью которых можно задать язык программирования и пространство имен создаваемого файла.
<xsd xmlns='https://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 -->
Параметры, которые можно задать для элемента <generateClasses>, включают в себя следующие.
Элемент | Описание |
---|---|
<element> |
Определяет элемент в файле XSD, для которого создается код. |
<schemaImporterExtensions> |
Определяет тип, унаследованный от класса SchemaImporterExtension. |
<schema> |
Определяет файл схемы XML, для которой создается код. С помощью нескольких элементов <schema> можно задать несколько файлов схемы XML. |
В следующей таблице представлены атрибуты, которые также можно использовать с элементом <generateClasses>.
Атрибут | Описание |
---|---|
language |
Задает используемый язык программирования. Доступный выбор: CS (C#, по умолчанию), VB (Visual Basic), JS (JScript) или VJS (Visual J#). Также можно указать полное имя класса, реализующего CodeDomProvider. |
namespace |
Задает пространство имен созданного кода. Пространство имен должно соответствовать стандартам CLR (например, отсутствие пробелов или обратной косой черты). |
options |
Одно из следующих значений: none, properties (создает свойства вместо открытых полей), order или enableDataBinding (см. ключи /order и/enableDataBinding в предыдущем разделе параметров файла XSD). |
Также предусмотрена возможность управления созданием кода DataSet с использованием элемента <generateDataSets>. Следующий XML-код указывает, что созданный код
использует структуры DataSet (например, класс DataTable) для создания кода Visual Basic для указанного элемента. Созданные структуры DataSet поддерживают запросы LINQ.
<xsd xmlns='https://microsoft.com/dotnet/tools/xsd/'>
<generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
</generateDataSet>
</xsd>
Параметры, которые можно задать для элемента <generateDataSet>, включают в себя следующие.
Элемент | Описание |
---|---|
<schema> |
Определяет файл схемы XML, для которой создается код. С помощью нескольких элементов <schema> можно задать несколько файлов схемы XML. |
В следующей таблице представлены атрибуты, которые можно использовать с элементом <generateDataSet>.
Атрибут | Описание |
---|---|
enableLinqDataSet |
Указывает, что созданный набор данных можно запросить с помощью LINQ to DataSet. Значение по умолчанию — false. |
language |
Задает используемый язык программирования. Доступный выбор: CS (C#, по умолчанию), VB (Visual Basic), JS (JScript) или VJS (Visual J#). Также можно указать полное имя класса, реализующего CodeDomProvider. |
namespace |
Задает пространство имен созданного кода. Пространство имен должно соответствовать стандартам CLR (например, отсутствие пробелов или обратной косой черты). |
Существуют атрибуты, которые можно задать для элемента верхнего уровня <xsd>. Эти параметры можно использовать с любым из дочерних элементов (<generateSchemas>, <generateClasses> или <generateDataSet>). Следующий код XML создает код для элемента с именем "IDItems" в выходном каталоге с именем "MyOutputDirectory".
<xsd xmlns='https://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
<element>IDItems</element>
</generateClasses>
</xsd>
В следующей таблице представлены атрибуты, которые также можно использовать с элементом <xsd>.
Атрибут | Описание |
---|---|
output |
Имя каталога, в который сохраняется созданная схема или файл кода. |
nologo |
Отключает баннер. Задайте true или false. |
help |
Отображает синтаксис команд и параметров инструмента. Задайте true или false. |
Примеры
Следующая команда создает схему XML из myFile.xdr
и сохраняет ее в текущий каталог.
xsd myFile.xdr
Следующая команда создает схему XML из myFile.xml
и сохраняет ее в указанный каталог.
xsd myFile.xml /outputdir:myOutputDir
Следующая команда создает набор данных, соответствующий определенной схеме на языке C# и сохраняет его как XSDSchemaFile.cs
в текущий каталог.
xsd /dataset /language:CS XSDSchemaFile.xsd
Следующая команда создает схемы XML для всех типов в сборке myAssembly.dll
и сохраняет их как schema0.xsd
в текущий каталог.
xsd myAssembly.dll
См. также
Справочник
System.Xml.Serialization.XmlSerializer.Deserializer
DataSet
System.Xml.Serialization.XmlSerializer
Другие ресурсы
.NET Framework Tools
SDK Command Prompt
LINQ to DataSet Overview
Querying Typed DataSets
Language-Integrated Query (LINQ)
Дата сборки: 2010-03-10