从xsd模式创建Jsonix(2.x)映射文件时,它会捕获枚举和所有可接受的值,例如
{
type: 'enumInfo',
localName: 'TrackAdvanceNotificationStatusType',
baseTypeInfo: 'String',
values: ['BACK_ON_TRACK', 'FAIL']
}
有什么方法可以方便地从我的javascript代码中利用这些枚举值,还是仅供Jsonix内部使用?
最佳答案
免责声明:我是Jsonix的作者。
是的你可以:
在Jsonix上下文中,执行context.getTypeInfoByTypeNameKey('{urn:ns}TrackAdvanceNotificationStatusType')
以通过XML Schema类型名称查找类型。在下一版本中,您将有一个更方便的context.getTypeInfoByTypeName(...)
,它接受限定名称或字符串。
您将获得类型信息的实例。如果是枚举,它将是Jsonix.Model.EnumLeafInfo
的实例。typeInfo.entries
是字符串值/未编组值的键/值哈希图。
但这是一个警告:我尚未引入公共/私有API的概念。因此,此API在将来的版本中更改的可能性极小。这是不太可能的,但是可以警告。
最好使用Jsonix准备的类型信息,因为它将具有枚举的字符串值以及已解析的值。对于基于字符串的枚举无关紧要,但是如果您有其他非字符串简单类型,则可能会对“真实”值感兴趣。
关于javascript - Jsonix枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29521780/