Стандартный способ публикации XML-схем

Скажем, у меня есть схема xml, определяющая пространство имен: http://foo.com/mySchema. Есть ли стандартный способ публикации схемы, чтобы экземпляры схемы XML должны были определять только пространство имен, а не xsi:schemaLocation?

Например, если вы посмотрите на карту сайта imdb xml: http://www.imdb.com/sitemap_US_index.xml.gz

XML определяет пространство имен: http://www.sitemaps.org/schemas/sitemap/0.9 без определения schemaLocation.

Если вы посетите этот URI, у него будет 2 xsd: «siteindex.xsd» и «sitemap.xsd».

Мои вопросы:

  1. Это часть стандарта xml? Будет ли каждый синтаксический анализатор xml «знать», как найти схему из URI пространства имен?
  2. Есть ли автономный инструмент «xsd repo», который помогает мне публиковать xsd-файлы в моем домене без необходимости самостоятельно настраивать веб-сервер. Я представляю что-то с каким-то RESTful API, которое позволяет мне PUT новые схемы, DELETE существующие схемы и, конечно, GET новые схемы, используя их пространство имен URI

person eladidan    schedule 18.01.2015    source источник


Ответы (1)


Стандарт XML не предоставляет вам как издателю XSD однозначного способа установить привязку между targetNamespace XSD и расположением XSD.

Не существует общего инструмента "xsd repo", который бы управлял каким-либо известным репозиторием, который мог бы помочь вам в этом отношении. Конечно, в наши дни существует множество вариантов использования облачных хранилищ (Google Drive, DropBox, Amazon Cloud Drive и т. Д.), Чтобы легко опубликовать любой файл и сделать его общедоступным через URL-адрес.

Вы сами решаете, где опубликовать свой XSD. Имейте в виду, что URL-адреса пространства имен не обязательно должны быть извлечены; наличие XSD не требуется. Также имейте в виду, что привязка между пространством имен и физическим расположением XSD является обязанностью пользователя, а не издателя XSD. Вы упоминаете xsi:schemaLocation как один из механизмов, находящихся под контролем автора XML-документа, для определения местоположения XSD; другой - XML-каталог.

person kjhughes    schedule 18.01.2015