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