问题标签 [jsonix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
61 浏览

bluebird - 为什么 Promisification 对于某些方法但不是全部失败?

jsonix库不遵循first argument must be an error约定,因此我决定使用 bluebird 并像这样承诺它:

但这会无限期地挂起!然而,如果我只是将其保存xmlResponse到一个文件中,然后用不同的方法处理它:unmarshalFile......承诺似乎工作得很好!

所以我的问题是,为什么一种方法的承诺会失败,而另一种方法则不会?

0 投票
1 回答
6170 浏览

json - 将 xsd 转换为 json 模式(Jsonix、XMLSpy)

我正在尝试将 xml 架构转换为 json 架构。

出于某种原因,我得到的 json 模式很奇怪,而且不正确。我使用 Jsonix 和 Altova XMLSpy 2017

例如,这是给定的 xsd

这是我从 Jsonix 获得的 json 模式:

为什么我在那里得到了所有这些功能?我做了什么破事?

使用 Altova XMLSpy 的结果完全不同:

谢谢

0 投票
1 回答
389 浏览

json - JSONIX 如何拥有强大的 XML 验证

我只是尝试运行 JSONIX 示例采购订单。我这样做就像在 Highscore 网站上提到的那样。让我感到奇怪的是,这个示例基于 XSD 的使用,传入 XML 的验证用于具有子节点的元素,但不适用于简单的标签。

这将显示一个错误:

这不是:

那么,是否可以打开强验证,因为<quantity_will_cause_error>它不是有效元素。

亲切的问候

马库斯

0 投票
1 回答
107 浏览

json - JSONIX / AJV:如何在 JSONIX 中使用 Xinclude 进行验证?

我尝试在 nodejs 上使用 JSONIX 并使用 AJV 来验证传入的 XML。

通常我使用这样的东西:

新闻.xml:

但现在我会用这个

作者.xml:

新闻.xml:

是否可以使用 JSONIX 和 AJV 来验证这样的结构?我什至有一个 XSD 和生成的 JSON-Schema。

亲切的问候

马库斯

0 投票
1 回答
126 浏览

java - 如何在 jsonix 中包含生成的包之外的类型?

我已经从 jaxb2 生成中排除了一些 xml 类型,因为 Java 中已经存在相应的类。一代人完美地工作,班级建立了。

当我尝试通过本教程包含类型时,jsonix 仅在包中搜索具有生成的 jaxb2 类的类。所以它看起来像generate.entity.Position而不是entity.Position类。

0 投票
1 回答
211 浏览

namespaces - jsonix - 如何创建一个有前缀但没有命名空间的元素?

我需要发送包含以下元素的 XML:

我很难使用 Jsonix 形成“c:condition”和“a:condition”Qname。两个 Qname 都包含前缀但没有命名空间。

我目前的代码是:

这将导致以下结果:

<c:condition xmlns:c="c">

任何人都知道如何使用 Jsonix 生成所需的 Qname -“c:condition”,它没有命名空间URI?

0 投票
2 回答
49 浏览

collections - Jsonix - 是否可以创建一个集合并在属性声明中声明 2 个或更多元素?

预期的 XML 格式如下:

<a:condition>两者<operator>都需要在 acollection中,因为两者都可以具有 XML 请求所需的数量。

编辑 Type:elements代码如下:

EDITED看起来elements可以满足我的要求。解组也有效。现在我只需要弄清楚如何从 Json 格式编组它。任何建议将不胜感激

0 投票
1 回答
59 浏览

jsonix - 在使用 JSONIX 编组/解组期间删除空属性

我注意到在从 JSON 到 XML 的转换中,如果我的 JSON 对象之一为空,则 XML 中不存在该对象,例如

JSON

{ "name": { "namespaceURI": "", "localPart": "myApp", "prefix": "", "key": "myApp", "string": "myApp" }, "value": { "TYPE_NAME": "generated.MyApp", "inputData": [{ "TYPE_NAME": "generated.MyApp.InputData", "dataType": "text", "mandatory": false, "length": 25, "valid": true, "value":null }] } }

转换为 XML 输出 (marshalString)

var context2 = new j.Context([generated2]); var marshaller2 = context2.createMarshaller(); var objectAsXMLString2 = marshaller2.marshalString(template2);

<myApp> <inputData> <dataType>text</dataType> <mandatory>false</mandatory> <length>25</length> <valid>true</valid> </inputData> </myApp>

然后再次转换回 JSON (unmarshalString)

var unmarshaller2 = context2.createUnmarshaller(); var resultJSON2 = unmarshaller2.unmarshalString(objectAsXMLString2 );

{ "name": { "namespaceURI": "", "localPart": "myApp", "prefix": "", "key": "myApp", "string": "myApp" }, "value": { "TYPE_NAME": "generated.MyApp", "inputData": [{ "TYPE_NAME": "generated.MyApp.InputData", "dataType": "text", "mandatory": false, "length": 25, "valid": true }] } }

如您所见,信息丢失了。当发生完整的转换循环时,JSON -> XML -> 回到 JSON,一些属性没有保留。任何为空的东西都会被丢弃——在这种情况下,它是属性“值”。对于期望对象上存在某些属性的下游应用程序来说,这是一个问题。

我用于生成 jsonix 映射对象的 XML 模式如下所示

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="myApp"> <xs:complexType> <xs:sequence> <xs:element name="inputData" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence > <xs:element type="xs:string" name="dataType"/> <xs:element type="xs:boolean" name="mandatory"/> <xs:element type="xs:short" name="length"/> <xs:element type="xs:string" name="elementId"/> <xs:element type="xs:string" name="formId"/> <xs:element type="xs:anySimpleType" name="value" /> <xs:element type="xs:boolean" name="valid"/> <xs:element type="xs:short" name="precision"/> <xs:element type="xs:short" name="scale"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

使用 jsonix-schema-compiler 生成的映射是

var generated_Module_Factory = function () { var generated = { name: 'generated', typeInfos: [{ localName: 'MyApp', typeName: null, propertyInfos: [{ name: 'inputData', minOccurs: 0, collection: true, elementName: { localPart: 'inputData' }, typeInfo: '.MyApp.InputData' }] }, { localName: 'MyApp.InputData', typeName: null, propertyInfos: [{ name: 'dataType', required: true, elementName: { localPart: 'dataType' } }, { name: 'mandatory', required: true, elementName: { localPart: 'mandatory' }, typeInfo: 'Boolean' }, { name: 'length', required: true, elementName: { localPart: 'length' }, typeInfo: 'Short' }, { name: 'elementId', required: true, elementName: { localPart: 'elementId' } }, { name: 'formId', required: true, elementName: { localPart: 'formId' } }, { name: 'value', required: true, elementName: { localPart: 'value' }, typeInfo: 'AnySimpleType' }, { name: 'valid', required: true, elementName: { localPart: 'valid' }, typeInfo: 'Boolean' }, { name: 'precision', required: true, elementName: { localPart: 'precision' }, typeInfo: 'Short' }, { name: 'scale', required: true, elementName: { localPart: 'scale' }, typeInfo: 'Short' }] }], elementInfos: [{ typeInfo: '.MyApp', elementName: { localPart: 'myApp' } }] }; return { generated: generated }; }; if (typeof define === 'function' && define.amd) { define([], generated_Module_Factory); } else { var generated_Module = generated_Module_Factory(); if (typeof module !== 'undefined' && module.exports) { module.exports.generated = generated_Module.generated; } else { var generated = generated_Module.generated; } }

有没有办法在转换过程中保留所有属性,即使它们为空?

0 投票
0 回答
272 浏览

node.js - Jsonix - 解组文件元素时出错

我正在尝试将 xml 文件转换为具有 xsd 架构的 JSON 对象。我正在使用 nodeJS 来做到这一点。我已经创建了映射对象,但我不断收到此错误:“(..)无法解组,因为在此上下文中未知,并且该属性不允许 DOM 内容。”

这是我的代码:

这是 xsd 模式的一部分(只是标头定义):

关于我做错了什么的任何想法?

0 投票
1 回答
76 浏览

node.js - Jsonix 仅获取映射,但不在导出的 JS 文件中,但可能在 json 或变量中

我已经浏览了 jsonix 的文档,可在

https://github.com/highsource/jsonix/wiki

有什么方法可以直接将映射生成为 json 或在变量中生成,而不是作为我们需要在应用程序中导出和导入/需要的文件