Кто-нибудь знает, как создать JSON schema из существующей схемы XML (XSD-файл)? Есть ли инструменты для этого?Создать схему Json из XML-схемы (XSD)
ответ
Спустя год после того, как этот вопрос изначально был задан, JSON Schema остается документом IETF. На момент написания этой статьи (18 октября 2011 г.) рабочая группа пытается получить согласие по проекту 4 спецификации. Хотя существует несколько спекулятивных реализаций валидации (см. http://json-schema.org/), большинство поставщиков инструментов не вложили много усилий в инструменты, реализующие разработку, редактирование или преобразование JSON Schema.
Последние документы проекта IETF истек в августе 2013 года, и, похоже, никто больше не предпринимает этих усилий. –
Я даю, что это старо, но даже в историческом контексте это не отвечает на заданный вопрос. – vossad01
Правда, но после превращения json в xml с помощью xmlspy вы можете использовать приложение trang (http://www.thaiopensource.com/relaxng/trang.html) для создания xsd из xml-файла (ов).
, но это происходит не в том направлении – vipw
JSON Schema не является эквивалентом функций с XML-схемой. Есть функции в одном, но не в другом.
В целом вы можете создать сопоставление от XML к JSON и обратно, но это не относится к схеме XML и схеме JSON.
При этом, если вы сопоставили XML-файл с JSON, вполне возможно создать JSON-схему, которая проверяет JSON практически так же, как XSD проверяет XML. Но это не прямое отображение. И невозможно гарантировать, что он будет проверять JSON точно так же, как XSD проверяет XML.
По этой причине, если только две спецификации не будут совместимы с 100% совместимостью, перенос системы проверки с XML/XSD на JSON/JSON Schema потребует вмешательства человека.
Я не понимаю этого. Можете ли вы привести пример? – Fenil
Допустим, у вас есть что-то вроде <человек имя = «Fred»><собаки имени = «Rex»> Вы можете определить отображение представлять объект в Json, например: { «типа» : «человек», имя: «Фред», домашние животные: [{type: 'dog', name: 'Rex'}]} Но нет никакой гарантии, что вы можете построить сопоставление XSD с Json Schema, которое соответствует тот же набор документов –
Отказ от ответственности: Я являюсь автором Jsonix, мощный открытым исходным кодом XML < -> JSON JavaScript библиотека отображение.
Сегодня я выпустил новую версию Jsonix Schema Compiler с новой функцией JSON Schema generation.
Возьмем, например, схему Purchase Order. Вот фрагмент:
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
Вы можете собрать эту схему с помощью прилагаемого инструмента командной строки:
java -jar jsonix-schema-compiler-full.jar
-generateJsonSchema
-p PO
schemas/purchaseorder.xsd
компилятор генерирует Jsonix mappings а также matching JSON Schema.
Вот что результат выглядит (отредактированный для краткости):
{
"id":"PurchaseOrder.jsonschema#",
"definitions":{
"PurchaseOrderType":{
"type":"object",
"title":"PurchaseOrderType",
"properties":{
"shipTo":{
"title":"shipTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
},
"billTo":{
"title":"billTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
}, ...
}
},
"USAddress":{ ... }, ...
},
"anyOf":[
{
"type":"object",
"properties":{
"name":{
"$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/QName"
},
"value":{
"$ref":"#/definitions/PurchaseOrderType"
}
},
"elementName":{
"localPart":"purchaseOrder",
"namespaceURI":""
}
}
]
}
Теперь это JSON Schema является производным от исходного XML-схемы. Это не совсем 1: 1 трансформация, но очень близкая.
Сгенерированная схема JSON соответствует образующим Jsonix-сопоставлениям. Поэтому, если вы используете Jsonix для XML < -> JSON conversion, вы должны иметь возможность проверить JSON с помощью сгенерированной схемы JSON. Он также содержит все необходимые метаданные из исходной XML-схемы (например, имя элемента, атрибута и типа).
Отказ от ответственности: На данный момент это новая и экспериментальная функция.Известны известные limitations and missing functionality. Но я ожидаю, что это проявится и созреет очень быстро.
Ссылки:
- Demo Purchase Order Project for NPM - просто проверить и
npm install
- Documentation
- Current release
- Jsonix Schema Compiler on npmjs.com
Отказ от ответственности: Я автор jgeXml.
jgexml Утилита xsd2json
имеет Node.js, которая выполняет преобразование между XML-схемой (XSD) и файлом схемы JSON.
Как и в других вариантах, это не преобразование 1: 1, и вам может потребоваться вручную отредактировать вывод для улучшения проверки схемы JSON, но он был использован для представления сложной схемы XML внутри OpenAPI (swagger).
Образец purchaseorder.xsd приведенной в другом ответе отображается как:
"PurchaseOrderType": {
"type": "object",
"properties": {
"shipTo": {
"$ref": "#/definitions/USAddress"
},
"billTo": {
"$ref": "#/definitions/USAddress"
},
"comment": {
"$ref": "#/definitions/comment"
},
"items": {
"$ref": "#/definitions/Items"
},
"orderDate": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}.*$"
}
},
Скопируйте XML-схемы здесь & получить код JSON схемы к online tools, которые доступны для создания JSON-схему из схемы XML ,
- 1. Как создать схему XSD из класса?
- 2. Создать схему xsd из источника java
- 3. Как включить XML-схему (.xsd) в схему JSON?
- 4. Как создать схему xsd для этого xml?
- 5. Как создать схему XSD для дерева узлов
- 6. Нужно создать схему XSD для следующего xml?
- 7. Есть ли способ создать схему Microsoft Bond из схемы XSD?
- 8. Невозможно создать схему xsd - из-за имени переменной элемента
- 9. Создать jaxb Xsd-схему для файлов классов из jar
- 10. Проверить схему xsd
- 11. Подтвердить схему XSD?
- 12. Создать схему JSON на основе объекта json
- 13. Как создать json-схему из строки объекта json C#
- 14. Преобразование XSD в схему RDF
- 15. Сгенерировать схему JSON из данных JSON Programmically
- 16. Создать DataContract из XSD
- 17. python: рассмотрите схему XSD xml
- 18. Проверить SOAP на схему XSD?
- 19. Предоставить схему xsd в банке
- 20. Как импортировать схему (XSD), которая находится в файле jar, в другую схему (XSD)
- 21. Есть ли способ конвертировать схему JSON в XSD?
- 22. Как создать схему xsd для этого конверта xap?
- 23. Невозможно создать схему из Hibernate
- 24. Как создать json-схему из mongodb в java?
- 25. Попытка конвертировать схему xsd в класс
- 26. Возможно ли создать схему XSD для схемы XSD или установить ограничения на определения элементов? Как?
- 27. Программным создания классов Java из строки, представляющей схему XSD
- 28. Как установить схему Location в xsd?
- 29. проблема XSD - пытается генерировать XSD из XML
- 30. Создать структуру Golang из XSD
Я думаю, что реальный вопрос: «Можно ли сделать сопоставление между схемой JSON и XML-схемой?» не вне темы. Возможно, этот вопрос можно было бы переформулировать. –
В 2013 году Фалько Ногац сделал диплом бакалавра, в результате чего [xsd2json] (https://github.com/fnogatz/xsd2json). – supervacuo