1

如何使用 jsonix 将自定义 xsi 命名空间添加到 XML 文件?我们希望实现以下目标:

<network xsi:schemaLocation="http://example.com/XMLSchema ../../../Example/schema/Example.xsd">

我们能得到的最好的东西是使用命名空间前缀:

<network xmlns:schemaLocation="http://example.com/XMLSchema ../../../Example/schema/Example.xsd">

谢谢!

4

1 回答 1

1

免责声明:我是Jsonix的作者(嗯,你知道)。

目前,您可以使用属性属性任何属性属性来建模xsi:schemaLocation,例如:

{
    type: 'attribute',
    name: 'schemaLocation',
    attributeName : { localPart: 'schemaLocation', namespaceURI : 'http://www.w3.org/2001/XMLSchema-instance' }
    typeInfo: 'String'
}

基本上,就像任何其他正常属性一样。

不过,我认为xsi:schemaLocation应该在Jsonix.Context水平上得到支持。目前不支持,但我认为它应该是这样的:

var context = new Jsonix.Context(mappings, {
    schemaLocations: {
        "http://example.com/XMLSchema": "../../../Example/schema/Example.xsd"
    }
});

类似于namespacePrefixes,但将命名空间 URI 映射到模式位置。

如果您想拥有此功能,请提出问题。

于 2015-10-16T20:06:54.720 回答