Я задаю этот вопрос преимущественно в контексте API веб-службы REST / XML (тип мультимедиа «application / vnd.mystuff + xml»), но, возможно, этот вопрос по-прежнему актуален для веб-служб на основе SOAP.
Если XML-схема, описывающая словарь наших ресурсов / полезных нагрузок, изменится, как мне лучше всего указать клиенту, что он должен использовать / ожидать более новую версию XML-схемы?
Должны ли мы включить идентификатор версии в корневой элемент следующим образом:
<mything xmlns="http://mycompany.com/yadda" version="1.0">
или мы должны просто ссылаться на схему XML следующим образом:
<mything xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://mycompany.com/yadda/1 yadda-1.0.xsd" xmlns="http://mycompany.com/yadda">
или оба?
<mything xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://mycompany.com/yadda/1 yadda-1.0.xsd" xmlns="http://mycompany.com/yadda" version="1.0">
Является ли обычной практикой отправлять полезную нагрузку XML, которая ссылается на схему XML?
Нет. Используйте пространство имен XML, чтобы указать, какую схему использовать.