首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsonix:元素[]在此上下文中不知道,无法确定其类型

jsonix:元素[]在此上下文中不知道,无法确定其类型
EN

Stack Overflow用户
提问于 2016-07-11 10:58:05
回答 1查看 556关注 0票数 0

按照关于使用jsonix模式编译器的说明,我成功地获得了一个xsd文件的映射对象;其中非常概括的内容如下:

代码语言:javascript
复制
var IdentPerson_Module_Factory = function () {
  var IdentPerson = {
    name: 'IdentPerson',
    defaultElementNamespaceURI: 'http:\/\/www.some.domain.de\/mynamespace',
    typeInfos: [{
      ....
      ....
     }],
    elementInfos: [{
        elementName: 'Person',
        typeInfo: '.Person'
     }]
  };
  return {
    IdentPerson: IdentPerson
  };
};

现在,我想通过使用jsonix和上面的json映射对象生成一个xml-字符串:

代码语言:javascript
复制
var context = new Jsonix.Context([IdentPerson]);
var marshaller = context.createMarshaller();
var xmldoc = marshaller.marshalString(myJsonString);

myJsonString的第一行如下:

代码语言:javascript
复制
{ Person:
  { aliasName:
   { titel: '',
     namenssuffix: '',
     familyname: [Object],
 .....
 .....
}

以错误结束:

代码语言:javascript
复制
Message:  Element [Person] is not known in this context, could not determine its type.
Stack: Error: Element [Person] is not known in this context, could not determine its type.
at Object.Jsonix.Binding.Marshalls.Element.Jsonix.Class.marshalElement (/home/datarocket/datarocket.hub/src/node_modules/jsonix/jsonix.js:1881:10)

我想是因为myJsonString中缺少命名空间吧?如果是的话,我怎样才能解决它呢?预先感谢;

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 06:13:10

映射指定名称空间,但JSON对象没有指定名称空间。

尝试:

代码语言:javascript
复制
var context = new Jsonix.Context(mappings, {
    namespacePrefixes: {
        "http://www.some.domain.de/mynamespace": "tns"
    }
});

{ 'tns:Person': ... }

或者:

代码语言:javascript
复制
var context = new Jsonix.Context(mappings, {
    namespacePrefixes: {
        "http://www.some.domain.de/mynamespace": ""
    }
});

{ Person: ... }

请参阅简化映射样式上的文档,它对这个案例有一个提示。

免责声明:我是Jsonix的作者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38305195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档