Skip to content

Commit 9e23d75

Browse files
committed
Fixes #183.
1 parent acbae77 commit 9e23d75

File tree

1 file changed

+138
-137
lines changed
  • scripts/src/main/javascript/org/hisrc/jsonix/Jsonix/XML

1 file changed

+138
-137
lines changed
Lines changed: 138 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,138 +1,139 @@
1-
Jsonix.XML.QName = Jsonix.Class({
2-
key : null,
3-
namespaceURI : null,
4-
localPart : null,
5-
prefix : null,
6-
string : null,
7-
initialize : function(one, two, three) {
8-
var namespaceURI;
9-
var localPart;
10-
var prefix;
11-
var key;
12-
var string;
13-
14-
if (!Jsonix.Util.Type.exists(two)) {
15-
namespaceURI = '';
16-
localPart = one;
17-
prefix = '';
18-
} else if (!Jsonix.Util.Type.exists(three)) {
19-
namespaceURI = Jsonix.Util.Type.exists(one) ? one : '';
20-
localPart = two;
21-
var colonPosition = two.indexOf(':');
22-
if (colonPosition > 0 && colonPosition < two.length) {
23-
prefix = two.substring(0, colonPosition);
24-
localPart = two.substring(colonPosition + 1);
25-
} else {
26-
prefix = '';
27-
localPart = two;
28-
}
29-
} else {
30-
namespaceURI = Jsonix.Util.Type.exists(one) ? one : '';
31-
localPart = two;
32-
prefix = Jsonix.Util.Type.exists(three) ? three : '';
33-
}
34-
this.namespaceURI = namespaceURI;
35-
this.localPart = localPart;
36-
this.prefix = prefix;
37-
38-
this.key = (namespaceURI !== '' ? ('{' + namespaceURI + '}') : '') + localPart;
39-
this.string = (namespaceURI !== '' ? ('{' + namespaceURI + '}') : '') + (prefix !== '' ? (prefix + ':') : '') + localPart;
40-
},
41-
toString : function() {
42-
return this.string;
43-
},
44-
// foo:bar
45-
toCanonicalString: function(namespaceContext) {
46-
var canonicalPrefix = namespaceContext ? namespaceContext.getPrefix(this.namespaceURI, this.prefix) : this.prefix;
47-
return this.prefix + (this.prefix === '' ? '' : ':') + this.localPart;
48-
},
49-
clone : function() {
50-
return new Jsonix.XML.QName(this.namespaceURI, this.localPart, this.prefix);
51-
},
52-
equals : function(that) {
53-
if (!that) {
54-
return false;
55-
} else {
56-
return (this.namespaceURI == that.namespaceURI) && (this.localPart == that.localPart);
57-
}
58-
59-
},
60-
CLASS_NAME : "Jsonix.XML.QName"
61-
});
62-
Jsonix.XML.QName.fromString = function(qNameAsString, namespaceContext, defaultNamespaceURI) {
63-
var leftBracket = qNameAsString.indexOf('{');
64-
var rightBracket = qNameAsString.lastIndexOf('}');
65-
var namespaceURI;
66-
var prefixedName;
67-
if ((leftBracket === 0) && (rightBracket > 0) && (rightBracket < qNameAsString.length)) {
68-
namespaceURI = qNameAsString.substring(1, rightBracket);
69-
prefixedName = qNameAsString.substring(rightBracket + 1);
70-
} else {
71-
namespaceURI = null;
72-
prefixedName = qNameAsString;
73-
}
74-
var colonPosition = prefixedName.indexOf(':');
75-
var prefix;
76-
var localPart;
77-
if (colonPosition > 0 && colonPosition < prefixedName.length) {
78-
prefix = prefixedName.substring(0, colonPosition);
79-
localPart = prefixedName.substring(colonPosition + 1);
80-
} else {
81-
prefix = '';
82-
localPart = prefixedName;
83-
}
84-
// If namespace URI was not set and we have a namespace context, try to find the namespace URI via this context
85-
if (namespaceURI === null)
86-
{
87-
if (prefix === '' && Jsonix.Util.Type.isString(defaultNamespaceURI))
88-
{
89-
namespaceURI = defaultNamespaceURI;
90-
}
91-
else if (namespaceContext)
92-
{
93-
namespaceURI = namespaceContext.getNamespaceURI(prefix);
94-
}
95-
}
96-
// If we don't have a namespace URI, assume '' by default
97-
// TODO document the assumption
98-
if (!Jsonix.Util.Type.isString(namespaceURI))
99-
{
100-
namespaceURI = defaultNamespaceURI || '';
101-
}
102-
return new Jsonix.XML.QName(namespaceURI, localPart, prefix);
103-
};
104-
Jsonix.XML.QName.fromObject = function(object) {
105-
Jsonix.Util.Ensure.ensureObject(object);
106-
if (object instanceof Jsonix.XML.QName || (Jsonix.Util.Type.isString(object.CLASS_NAME) && object.CLASS_NAME === 'Jsonix.XML.QName')) {
107-
return object;
108-
}
109-
var localPart = object.localPart||object.lp||null;
110-
Jsonix.Util.Ensure.ensureString(localPart);
111-
var namespaceURI = object.namespaceURI||object.ns||'';
112-
var prefix = object.prefix||object.p||'';
113-
return new Jsonix.XML.QName(namespaceURI, localPart, prefix);
114-
};
115-
Jsonix.XML.QName.fromObjectOrString = function(value, namespaceContext, defaultNamespaceURI) {
116-
if (Jsonix.Util.Type.isString(value))
117-
{
118-
return Jsonix.XML.QName.fromString(value, namespaceContext, defaultNamespaceURI);
119-
}
120-
else
121-
{
122-
return Jsonix.XML.QName.fromObject(value);
123-
}
124-
};
125-
Jsonix.XML.QName.key = function(namespaceURI, localPart) {
126-
Jsonix.Util.Ensure.ensureString(localPart);
127-
if (namespaceURI) {
128-
var colonPosition = localPart.indexOf(':');
129-
if (colonPosition > 0 && colonPosition < localPart.length) {
130-
localName = localPart.substring(colonPosition + 1);
131-
} else {
132-
localName = localPart;
133-
}
134-
return '{' + namespaceURI + '}' + localName;
135-
} else {
136-
return localPart;
137-
}
1+
Jsonix.XML.QName = Jsonix.Class({
2+
key : null,
3+
namespaceURI : null,
4+
localPart : null,
5+
prefix : null,
6+
string : null,
7+
initialize : function(one, two, three) {
8+
var namespaceURI;
9+
var localPart;
10+
var prefix;
11+
var key;
12+
var string;
13+
14+
if (!Jsonix.Util.Type.exists(two)) {
15+
namespaceURI = '';
16+
localPart = one;
17+
prefix = '';
18+
} else if (!Jsonix.Util.Type.exists(three)) {
19+
namespaceURI = Jsonix.Util.Type.exists(one) ? one : '';
20+
localPart = two;
21+
var colonPosition = two.indexOf(':');
22+
if (colonPosition > 0 && colonPosition < two.length) {
23+
prefix = two.substring(0, colonPosition);
24+
localPart = two.substring(colonPosition + 1);
25+
} else {
26+
prefix = '';
27+
localPart = two;
28+
}
29+
} else {
30+
namespaceURI = Jsonix.Util.Type.exists(one) ? one : '';
31+
localPart = two;
32+
prefix = Jsonix.Util.Type.exists(three) ? three : '';
33+
}
34+
this.namespaceURI = namespaceURI;
35+
this.localPart = localPart;
36+
this.prefix = prefix;
37+
38+
this.key = (namespaceURI !== '' ? ('{' + namespaceURI + '}') : '') + localPart;
39+
this.string = (namespaceURI !== '' ? ('{' + namespaceURI + '}') : '') + (prefix !== '' ? (prefix + ':') : '') + localPart;
40+
},
41+
toString : function() {
42+
return this.string;
43+
},
44+
// foo:bar
45+
toCanonicalString: function(namespaceContext) {
46+
var canonicalPrefix = namespaceContext ? namespaceContext.getPrefix(this.namespaceURI, this.prefix) : this.prefix;
47+
return this.prefix + (this.prefix === '' ? '' : ':') + this.localPart;
48+
},
49+
clone : function() {
50+
return new Jsonix.XML.QName(this.namespaceURI, this.localPart, this.prefix);
51+
},
52+
equals : function(that) {
53+
if (!that) {
54+
return false;
55+
} else {
56+
return (this.namespaceURI == that.namespaceURI) && (this.localPart == that.localPart);
57+
}
58+
59+
},
60+
CLASS_NAME : "Jsonix.XML.QName"
61+
});
62+
Jsonix.XML.QName.fromString = function(qNameAsString, namespaceContext, defaultNamespaceURI) {
63+
var leftBracket = qNameAsString.indexOf('{');
64+
var rightBracket = qNameAsString.lastIndexOf('}');
65+
var namespaceURI;
66+
var prefixedName;
67+
if ((leftBracket === 0) && (rightBracket > 0) && (rightBracket < qNameAsString.length)) {
68+
namespaceURI = qNameAsString.substring(1, rightBracket);
69+
prefixedName = qNameAsString.substring(rightBracket + 1);
70+
} else {
71+
namespaceURI = null;
72+
prefixedName = qNameAsString;
73+
}
74+
var colonPosition = prefixedName.indexOf(':');
75+
var prefix;
76+
var localPart;
77+
if (colonPosition > 0 && colonPosition < prefixedName.length) {
78+
prefix = prefixedName.substring(0, colonPosition);
79+
localPart = prefixedName.substring(colonPosition + 1);
80+
} else {
81+
prefix = '';
82+
localPart = prefixedName;
83+
}
84+
// If namespace URI was not set and we have a namespace context, try to find the namespace URI via this context
85+
if (namespaceURI === null)
86+
{
87+
if (prefix === '' && Jsonix.Util.Type.isString(defaultNamespaceURI))
88+
{
89+
namespaceURI = defaultNamespaceURI;
90+
}
91+
else if (namespaceContext)
92+
{
93+
namespaceURI = namespaceContext.getNamespaceURI(prefix);
94+
}
95+
}
96+
// If we don't have a namespace URI, assume '' by default
97+
// TODO document the assumption
98+
if (!Jsonix.Util.Type.isString(namespaceURI))
99+
{
100+
namespaceURI = defaultNamespaceURI || '';
101+
}
102+
return new Jsonix.XML.QName(namespaceURI, localPart, prefix);
103+
};
104+
Jsonix.XML.QName.fromObject = function(object) {
105+
Jsonix.Util.Ensure.ensureObject(object);
106+
if (object instanceof Jsonix.XML.QName || (Jsonix.Util.Type.isString(object.CLASS_NAME) && object.CLASS_NAME === 'Jsonix.XML.QName')) {
107+
return object;
108+
}
109+
var localPart = object.localPart||object.lp||null;
110+
Jsonix.Util.Ensure.ensureString(localPart);
111+
var namespaceURI = object.namespaceURI||object.ns||'';
112+
var prefix = object.prefix||object.p||'';
113+
return new Jsonix.XML.QName(namespaceURI, localPart, prefix);
114+
};
115+
Jsonix.XML.QName.fromObjectOrString = function(value, namespaceContext, defaultNamespaceURI) {
116+
if (Jsonix.Util.Type.isString(value))
117+
{
118+
return Jsonix.XML.QName.fromString(value, namespaceContext, defaultNamespaceURI);
119+
}
120+
else
121+
{
122+
return Jsonix.XML.QName.fromObject(value);
123+
}
124+
};
125+
Jsonix.XML.QName.key = function(namespaceURI, localPart) {
126+
Jsonix.Util.Ensure.ensureString(localPart);
127+
if (namespaceURI) {
128+
var colonPosition = localPart.indexOf(':');
129+
var localName;
130+
if (colonPosition > 0 && colonPosition < localPart.length) {
131+
localName = localPart.substring(colonPosition + 1);
132+
} else {
133+
localName = localPart;
134+
}
135+
return '{' + namespaceURI + '}' + localName;
136+
} else {
137+
return localPart;
138+
}
138139
};

0 commit comments

Comments
 (0)