Jsonix枚举

时间:2015-04-08 17:48:52

标签: javascript xml xsd jsonix

从xsd架构创建Jsonix(2.x)映射文件时,它会捕获枚举和所有可接受的值,例如

 {
    type: 'enumInfo',
    localName: 'TrackAdvanceNotificationStatusType',
    baseTypeInfo: 'String',
    values: ['BACK_ON_TRACK', 'FAIL']
  }

有什么方法可以方便地从我的javascript代码中利用这些枚举,还是仅仅用于Jsonix内部使用?

1 个答案:

答案 0 :(得分:0)

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

是的,你可以:

  • 从Jsonix上下文执行context.getTypeInfoByTypeNameKey('{urn:ns}TrackAdvanceNotificationStatusType')以通过XML Schema类型名称查找类型。在下一个版本中,您将拥有一个更方便的context.getTypeInfoByTypeName(...),它接受​​限定名称或字符串。
  • 您将获得类型信息的实例。如果是枚举,则这将是Jsonix.Model.EnumLeafInfo
  • 的实例
  • typeInfo.entries是字符串值/ unmarshalled值的键/值hashmap。

但是这里有一个警告:我还没有介绍公共/私有API的概念。因此,此API在未来版本中将发生变化的可能性极小。这是不太可能的,但警告是公平的。

最好使用Jsonix编写的类型信息,因为它将具有枚举的字符串值以及解析的值。对于基于字符串的枚举,这是无关紧要的,但如果您有其他非字符串简单类型,您可能会感兴趣"真实"值。