в чем разница между XSD и WSDL - PullRequest
       74

в чем разница между XSD и WSDL

157 голосов
/ 23 декабря 2009

В чем разница между XML Schema и WSDL?

Я заметил разницу в том, что WSDL содержит XSD и в WSDL мы можем объявлять операции, но не в XSD. Это правильно?

Ответы [ 7 ]

195 голосов
/ 23 декабря 2009

WSDL (язык описания веб-сервисов) описывает ваш сервис и его операции - как называется сервис, какие методы он предлагает, какой тип параметров и возвращаемых значений у этих методов?

Это описание поведения сервиса - это функциональность.

XSD (определение схемы XML) описывает статическую структуру сложных типов данных, которыми обмениваются эти сервисные методы. Он описывает типы, их поля, любые ограничения на эти поля (например, максимальную длину или шаблон регулярных выражений) и т. Д.

Это описание типов данных и, следовательно, статических свойств сервиса - это данные.

160 голосов
/ 23 декабря 2009

XSD определяет схему, которая является определением того, как XML-документ может быть структурирован.Вы можете использовать его для проверки того, что данный XML-документ действителен и соответствует правилам, изложенным в схеме.

WSDL - это XML-документ, описывающий веб-службу.Он показывает, какие операции доступны и как должны быть структурированы данные для отправки этим операциям.

Документы WSDL имеют связанный XSD, который показывает, что действительно можно поместить в документ WSDL.

54 голосов
/ 30 апреля 2014

XSD: определение схемы XML.

XML: расширяемый язык разметки.

WSDL: язык определения веб-службы.

Я не собираюсь отвечать технически. Я нацеливаю это объяснение на начинающих.

Нелегко общаться между двумя разными приложениями, которые разработаны с использованием двух разных технологий. Например, компания в Чикаго может разработать веб-приложение с использованием Java, а другая компания в Нью-Йорке может разработать приложение на C #, и когда эти две компании решили обмениваться информацией, тогда возникает XML. Это помогает хранить и передавать данные между двумя различными приложениями, разработанными с использованием разных технологий. Примечание: это не ограничивается языком программирования, пожалуйста, изучите передачу информации между двумя различными приложениями.

XSD - это определение схемы. Под этим я подразумеваю, что пользователи должны разрабатывать свои XML в такой схеме. Пожалуйста, смотрите ниже изображения, и, пожалуйста, внимательно посмотрите с элементом «load-on-startup» и его типом, который является целым числом. На изображении XSD вы можете видеть, что это целочисленное значение для «загрузки при запуске», и, следовательно, когда пользователь создал свой XML, он передал значение int этому конкретному элементу. Напоминаем, что XSD - это схема и стиль, тогда как XML - это форма для связи с другим приложением или системой. Нужно видеть XSD и создавать XML таким образом, иначе он не будет взаимодействовать с другим приложением или системой, которая была разработана с другой технологией. Компания в Чикаго предоставляет шаблон XSD для компании в Техасе, чтобы написать или сгенерировать их XML в заданном формате XSD. Если компания в Техасе не соблюдает эти правила или схемы, упомянутые в XSD, то невозможно ожидать точную информацию от компании в Чикаго. После вышеупомянутой истории так много нужно сделать, что любитель или новичок должны знать, когда кодируют что-то, как я сказал выше. Если вы действительно хотите знать, что произойдет позже, то лучше посоветоваться со старшими инженерами-программистами, которые на самом деле разработали веб-сервисы. Далее идет WSDL, пожалуйста, следуйте изображениям и попытайтесь выяснить, куда поместится WSDL.

*************** ======== Ниже приведено частичное изображение XML ========== ********* ****** XML image partial

*************** ======== Ниже приведено частичное изображение XSD ========== ********* ******

XSD image partial

*************** ======== Ниже приведено частичное изображение WSDL ======= *********** **

WSDL image partial

Мне пришлось создать пример WSDL для веб-службы под названием Book. Обратите внимание, что это XSD, но вы должны называть его WSDL (язык определения веб-службы), поскольку он очень специфичен для веб-служб. Приведенный ниже WSDL (или, другими словами, XSD) создан для класса Book.java и создал службу SOAP. Как создавался веб-сервис SOAP, это другая тема. Нужно написать класс Java, и перед его созданием в качестве веб-службы пользователь должен убедиться, что Axis2 API установлен, а Tomcat для размещения веб-службы установлен.

Поскольку обслуживающий (тот, кто позволяет другим (клиентам) получать доступ к информации или данным из их систем) фактически предоставляет клиенту (тому, кому необходимо использовать информацию или данные обслуживающего устройства) полный доступ к данным через веб-службу, поскольку ни одна компания на земле не желает раскрывать свою базу данных для посторонних. Как и моя компания, решил предоставить некоторую информацию о продуктах через веб-сервисы, поэтому нам пришлось создать шаблон XSD и передать его нескольким нашим клиентам, которые хотят с нами работать. Они должны написать некоторый код, чтобы в полной мере использовать данный XSD и сделать вызовы веб-службы для извлечения данных из обслуживающего устройства и преобразования данных, возвращаемых в их подходящее требование, а затем для отображения или публикации данных или информации о продукте на своем веб-сайте. Простым примером будет бронирование билетов FLIGHT. Авиакомпания позволит третьим сторонам использовать данные о рейсах на своем сайте для продажи билетов. Но опять же, это намного больше, это просто не позволяет стороннему агенту по продаже авиабилетов продавать билеты, будет синхронизация и безопасность на месте. Если синхронизация отсутствует, то есть вероятность того, что более одного клиента купят один и тот же авиабилет из разных источников.

Я надеюсь, что эксперты ответят на мой вопрос. Новичку или новичку действительно трудно понять XML, XSD, а затем работать с веб-сервисами.

10 голосов
/ 23 декабря 2009

XSD предназначен для проверки документа и содержит метаданные о XML, а WSDL - для описания местоположения и операций веб-службы.

3 голосов
/ 23 декабря 2009

XSD (определение схемы XML) определяет элемент в документе XML. Его можно использовать для проверки того, соответствуют ли элементы в документе xml описанию, в котором должно быть размещено содержимое. В то время как wsdl - это определенный тип XML-документа, который описывает веб-сервис. Сам WSDL придерживается XSD.

1 голос
/ 22 июля 2013

WSDL - содержит операцию, такую ​​как методы, предоставляемые веб-службой. И этот метод может принимать простые типы данных, такие как int, float и т. Д., И сложные типы данных, такие как объекты, векторы, массивы и т. Д., Поэтому сопоставляет их с xml Тип данных XSD используются. и на основе xsd пользователь, который хочет получить доступ к веб-сервису с другой платформы, может предоставить данные соответствующим образом.

См. Ayazroomy-java.blogspot.com для ознакомления с основами веб-сервиса.

0 голосов
/ 23 ноября 2017

Если кто-то ищет аналогию, этот ответ может быть полезным.

WSDL похож на команду 'SHOW TABLE STATUS' в mysql. Он определяет все элементы (тип запроса, тип ответа, формат URL для запроса на попадание и т. Д.), Которые должны быть частью XML. По определению я имею в виду: 1) Названия запроса или ответа 2) Что следует рассматривать как ввод, что следует рассматривать как вывод.

XSD похож на команду DESC в mysql. Он сообщает, что содержат все переменные и их типы, в запросе и ответе.

...