@@ -170,22 +170,22 @@ public int next() throws XMLStreamException
170
170
int n = next0();
171
171
switch (n) {
172
172
case XML_START_ELEMENT:
173
- System.out.println(" XML-token : XML_START_ELEMENT '"+_localName+"'");
173
+ System.out.println(" XmlTolenStream.next() : XML_START_ELEMENT '"+_localName+"'");
174
174
break;
175
175
case XML_END_ELEMENT:
176
- System.out.println(" XML-token : XML_END_ELEMENT '"+_localName+"'");
176
+ System.out.println(" XmlTolenStream.next() : XML_END_ELEMENT '"+_localName+"'");
177
177
break;
178
178
case XML_ATTRIBUTE_NAME:
179
- System.out.println(" XML-token : XML_ATTRIBUTE_NAME '"+_localName+"'");
179
+ System.out.println(" XmlTolenStream.next() : XML_ATTRIBUTE_NAME '"+_localName+"'");
180
180
break;
181
181
case XML_ATTRIBUTE_VALUE:
182
- System.out.println(" XML-token : XML_ATTRIBUTE_VALUE '"+_textValue+"'");
182
+ System.out.println(" XmlTolenStream.next() : XML_ATTRIBUTE_VALUE '"+_textValue+"'");
183
183
break;
184
184
case XML_TEXT:
185
- System.out.println(" XML-token : XML_TEXT '"+_textValue+"'");
185
+ System.out.println(" XmlTolenStream.next() : XML_TEXT '"+_textValue+"'");
186
186
break;
187
187
case XML_END:
188
- System.out.println(" XML-token : XML_END");
188
+ System.out.println(" XmlTolenStream.next() : XML_END");
189
189
break;
190
190
default:
191
191
throw new IllegalStateException();
@@ -194,7 +194,8 @@ public int next() throws XMLStreamException
194
194
}
195
195
*/
196
196
197
- public int next () throws XMLStreamException
197
+ // public int next0() throws XMLStreamException
198
+ public int next () throws XMLStreamException
198
199
{
199
200
if (_repeatElement != 0 ) {
200
201
return (_currentState = _handleRepeatElement ());
@@ -256,18 +257,19 @@ public JsonLocation getTokenLocation() {
256
257
*/
257
258
protected void repeatStartElement ()
258
259
{
259
- //System.out.println(" -> repeatStartElement for "+_localName);
260
+ //System.out.println(" -> repeatStartElement for "+_localName+", _currentWrapper was: "+_currentWrapper);
260
261
// sanity check: can only be used when just returned START_ELEMENT:
261
262
if (_currentState != XML_START_ELEMENT ) {
262
263
throw new IllegalStateException ("Current state not XML_START_ELEMENT ("
263
264
+XML_START_ELEMENT +") but " +_currentState );
264
265
}
265
266
// Important: add wrapper, to keep track...
266
267
if (_currentWrapper == null ) {
267
- _currentWrapper = ElementWrapper .matchingWrapper (_currentWrapper , _localName , _namespaceURI );
268
+ _currentWrapper = ElementWrapper .matchingWrapper (null , _localName , _namespaceURI );
268
269
} else {
269
270
_currentWrapper = ElementWrapper .matchingWrapper (_currentWrapper .getParent (), _localName , _namespaceURI );
270
271
}
272
+ //System.out.println(" repeatStartElement for "+_localName+", _currentWrapper now: "+_currentWrapper);
271
273
_repeatElement = REPLAY_START_DUP ;
272
274
}
273
275
@@ -523,12 +525,13 @@ private final int _initStartElement() throws XMLStreamException
523
525
if (_currentWrapper != null ) {
524
526
if (_currentWrapper .matchesWrapper (localName , ns )) {
525
527
_currentWrapper = _currentWrapper .intermediateWrapper ();
528
+ //System.out.println(" _initStartElement(): START_ELEMENT ("+localName+") DOES match ["+_currentWrapper+"]: leave/add intermediate");
526
529
} else {
527
530
// implicit end is more interesting:
531
+ //System.out.println(" _initStartElement(): START_ELEMENT ("+localName+") not matching '"+_localName+"'; add extra XML-END-ELEMENT!");
528
532
_localName = _currentWrapper .getWrapperLocalName ();
529
533
_namespaceURI = _currentWrapper .getWrapperNamespace ();
530
534
_currentWrapper = _currentWrapper .getParent ();
531
- //System.out.println(" START_ELEMENT ("+localName+") not matching '"+_localName+"'; add extra XML-END-ELEMENT!");
532
535
// Important! We also need to restore the START_ELEMENT, so:
533
536
_nextLocalName = localName ;
534
537
_nextNamespaceURI = ns ;
@@ -571,16 +574,18 @@ private final void _checkXsiAttributes() {
571
574
*/
572
575
protected int _handleRepeatElement () throws XMLStreamException
573
576
{
577
+ //System.out.println(" XMLTokenStream._handleRepeatElement()");
578
+
574
579
int type = _repeatElement ;
575
580
_repeatElement = 0 ;
576
581
if (type == REPLAY_START_DUP ) {
577
- //System.out.println("handleRepeat for START_ELEMENT: "+_localName+" ("+_xmlReader.getLocalName()+")");
582
+ //System.out.println(" XMLTokenStream._handleRepeatElement() for START_ELEMENT: "+_localName+" ("+_xmlReader.getLocalName()+")");
578
583
// important: add the virtual element second time, but not with name to match
579
584
_currentWrapper = _currentWrapper .intermediateWrapper ();
580
585
return XML_START_ELEMENT ;
581
586
}
582
587
if (type == REPLAY_END ) {
583
- //System.out.println("handleRepeat for END_ELEMENT: "+_localName+" ("+_xmlReader.getLocalName()+")");
588
+ //System.out.println(" XMLTokenStream._handleRepeatElement() for END_ELEMENT: "+_localName+" ("+_xmlReader.getLocalName()+")");
584
589
_localName = _xmlReader .getLocalName ();
585
590
_namespaceURI = _xmlReader .getNamespaceURI ();
586
591
if (_currentWrapper != null ) {
@@ -596,8 +601,8 @@ protected int _handleRepeatElement() throws XMLStreamException
596
601
_namespaceURI = _nextNamespaceURI ;
597
602
_nextLocalName = null ;
598
603
_nextNamespaceURI = null ;
599
-
600
- //System.out.println("handleRepeat for START_DELAYED: "+_localName+" ("+_xmlReader.getLocalName()+")");
604
+
605
+ //System.out.println(" XMLTokenStream._handleRepeatElement() for START_DELAYED: "+_localName+" ("+_xmlReader.getLocalName()+")");
601
606
602
607
return XML_START_ELEMENT ;
603
608
}
@@ -606,6 +611,7 @@ protected int _handleRepeatElement() throws XMLStreamException
606
611
607
612
private final int _handleEndElement ()
608
613
{
614
+ //System.out.println(" XMLTokenStream._handleEndElement()");
609
615
if (_currentWrapper != null ) {
610
616
ElementWrapper w = _currentWrapper ;
611
617
// important: if we close the scope, must duplicate END_ELEMENT as well
@@ -614,7 +620,7 @@ private final int _handleEndElement()
614
620
_localName = w .getWrapperLocalName ();
615
621
_namespaceURI = w .getWrapperNamespace ();
616
622
_currentWrapper = _currentWrapper .getParent ();
617
- //System.out.println(" IMPLICIT requestRepeat of END_ELEMENT '"+_localName);
623
+ //System.out.println(" XMLTokenStream._handleEndElement(): IMPLICIT requestRepeat of END_ELEMENT '"+_localName);
618
624
} else {
619
625
_currentWrapper = _currentWrapper .getParent ();
620
626
}
0 commit comments