Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средство определения схемы XML (Xsd.exe) создает классы XML-схемы или среды CLR из файлов XDR, XML и XSD или из классов в сборке среды выполнения.
Обычно средство определения схемы XML (Xsd.exe) можно найти в следующем пути:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\
Синтаксис
Запустите средство из командной строки.
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]
Подсказка
Для правильной работы средств .NET Framework необходимо правильно задать переменные среды Path
, Include
и Lib
. Задайте эти переменные среды, выполнив SDKVars.bat, который находится в каталоге <SDK>\<version>\Bin. SDKVars.bat необходимо выполнить в каждой командной оболочке.
Аргумент
Аргумент | Описание |
---|---|
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]:каталог | Указывает каталог для выходных файлов. Этот аргумент может отображаться только один раз. По умолчанию используется текущий каталог. |
/? | Отображает синтаксис команд и параметров программы. |
/p[arameters]:file.xml | Параметры чтения для различных режимов операций из указанного .xml файла. Короткая форма /p: . Дополнительные сведения см. в разделе с примечаниями. |
Параметры XSD-файла
Необходимо указать только один из следующих параметров для XSD-файлов.
Вариант | Описание |
---|---|
/c[lasses] | Создает классы, соответствующие указанной схеме. Чтобы считывать XML-данные в объект, используйте метод XmlSerializer.Deserialize. |
/d[ataset] | Генерирует класс, производный от DataSet, который соответствует указанной схеме. Чтобы считывать XML-данные в производный класс, используйте метод DataSet.ReadXml. |
Можно также указать любой из следующих параметров для XSD-файлов.
Вариант | Описание |
---|---|
/e[lement]:element | Указывает элемент в схеме для создания кода. По умолчанию всем элементам присваивается тип. Этот аргумент можно указать несколько раз. |
/enableDataBinding | Реализует интерфейс INotifyPropertyChanged на всех сгенерированных типах для включения привязки данных. Короткая /edb форма . |
/enableLinqDataSet | (Короткая форма: /eld .) Указывает, что созданный набор данных можно запрашивать с помощью LINQ to DataSet. Этот параметр используется при указании параметра /dataset. Дополнительные сведения см. в разделе LINQ to DataSet Overview and Querying Typed DataSets. Общие сведения об использовании LINQ см. в разделе Language-Integrated Query (LINQ) — C# или Language-Integrated Query (LINQ) — Visual Basic. |
/f[ields] | Создает только поля. По умолчанию создаются свойства с полями резервного копирования . |
/l[anguage]:язык | Указывает используемый язык программирования.
CS Выберите вариант (C#, который является значением по умолчанию), VB (Visual Basic), JS (JScript) или VJS (Visual J#). Можно также указать полное имя для класса, реализуемого System.CodeDom.Compiler.CodeDomProvider |
/n[amespace]:namespace | Указывает пространство имен среды выполнения для созданных типов. Пространство имен по умолчанию — Schemas . |
/nologo | Подавляет баннер. |
/заказ | Создает явные идентификаторы порядка для всех элементов частиц. |
/o[ut]:directoryName | Указывает выходной каталог для размещения файлов. По умолчанию используется текущий каталог. |
/u[ri]:uri | Задает URI для элементов схемы, чтобы сгенерировать код. Этот универсальный код ресурса (URI), если он присутствует, применяется ко всем элементам, указанным с параметром /element . |
Параметры ФАЙЛА DLL и EXE
Вариант | Описание |
---|---|
/t[ype]:typename | Указывает имя типа для создания схемы. Аргументы нескольких типов можно указать. Если имя типа не указывает пространство имен, Xsd.exe соответствует всем типам в сборке с указанным типом. Если имя типа указывает пространство имен, совпадает только этот тип. Если имя типа заканчивается звездочкой (*), средство соответствует всем типам, начинающимся со строки, предшествующей *. Если вы опустите параметр /type , Xsd.exe создаст схемы для всех типов в сборке. |
Замечания
В следующей таблице показаны операции, которые выполняет Xsd.exe.
Операция | Описание |
---|---|
XDR в XSD | Создает XML-схему из файла схемы XML-Data-Reduced. XDR — это ранний формат схемы на основе XML. |
XML в XSD | Создает XML-схему из XML-файла. |
Преобразование XSD в DataSet | Создает классы для общей языковой среды выполнения DataSet из файла схемы XSD. Созданные классы предоставляют многофункциональную объектную модель для обычных XML-данных. |
XSD в классах | Создает классы среды выполнения из файла схемы XSD. Созданные классы можно использовать в сочетании с System.Xml.Serialization.XmlSerializer для чтения и записи XML-кода, соответствующего схеме. |
Классы в XSD | Создает XML-схему из типа или типов в файле сборки среды выполнения. Созданная схема определяет формат XML, используемый параметром XmlSerializer. |
Xsd.exe только позволяет управлять xml-схемами, которые соответствуют языку определения схемы XML (XSD), предлагаемому консорциумом W3C. Дополнительные сведения о предложении определения схемы XML или стандарте XML см. в разделе https://w3.org.
Настройка параметров с помощью XML-файла
С помощью /parameters
переключателя можно указать один XML-файл, который устанавливает разные параметры. Параметры, которые можно задать, зависят от того, как вы используете средство XSD.exe. Варианты включают создание схем, создание файлов кода или создание файлов кода, которые включают DataSet
функции. Например, элемент можно задать <assembly>
для имени исполняемого файла (.exe) или библиотеки типов (.dll) при создании схемы, но не при создании файла кода. В следующем XML-коде показано, как использовать элемент <generateSchemas>
с указанным исполняемым файлом.
<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>
Если предыдущий XML-код содержится в файле с именем GenerateSchemas.xml, используйте /parameters
переключатель, введя следующий код в командной строке и нажав клавишу ВВОД:
xsd /p:GenerateSchemas.xml
С другой стороны, если вы создаете схему для одного типа, найденного в сборке, можно использовать следующий XML:
<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<type>IDItems</type>
</generateSchemas>
</xsd>
Но для использования предыдущего кода необходимо также указать имя сборки в командной строке. Введите следующее в командной строке (предполагая, что XML-файл называется GenerateSchemaFromType.xml):
xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe
Для элемента необходимо указать только один из следующих параметров <generateSchemas>
.
Элемент | Описание |
---|---|
<сборка> | Указывает сборку, из которой создается схема. |
<тип> | Указывает тип, найденный в сборке для создания схемы. |
<xml> | Указывает XML-файл для создания схемы. |
<xdr> | Задает XDR-файл для создания схемы. |
Чтобы создать файл кода, используйте <generateClasses>
элемент. В следующем примере создается файл кода. Обратите внимание, что также показаны два атрибута, которые позволяют задать язык программирования и пространство имен созданного файла.
<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 -->
Параметры, которые можно задать для <generateClasses>
элемента, включают следующие.
Элемент | Описание |
---|---|
<элемент> | Указывает элемент в XSD-файле для создания кода. |
<schemaImporterExtensions> | Указывает тип, производный от SchemaImporterExtension класса. |
<схема> | Указывает XML-файл схемы для создания кода. Несколько XML-файлов схемы можно указать с помощью нескольких <элементов схемы> . |
В следующей таблице показаны атрибуты, которые также можно использовать с элементом <generateClasses>
.
Атрибут | Описание |
---|---|
язык | Указывает используемый язык программирования.
CS Выберите один из вариантов (C#, по умолчанию) VB (Visual Basic), JS (JScript) или VJS (Visual J#). Можно также указать полное имя для класса, реализующего CodeDomProvider. |
пространство имен | Задает пространство имен для созданного кода. Пространство имен должно соответствовать стандартам CLR (например, без пробелов и символов обратной косой черты). |
опции | Одно из следующих значений: none , properties (создает свойства вместо открытых полей), order , или enableDataBinding (см. раздел "Параметры файла XSD" и переключатели /order и /enableDataBinding в предыдущем разделе "Параметры файла XSD"). |
Вы также можете управлять тем, как DataSet
код создается с помощью <generateDataSet>
элемента. Следующий XML-код указывает, что созданный код использует DataSet
структуры (например DataTable , класс) для создания кода Visual Basic для указанного элемента. Созданные структуры набора данных поддерживают запросы LINQ.
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
</generateDataSet>
</xsd>
Параметры, которые можно задать для <generateDataSet>
элемента, включают следующие.
Элемент | Описание |
---|---|
<схема> | Указывает XML-файл схемы для создания кода. Несколько XML-файлов схемы можно указать с помощью нескольких <элементов схемы> . |
В следующей таблице показаны атрибуты, которые можно использовать с элементом <generateDataSet>
.
Атрибут | Описание |
---|---|
enableLinqDataSet | Указывает, что созданный набор данных можно запрашивать с помощью LINQ to DataSet. По умолчанию используется значение false. |
язык | Указывает используемый язык программирования.
CS Выберите один из вариантов (C#, по умолчанию) VB (Visual Basic), JS (JScript) или VJS (Visual J#). Можно также указать полное имя для класса, реализующего CodeDomProvider. |
пространство имен | Задает пространство имен для созданного кода. Пространство имен должно соответствовать стандартам CLR (например, недопустимы пробелы и символы обратной косой черты). |
Существуют атрибуты, которые можно задать на элементе верхнего уровня <xsd>
. Эти параметры можно использовать с любым дочерним элементом (<generateSchemas>
<generateClasses>
или<generateDataSet>
). Следующий XML-код создает код для элемента с именем IDItems в выходном каталоге с именем MyOutputDirectory.
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
<element>IDItems</element>
</generateClasses>
</xsd>
В следующей таблице показаны атрибуты, которые также можно использовать с элементом <xsd>
.
Атрибут | Описание |
---|---|
результат | Имя каталога, в котором будет размещен созданный файл схемы или кода. |
nologo | Скрывает баннер. Задайте true или false . |
Помощь | Отображает синтаксис команд и параметров программы. Задайте 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