API Карт Google V3, XML-код ответа - PullRequest
4 голосов
/ 20 февраля 2012

Я пытаюсь проанализировать XML-ответ Google-Maps, используя JAXB. Будет очень хорошо, если Google предоставит XSD-файл. Кто-нибудь знает, где его взять?

Если вообще не существует xsd, кто-нибудь знает, почему Google не будет предлагать эту схему официально? Сами они, вероятно, также используют этот файл.

спасибо, user1146450

Ответы [ 3 ]

3 голосов
/ 20 февраля 2012

Это скорее мое образованное предположение, что не существует официального XSD для того, что вы ищете;Причина в том, как написана документация API, в частности, в том, что она поставляется с предпочтительной моделью обработки, которая для XML-ответов основана на XPath.

XML Google также не типичен для традиционной веб-службы, описанной с использованием комбинации WSDL + XSD;в нем отсутствуют пространства имен XML, что является нарушением правила основного профиля WS-I R1014.

Что касается того, почему, я думаю, что ваш вопрос готов к тому, чтобы получить довольно личные взгляды по этому вопросу, если вам не повезет получить ответот инсайдера ... В этот момент я немедленно опущу свой ответ ... До тех пор, это мое мнение о том, когда использование XSD не может быть такой яркой идеей.

Если бы былоВ мире, где для разработки будет доступен только чистый стек обработки XML (например, XML, XSLT и т. п., устройства XML, такие как Datapower, Forum, Layer 7 и т. д.), я бы не подумал о предоставлении схемы XML (XSD или других).почти «преступление».

Если вы добавите языки со строгой типизацией, такие как Java и C #, то вы потеряете большую гибкость, которую XML привносит в таблицу.XSD использовался в качестве основного артефакта для облегчения этих методов «привязки»;это помогло принять XML и помешало тому, что я называю моделями обработки на основе XML, одной из которых является XPath от Google.

Если семантика привязана к XPath, то изменения в существующей структуре XML, какнеобходимо для размещения новых функций, не должно иметь значения для существующего процессора.Но именно здесь дросселируют привязки JAXB и .NET ...

Чтобы облегчить некоторые из них, люди начинают использовать функции XSD, которые для среднего разработчика слишком сложны, или создают XSD, которые описывают очень абстрактные модели.Так что теперь у каждого начинают появляться высокие скорости записи, пытаясь поддерживать все это ...

Может оказаться, что для простых структур с точки зрения поддержки может быть дешевле пропустить XSD все вместе;большинство людей (во всяком случае) хотят увидеть образец XML, чтобы понять, что такое XSD.Если владелец спецификации решит добавить новые теги, где бы он / она не счел нужным, никто не сможет заплакать, поскольку извлечение данных на основе XPath всегда будет невосприимчиво к таким изменениям ... Попытка сделать это с XSD либобыть невозможным или очень уродливым ...

А в случае с Google, если большая его часть нацелена на браузер, зачем отвечать «как я проверяю XML с помощью javascript?» ... И никому не нужен серверпобочные приложения аварийно завершают работу каждый раз, когда нужно добавить новый тег в XML ... Для тех, кто думает, что подстановочные знаки xsd являются ответом, я утверждаю, что это не всегда возможно (см. UPA), или это влияет на разборчивость XSD, или что это на самом делевозвращает хороший XmlNode обратно в картину ...

Подводя итог, я считаю, что привязки кода XSD + (ваш язык здесь), в конечном счете, вызвали больше хлопот и занятости;) - чемчто-нибудь еще!

0 голосов
/ 28 сентября 2017

(например) Вы можете получить XML из запроса геокода, а затем вставить его в интерактивный XML для создателя XSD.Наконец, вам нужно отредактировать результат, чтобы он соответствовал разным ответам (мне пришлось добавить целевое пространство имен и minOccurs = "0" maxOccurs = "unbounded" к элементу, чтобы соответствовать нескольким местам).

Вы должны получить что-то вродеthis (XSD для приведенного выше примера)

 `https://pastebin.com/iV6w41ye`
0 голосов
/ 11 декабря 2014

Я думаю, что это поможет вам.в нем показано, как использовать XPath для работы с XML в API Карт Google https://developers.google.com/maps/documentation/webservices/index#ParsingXML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...