Skip to content

Commit b35ff3a

Browse files
committed
Issue #56.
1 parent 340563d commit b35ff3a

File tree

6 files changed

+91
-51
lines changed

6 files changed

+91
-51
lines changed

dist/Jsonix-all.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2529,10 +2529,10 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25292529
} else {
25302530
var result = {};
25312531
for ( var index = 0; index < attributeCount; index++) {
2532-
var attributeNameKey = input.getAttributeNameKey(index);
2533-
var attributeValue = input.getAttributeValue(index);
2534-
if (Jsonix.Util.Type.isString(attributeValue)) {
2535-
result[attributeNameKey] = attributeValue;
2532+
var value = input.getAttributeValue(index);
2533+
if (Jsonix.Util.Type.isString(value)) {
2534+
var propertyName = this.convertFromAttributeName(input.getAttributeName(index), context, input, scope);
2535+
result[propertyName] = value;
25362536
}
25372537
}
25382538
return result;
@@ -2543,15 +2543,21 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25432543
// Nothing to do
25442544
return;
25452545
}
2546-
for ( var attributeName in value) {
2547-
if (value.hasOwnProperty(attributeName)) {
2548-
var attributeValue = value[attributeName];
2549-
if (Jsonix.Util.Type.isString(attributeValue)) {
2550-
output.writeAttribute(Jsonix.XML.QName.fromString(attributeName), attributeValue);
2546+
for ( var propertyName in value) {
2547+
if (value.hasOwnProperty(propertyName)) {
2548+
var propertyValue = value[propertyName];
2549+
if (Jsonix.Util.Type.isString(propertyValue)) {
2550+
var attributeName = this.convertToAttributeName(propertyName, context, output, scope);
2551+
output.writeAttribute(attributeName, propertyValue);
25512552
}
25522553
}
25532554
}
2554-
2555+
},
2556+
convertFromAttributeName : function(attributeName, context, input, scope) {
2557+
return attributeName.key;
2558+
},
2559+
convertToAttributeName : function(propertyName, context, output, scope) {
2560+
return Jsonix.XML.QName.fromObjectOrString(propertyName, context);
25552561
},
25562562
doBuild : function(context, module) {
25572563
// Nothing to do
@@ -2570,6 +2576,12 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25702576
},
25712577
CLASS_NAME : 'Jsonix.Model.AnyAttributePropertyInfo'
25722578
});
2579+
Jsonix.Model.AnyAttributePropertyInfo.Simplified = Jsonix.Class(Jsonix.Model.AnyAttributePropertyInfo, {
2580+
convertFromAttributeName : function(attributeName, context, input, scope)
2581+
{
2582+
return attributeName.toCanonicalString(context);
2583+
}
2584+
});
25732585

25742586
Jsonix.Model.SingleTypePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25752587
{
@@ -3754,7 +3766,7 @@ Jsonix.Mapping.Style.Simplified = Jsonix.Class(Jsonix.Mapping.Style, {
37543766
elementInfo : Jsonix.Model.ElementInfo,
37553767
classInfo : Jsonix.Model.ClassInfo,
37563768
enumLeafInfo : Jsonix.Model.EnumLeafInfo,
3757-
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo,
3769+
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo.Simplified,
37583770
anyElementPropertyInfo : Jsonix.Model.AnyElementPropertyInfo.Simplified,
37593771
attributePropertyInfo : Jsonix.Model.AttributePropertyInfo,
37603772
elementMapPropertyInfo : Jsonix.Model.ElementMapPropertyInfo,

dist/Jsonix-min.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -971,21 +971,26 @@ e++){d[this.name].push(f[e])
971971
}}},CLASS_NAME:"Jsonix.Model.PropertyInfo"});
972972
Jsonix.Model.AnyAttributePropertyInfo=Jsonix.Class(Jsonix.Model.PropertyInfo,{initialize:function(b){Jsonix.Util.Ensure.ensureObject(b);
973973
Jsonix.Model.PropertyInfo.prototype.initialize.apply(this,[b])
974-
},unmarshal:function(m,p,k){var n=p.getAttributeCount();
974+
},unmarshal:function(m,p,l){var n=p.getAttributeCount();
975975
if(n===0){return null
976976
}else{var j={};
977977
for(var o=0;
978978
o<n;
979-
o++){var i=p.getAttributeNameKey(o);
980-
var l=p.getAttributeValue(o);
981-
if(Jsonix.Util.Type.isString(l)){j[i]=l
979+
o++){var k=p.getAttributeValue(o);
980+
if(Jsonix.Util.Type.isString(k)){var i=this.convertFromAttributeName(p.getAttributeName(o),m,p,l);
981+
j[i]=k
982982
}}return j
983-
}},marshal:function(i,l,h,j){if(!Jsonix.Util.Type.isObject(i)){return
984-
}for(var g in i){if(i.hasOwnProperty(g)){var k=i[g];
985-
if(Jsonix.Util.Type.isString(k)){h.writeAttribute(Jsonix.XML.QName.fromString(g),k)
986-
}}}},doBuild:function(c,d){},buildStructure:function(c,d){Jsonix.Util.Ensure.ensureObject(d);
983+
}},marshal:function(j,l,n,k){if(!Jsonix.Util.Type.isObject(j)){return
984+
}for(var h in j){if(j.hasOwnProperty(h)){var i=j[h];
985+
if(Jsonix.Util.Type.isString(i)){var m=this.convertToAttributeName(h,l,n,k);
986+
n.writeAttribute(m,i)
987+
}}}},convertFromAttributeName:function(e,h,f,g){return e.key
988+
},convertToAttributeName:function(e,h,f,g){return Jsonix.XML.QName.fromObjectOrString(e,h)
989+
},doBuild:function(c,d){},buildStructure:function(c,d){Jsonix.Util.Ensure.ensureObject(d);
987990
d.anyAttribute=this
988991
},CLASS_NAME:"Jsonix.Model.AnyAttributePropertyInfo"});
992+
Jsonix.Model.AnyAttributePropertyInfo.Simplified=Jsonix.Class(Jsonix.Model.AnyAttributePropertyInfo,{convertFromAttributeName:function(e,h,f,g){return e.toCanonicalString(h)
993+
}});
989994
Jsonix.Model.SingleTypePropertyInfo=Jsonix.Class(Jsonix.Model.PropertyInfo,{typeInfo:"String",initialize:function(d){Jsonix.Util.Ensure.ensureObject(d);
990995
Jsonix.Model.PropertyInfo.prototype.initialize.apply(this,[d]);
991996
var c=d.typeInfo||d.ti||"String";
@@ -1435,7 +1440,7 @@ Jsonix.Model.Module.prototype.typeInfoCreators={classInfo:Jsonix.Model.Module.pr
14351440
Jsonix.Mapping.Style.Standard=Jsonix.Class(Jsonix.Mapping.Style,{marshaller:Jsonix.Binding.Marshaller,unmarshaller:Jsonix.Binding.Unmarshaller,module:Jsonix.Model.Module,elementInfo:Jsonix.Model.ElementInfo,classInfo:Jsonix.Model.ClassInfo,enumLeafInfo:Jsonix.Model.EnumLeafInfo,anyAttributePropertyInfo:Jsonix.Model.AnyAttributePropertyInfo,anyElementPropertyInfo:Jsonix.Model.AnyElementPropertyInfo,attributePropertyInfo:Jsonix.Model.AttributePropertyInfo,elementMapPropertyInfo:Jsonix.Model.ElementMapPropertyInfo,elementPropertyInfo:Jsonix.Model.ElementPropertyInfo,elementsPropertyInfo:Jsonix.Model.ElementsPropertyInfo,elementRefPropertyInfo:Jsonix.Model.ElementRefPropertyInfo,elementRefsPropertyInfo:Jsonix.Model.ElementRefsPropertyInfo,valuePropertyInfo:Jsonix.Model.ValuePropertyInfo,initialize:function(){Jsonix.Mapping.Style.prototype.initialize.apply(this)
14361441
},CLASS_NAME:"Jsonix.Mapping.Style.Standard"});
14371442
Jsonix.Mapping.Style.STYLES.standard=new Jsonix.Mapping.Style.Standard();
1438-
Jsonix.Mapping.Style.Simplified=Jsonix.Class(Jsonix.Mapping.Style,{marshaller:Jsonix.Binding.Marshaller.Simplified,unmarshaller:Jsonix.Binding.Unmarshaller.Simplified,module:Jsonix.Model.Module,elementInfo:Jsonix.Model.ElementInfo,classInfo:Jsonix.Model.ClassInfo,enumLeafInfo:Jsonix.Model.EnumLeafInfo,anyAttributePropertyInfo:Jsonix.Model.AnyAttributePropertyInfo,anyElementPropertyInfo:Jsonix.Model.AnyElementPropertyInfo.Simplified,attributePropertyInfo:Jsonix.Model.AttributePropertyInfo,elementMapPropertyInfo:Jsonix.Model.ElementMapPropertyInfo,elementPropertyInfo:Jsonix.Model.ElementPropertyInfo,elementsPropertyInfo:Jsonix.Model.ElementsPropertyInfo,elementRefPropertyInfo:Jsonix.Model.ElementRefPropertyInfo.Simplified,elementRefsPropertyInfo:Jsonix.Model.ElementRefsPropertyInfo.Simplified,valuePropertyInfo:Jsonix.Model.ValuePropertyInfo,initialize:function(){Jsonix.Mapping.Style.prototype.initialize.apply(this)
1443+
Jsonix.Mapping.Style.Simplified=Jsonix.Class(Jsonix.Mapping.Style,{marshaller:Jsonix.Binding.Marshaller.Simplified,unmarshaller:Jsonix.Binding.Unmarshaller.Simplified,module:Jsonix.Model.Module,elementInfo:Jsonix.Model.ElementInfo,classInfo:Jsonix.Model.ClassInfo,enumLeafInfo:Jsonix.Model.EnumLeafInfo,anyAttributePropertyInfo:Jsonix.Model.AnyAttributePropertyInfo.Simplified,anyElementPropertyInfo:Jsonix.Model.AnyElementPropertyInfo.Simplified,attributePropertyInfo:Jsonix.Model.AttributePropertyInfo,elementMapPropertyInfo:Jsonix.Model.ElementMapPropertyInfo,elementPropertyInfo:Jsonix.Model.ElementPropertyInfo,elementsPropertyInfo:Jsonix.Model.ElementsPropertyInfo,elementRefPropertyInfo:Jsonix.Model.ElementRefPropertyInfo.Simplified,elementRefsPropertyInfo:Jsonix.Model.ElementRefsPropertyInfo.Simplified,valuePropertyInfo:Jsonix.Model.ValuePropertyInfo,initialize:function(){Jsonix.Mapping.Style.prototype.initialize.apply(this)
14391444
},CLASS_NAME:"Jsonix.Mapping.Style.Simplified"});
14401445
Jsonix.Mapping.Style.STYLES.simplified=new Jsonix.Mapping.Style.Simplified();
14411446
Jsonix.Schema.XSD={};

nodejs/scripts/jsonix.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2529,10 +2529,10 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25292529
} else {
25302530
var result = {};
25312531
for ( var index = 0; index < attributeCount; index++) {
2532-
var attributeNameKey = input.getAttributeNameKey(index);
2533-
var attributeValue = input.getAttributeValue(index);
2534-
if (Jsonix.Util.Type.isString(attributeValue)) {
2535-
result[attributeNameKey] = attributeValue;
2532+
var value = input.getAttributeValue(index);
2533+
if (Jsonix.Util.Type.isString(value)) {
2534+
var propertyName = this.convertFromAttributeName(input.getAttributeName(index), context, input, scope);
2535+
result[propertyName] = value;
25362536
}
25372537
}
25382538
return result;
@@ -2543,15 +2543,21 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25432543
// Nothing to do
25442544
return;
25452545
}
2546-
for ( var attributeName in value) {
2547-
if (value.hasOwnProperty(attributeName)) {
2548-
var attributeValue = value[attributeName];
2549-
if (Jsonix.Util.Type.isString(attributeValue)) {
2550-
output.writeAttribute(Jsonix.XML.QName.fromString(attributeName), attributeValue);
2546+
for ( var propertyName in value) {
2547+
if (value.hasOwnProperty(propertyName)) {
2548+
var propertyValue = value[propertyName];
2549+
if (Jsonix.Util.Type.isString(propertyValue)) {
2550+
var attributeName = this.convertToAttributeName(propertyName, context, output, scope);
2551+
output.writeAttribute(attributeName, propertyValue);
25512552
}
25522553
}
25532554
}
2554-
2555+
},
2556+
convertFromAttributeName : function(attributeName, context, input, scope) {
2557+
return attributeName.key;
2558+
},
2559+
convertToAttributeName : function(propertyName, context, output, scope) {
2560+
return Jsonix.XML.QName.fromObjectOrString(propertyName, context);
25552561
},
25562562
doBuild : function(context, module) {
25572563
// Nothing to do
@@ -2570,6 +2576,12 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25702576
},
25712577
CLASS_NAME : 'Jsonix.Model.AnyAttributePropertyInfo'
25722578
});
2579+
Jsonix.Model.AnyAttributePropertyInfo.Simplified = Jsonix.Class(Jsonix.Model.AnyAttributePropertyInfo, {
2580+
convertFromAttributeName : function(attributeName, context, input, scope)
2581+
{
2582+
return attributeName.toCanonicalString(context);
2583+
}
2584+
});
25732585

25742586
Jsonix.Model.SingleTypePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
25752587
{
@@ -3754,7 +3766,7 @@ Jsonix.Mapping.Style.Simplified = Jsonix.Class(Jsonix.Mapping.Style, {
37543766
elementInfo : Jsonix.Model.ElementInfo,
37553767
classInfo : Jsonix.Model.ClassInfo,
37563768
enumLeafInfo : Jsonix.Model.EnumLeafInfo,
3757-
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo,
3769+
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo.Simplified,
37583770
anyElementPropertyInfo : Jsonix.Model.AnyElementPropertyInfo.Simplified,
37593771
attributePropertyInfo : Jsonix.Model.AttributePropertyInfo,
37603772
elementMapPropertyInfo : Jsonix.Model.ElementMapPropertyInfo,

nodejs/scripts/src/main/npm/package.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"javascript objects", "dom", "util", "utility", "jaxb", "jsonix" ],
88
"homepage" : "http://github.com/highsource/jsonix",
99
"bugs" : {
10-
"url" : "http://github.com/highsource/jsonix/issues",
11-
"email" : "[email protected]"
10+
"url" : "http://github.com/highsource/jsonix/issues"
1211
},
1312
"repository": {
1413
"type": "git",
@@ -20,7 +19,7 @@
2019
} ],
2120
"author" : {
2221
"name" : "Alexey Valikov",
23-
"url" : "http://confluence.highsource.org"
22+
"url" : "http://github.com/highsource"
2423
},
2524
"contributors" : [ {
2625
"name" : "Conrad Pankoff",
@@ -35,13 +34,13 @@
3534
"test" : "nodeunit tests/tests.js"
3635
},
3736
"dependencies" : {
38-
"amdefine" : ">=0.1.0",
39-
"xmldom" : "~0.1.19",
40-
"xmlhttprequest" : "~1.6.0"
37+
"amdefine" : "0.x.x",
38+
"xmldom" : "0.x.x",
39+
"xmlhttprequest" : "1.x.x"
4140
},
4241
"devDependencies" : {
43-
"nodeunit" : "~0.8.6",
44-
"node-static" : "~0.7.3"
42+
"nodeunit" : "0.x.x",
43+
"node-static" : "0.x.x"
4544
},
4645
"engines" : [ "node >= 0.8.0" ]
47-
}
46+
}

scripts/src/main/javascript/org/hisrc/jsonix/Jsonix/Mapping/Style/Simplified.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Jsonix.Mapping.Style.Simplified = Jsonix.Class(Jsonix.Mapping.Style, {
55
elementInfo : Jsonix.Model.ElementInfo,
66
classInfo : Jsonix.Model.ClassInfo,
77
enumLeafInfo : Jsonix.Model.EnumLeafInfo,
8-
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo,
8+
anyAttributePropertyInfo : Jsonix.Model.AnyAttributePropertyInfo.Simplified,
99
anyElementPropertyInfo : Jsonix.Model.AnyElementPropertyInfo.Simplified,
1010
attributePropertyInfo : Jsonix.Model.AttributePropertyInfo,
1111
elementMapPropertyInfo : Jsonix.Model.ElementMapPropertyInfo,

scripts/src/main/javascript/org/hisrc/jsonix/Jsonix/Model/AnyAttributePropertyInfo.js

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
1010
} else {
1111
var result = {};
1212
for ( var index = 0; index < attributeCount; index++) {
13-
var attributeNameKey = input.getAttributeNameKey(index);
14-
var attributeValue = input.getAttributeValue(index);
15-
if (Jsonix.Util.Type.isString(attributeValue)) {
16-
result[attributeNameKey] = attributeValue;
13+
var value = input.getAttributeValue(index);
14+
if (Jsonix.Util.Type.isString(value)) {
15+
var propertyName = this.convertFromAttributeName(input.getAttributeName(index), context, input, scope);
16+
result[propertyName] = value;
1717
}
1818
}
1919
return result;
@@ -24,15 +24,21 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
2424
// Nothing to do
2525
return;
2626
}
27-
for ( var attributeName in value) {
28-
if (value.hasOwnProperty(attributeName)) {
29-
var attributeValue = value[attributeName];
30-
if (Jsonix.Util.Type.isString(attributeValue)) {
31-
output.writeAttribute(Jsonix.XML.QName.fromString(attributeName), attributeValue);
27+
for ( var propertyName in value) {
28+
if (value.hasOwnProperty(propertyName)) {
29+
var propertyValue = value[propertyName];
30+
if (Jsonix.Util.Type.isString(propertyValue)) {
31+
var attributeName = this.convertToAttributeName(propertyName, context, output, scope);
32+
output.writeAttribute(attributeName, propertyValue);
3233
}
3334
}
3435
}
35-
36+
},
37+
convertFromAttributeName : function(attributeName, context, input, scope) {
38+
return attributeName.key;
39+
},
40+
convertToAttributeName : function(propertyName, context, output, scope) {
41+
return Jsonix.XML.QName.fromObjectOrString(propertyName, context);
3642
},
3743
doBuild : function(context, module) {
3844
// Nothing to do
@@ -51,3 +57,9 @@ Jsonix.Model.AnyAttributePropertyInfo = Jsonix.Class(Jsonix.Model.PropertyInfo,
5157
},
5258
CLASS_NAME : 'Jsonix.Model.AnyAttributePropertyInfo'
5359
});
60+
Jsonix.Model.AnyAttributePropertyInfo.Simplified = Jsonix.Class(Jsonix.Model.AnyAttributePropertyInfo, {
61+
convertFromAttributeName : function(attributeName, context, input, scope)
62+
{
63+
return attributeName.toCanonicalString(context);
64+
}
65+
});

0 commit comments

Comments
 (0)