XML doctype в OpenAPI 3.0?

Вопрос сравнительно простой: есть ли возможность описать doctype исходящего XML-документа в Schema Object в моей спецификации OpenAPI 3.0? Вижу, что есть некий XML Object, но он указывается только у свойств, и про doctype там ни слова. Не упоминается оно и в статье «Representing XML». Неужели это просто не поддерживается?


Ответы (1 шт):

Автор решения: Helen

В OpenAPI нет встроенного атрибута для DOCTYPE, но есть механизм расширений - произвольных атрибутов с префиксом x-. Поэтому вы можете указать DOCTYPE в виде расширения, например:

Customer:
  type: object
  properties:
    ...

  x-doctype: <!DOCTYPE customer SYSTEM "https://mycompany.com/dtd/customer.dtd">

  # или значение без обертки <!DOCTYPE ... >
  # x-doctype: customer SYSTEM "https://mycompany.com/dtd/customer.dtd"

  # или добавить расширение внутрь атрибута `xml`
  # xml:
  #  x-doctype: <!DOCTYPE customer SYSTEM "https://mycompany.com/dtd/customer.dtd">

или т.п.

Имейте ввиду, что расширения - это просто метаданные и инструменты (генераторы кода, валидаторы и др.) не обрабатывают неизвестные им расширения. Поэтому если нужно как-то обрабатывать это расширение, то его обработку придется реализовать самостоятельно.

→ Ссылка