Как использовать инструмент определения схемы XML (Xsd.exe) - PullRequest
0 голосов
/ 11 февраля 2011

Серьезно, я в замешательстве. У меня есть .XSD, который сделан из класса, чтобы я мог перейти на веб-сервис. Он передал его веб-сервису как объект XMLSchema, и теперь мне нужно превратить его в класс, чтобы я мог делать из него объекты на стороне веб-сервиса. Я знаю, что XSD.exe - это ответ, но я буду проклят, если смогу разобраться, как именно реализовать эту вещь. Мне нужно, чтобы он выполнял это преобразование во время выполнения, поэтому мне нужно поместить код для него в мой проект, и все ссылки, которые я видел на использование XSD.exe, говорят о вызове его из командной строки. Мой .XSD ниже.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Field">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Name" type="xs:string" />
        <xs:element name="Type" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

В моем проекте это живет в объекте XMLSchema. Как мне превратить его в класс?

- Большое спасибо за любую помощь, которую вы можете оказать.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Если вы работаете с веб-сервисами в .NET, вам не нужно прибегать к манипуляциям с XSD.

Существует инструмент wsdl.exe, если вы используете стек веб-сервисов 1-го поколения из .NET, или .ASMX веб-сервисов. Существует инструмент svcutil.exe, который вы бы использовали, если полагаетесь на WCF.

Эти вещи генерируют прокси-код на стороне клиента, который предоставляет классы, которые позволяют клиентам веб-сервисов вызывать веб-сервисы. Неявно они полагаются на XSD, но вам не нужно напрямую использовать инструмент xsd.exe, и вам не нужно напрямую иметь дело с файлами .xsd.

0 голосов
/ 11 февраля 2011

Если вы используете .NET 2.0, просто используйте «Добавить веб-ссылку» и укажите файл WSDL службы.Если вы используете любую более позднюю версию, используйте «Добавить ссылку на сервис».

Оба из них создадут классы, необходимые для взаимодействия со службой, и вам не нужно будет играть с XSD.EXE или даже WSDL.EXE.

...