Как импортировать XSD в WSDL
Язык описания веб-сервисов (WSDL) — это модель и формат описания веб-сервисов с использованием XML. Потребитель может найти службу и выполнить ее операции. Этот процесс можно автоматизировать с помощью наиболее распространенных инструментов разработки, что позволяет интегрировать приложения с небольшим количеством кода, созданного разработчиком. WSDL — это контракт между поставщиком услуг и потребителем; это делает услугу самоописывающей. WSDL содержат описания всех общедоступных операций, типы данных для всех служебных сообщений, сведения о привязке для транспортного протокола и информацию об адресах служб. Элемент «import» можно использовать в WSDL для импорта внешних WSDL или схем XML. Импорт внешних элементов позволяет сделать WSDL более модульным, повторно использовать типы данных XML в нескольких определениях службы и поддерживать несколько версий схемы.
Шаг 1
Создайте новый файл в текстовом или XML-редакторе. Если редактор поддерживает WSDL, выберите WSDL в качестве типа файла. Если он не поддерживает WSDL, но поддерживает XML, выберите XML в качестве типа файла. Если ни WSDL, ни XML не поддерживаются, выберите обычный текстовый файл.
Шаг 2
Назовите файл любым именем по вашему желанию и дайте файлу расширение «.wsdl». Например, файл может называться «HelloWorld.wsdl».
Шаг 3
Создайте второй новый файл в текстовом или XML-редакторе. Если редактор поддерживает схемы XML, выберите схему XML или XSD в качестве типа файла. Если он не поддерживает схемы XML, но поддерживает файл XML, выберите XML в качестве типа файла. Если ни XML-схемы, ни XML не поддерживаются, выберите обычный текстовый файл.
Шаг 4
Назовите файл любым именем по вашему желанию и дайте файлу расширение «.xsd». Например, файл может называться «HelloWorld.xsd».
Шаг 5
Введите следующую разметку в созданный вами файл XML-схемы:
Это определяет схему с пространством имен "http://schemas.myorg.com/person/phone", которое определяет один тип данных "Телефон".
Шаг 6
Введите следующую разметку в созданный файл WSDL:
wsdl:documentation WSDL с примером импорта
wsdl:types
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.myorg.com/wsdl/helloworld"> <xsd:element name="CallNumber" type="external:Phone"/> <xsd:element name="HelloResponse" type="xsd:string"/> </xsd:schema>
Эта разметка определяет WSDL, который импортирует внешнюю схему XML с именем «helloworld.xsd», которая содержит пространство имен «http://schemas.myorg.com/person/phone».
Оператор import в WSDL импортирует пространство имен XML из файла. Основная цель элемента import — импортировать пространство имен, а не указывать, где можно найти объявления в пространстве имен. Элемент включает необязательный атрибут «schemaLocation». Атрибут является необязательным, поскольку пространство имен можно импортировать из того же файла или зарегистрировать другим способом. Согласно спецификации WSDL, «schemaLoction» — это только подсказка; синтаксический анализатор XML может игнорировать это местоположение. Если синтаксический анализатор уже знает о типах схем в этом пространстве имен или имеет другой механизм их поиска, ему не нужно использовать это местоположение. Однако во многих случаях импортируется пространство имен, о котором синтаксический анализатор XML ничего не знает, поэтому атрибут "schemaLocation" становится необходимым, но технически это все еще просто подсказка.
Совет
Новые технологии, такие как обмен метаданными, MEX, были введены для обмена информацией о возможностях, поддерживаемых сервисом, но эти стандарты еще не получили широкого распространения.
Предупреждение
Поддержка WSDL включает и импортирует. Они могут звучать похоже, но ведут себя по-разному. Оператор импорта импортирует другое пространство имен. Оператор include импортирует объявления типа данных XML в существующее пространство имен.