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


178

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

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

Ответы:


177

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

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

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


15
Паоло ответ правильный. Просто усиливаю это. Поскольку WSDL на самом деле является XML и может иметь или не иметь XSD для проверки его структуры. Связанный XSD может быть отдельным файлом и импортирован в WSDL, или полный XSD может быть встроен в сам файл WSDL с помощью тега <WSDL: types>. Для получения дополнительной информации ibm.com/developerworks/webservices/library/ws-tip-imports
supernova

Если это в значительной степени две разные вещи, почему при создании веб-службы, например, в Netbeans, я ?xsd=1автоматически получаю URL-адрес?
CodyBugstein

212

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

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

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

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


25
Это гораздо лучший ответ, объясняющий XSD в контексте WSDL, а не просто разницу между ними. Чтобы добавить, определения XSD являются частью WSDL в теге <wsdl: types>.
airboss

Так что я мог бы иметь WSDL без XSD, если мне не нужно сложное определение данных?
Esseara

61

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. Если вы действительно хотите знать, что произойдет позже, то лучше посоветоваться с ведущими разработчиками программного обеспечения, которые действительно разрабатывали веб-сервисы. Далее идет WSDL, пожалуйста, следуйте изображениям и попытайтесь выяснить, куда поместится WSDL. Если вы действительно хотите знать, что произойдет позже, то лучше посоветоваться с ведущими разработчиками программного обеспечения, которые действительно разрабатывали веб-сервисы. Далее идет WSDL, пожалуйста, следуйте изображениям и попытайтесь выяснить, куда поместится WSDL.

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

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

Частичное изображение XSD

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

Частичное изображение WSDL

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

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

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


по крайней мере, это дало мне подсказку о том, как работают эти технологии
MbaiMburu

10

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


3

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


1

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

Обратитесь: ayazroomy-java.blogspot.com, чтобы прочитать об основах веб-сервиса.


0

XSD - это схема для файла WSDL. XSD содержит типы данных для WSDL. Элемент, объявленный в XSD, допустим для использования в файле WSDL. Мы можем проверить WSDL против XSD, чтобы проверить, является ли веб-сервис WSDL действительным или нет.


0

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

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

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


Разве DESC в MySQL не используется для порядка сортировки? ОПИСАТЬ, однако, больше похоже на это.
Mangs
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.