Схема JSON против схемы XML

Конечно, XML и JSON разные. Но если вы видите эти форматы на уровне чистой структуры, они могут быть взаимозаменяемыми представлениями одних и тех же данных. Оба могут быть описаны с помощью определений схемы: схема JSON и схема XML.

Можете ли вы описать те же структуры данных с помощью схемы JSON, что и с помощью схемы XML, и наоборот? Можно ли написать конвертеры JSSD/XSD, которые не теряют информацию при конвертации?


person Sebastian Barth    schedule 07.10.2014    source источник
comment
Я передал упомянутый проект на github сейчас: github.com/redaktor/owl2jsonschema.js - для теперь преобразование XML-схемы - это всего лишь небольшая часть, но сейчас я работаю над ограничениями xsd. Этот файл может представлять особый интерес: github.com/ redaktor/owl2jsonschema.js/blob/master/lib/ — содержит предопределенные типы данных xsd.   -  person sebilasse    schedule 04.02.2015
comment
Я написал инструмент для преобразования схем XML в схемы JSON, пожалуйста, проверьте этот ответ: stackoverflow.com/a/30006975/303810   -  person lexicore    schedule 26.08.2015


Ответы (2)


Я почти уверен, что ответ да, через некоторое время.

Используя текущий проект схемы JSON 04 (гиперсхема), в настоящее время вы можете сопоставить большую часть схемы XML со схемой JSON. Есть несколько уродливых обходных путей, которые устареют в черновике 05: я почти уверен, что предложения propertyLinks «войдут» в следующий черновик, см. эту страницу: https://github.com/json-schema/json-schema/wiki/v5-Proposals

Есть также существующие проекты, например. owl2vowl и webowl использует преобразователь схемы в JSON. Это Ява. Я не уверен, насколько сильна поддержка XML Schema. Тем не мение:

Я начал писать «игровую площадку» схемы JSON в javascript (с дополнительной частью «node.js»). В javascript есть решение для schema.org. И я спросил себя, как импортировать OWL/RDFS/XML-схему аналогичным образом. Сейчас я готов на 70% с частью OWL/RDFS.

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

person sebilasse    schedule 12.01.2015
comment
Есть ли у вас какое-либо решение для преобразования схемы Json в XSD? Я борюсь в этом. - person feikiss; 24.04.2015

Я почти уверен, что нет.

Во-первых, довольно сложно определить полностью без потерь сопоставление между JSON и XML на уровне экземпляра даже до того, как вы начнете думать о схемах. Так что понятие «одинаковые структуры данных» нуждается в уточнении.

Большая часть схемы XML связана с грамматиками и моделями содержимого, например, говорится, что раздел состоит из необязательного заголовка, за которым следует ноль или более абзацев, каждый из которых может быть элементом p, ul или table. Я не думаю, что в JSON Schema есть что-то отдаленно похожее. Массивы в схеме JSON кажутся однородными и однородными.

person Michael Kay    schedule 07.10.2014
comment
Я не уверен в правильности вашего предположения. XML — это не что иное, как древовидная структура, как и JSON. Единственные вещи в XML, которых нет в JSON, — это пространства имен и спецификация атрибутов. Оба могут быть сопоставлены с JSON (например, с использованием квалификаторов для атрибутов, таких как $attribute, а также строк вместо нотации пространства имен, например "p-parameter": CONTENT вместо <p:parameter> CONTENT </p:parameter>). Говоря об описании схемы, это может быть другое дело, потому что здесь мы видим не структуру, а семантику. - person Sebastian Barth; 07.10.2014
comment
Я нахожу ироничным тот факт, что JavaScript порождает варианты Type-Safe (например, TypeScript), и теперь, наконец, появляются схемы JSON для решения проблемы сериализации/десериализации, когда «грамматика», целостность домена и безопасность типов имеют значение. Мы все согласны с тем, что XML-документ, который не был проверен на соответствие строгой схеме, легко заменить компактным (не толстым) документом JSON. Схемы утверждают, является ли 1 числом (плавающим или целым) или строкой; а в некоторых случаях это важно знать. - person subsci; 07.07.2015