XML doctype в OpenAPI 3.0?
Вопрос сравнительно простой: есть ли возможность описать doctype исходящего XML-документа в Schema Object в моей спецификации OpenAPI 3.0? Вижу, что есть некий XML Object, но он указывается только у свойств, и про doctype там ни слова. Не упоминается оно и в статье «Representing XML». Неужели это просто не поддерживается?
Ответы (1 шт):
В 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">
или т.п.
Имейте ввиду, что расширения - это просто метаданные и инструменты (генераторы кода, валидаторы и др.) не обрабатывают неизвестные им расширения. Поэтому если нужно как-то обрабатывать это расширение, то его обработку придется реализовать самостоятельно.