@@ -338,6 +338,11 @@ private void parse(CodeContext context, TextReader textReader) {
338338 case XmlNodeType . Text :
339339 BufferText ( xmlReader . Value ) ;
340340 break ;
341+ case XmlNodeType . SignificantWhitespace :
342+ case XmlNodeType . Whitespace :
343+ if ( xmlReader . Depth > 0 )
344+ BufferText ( xmlReader . Value ) ;
345+ break ;
341346 case XmlNodeType . ProcessingInstruction :
342347 handleProcessingInstruction ( ) ;
343348 break ;
@@ -386,14 +391,15 @@ private void handleElement() {
386391 }
387392
388393 while ( xmlReader . MoveToNextAttribute ( ) ) {
389- if ( xmlReader . Prefix == "xmlns" ) {
390- var prefix = xmlReader . LocalName ;
394+ if ( namespace_separator != null
395+ && ( xmlReader . Prefix == "xmlns" || xmlReader . Prefix == string . Empty && xmlReader . LocalName == "xmlns" ) ) {
396+ var prefix = xmlReader . Prefix == string . Empty ? string . Empty : xmlReader . LocalName ;
391397 var uri = xmlReader . Value ;
392398 ns_stack . Push ( prefix ) ;
393399 var startNamespaceDeclHandler = StartNamespaceDeclHandler ;
394400 if ( startNamespaceDeclHandler != null ) {
395401 FlushBuffer ( ) ;
396- startNamespaceDeclHandler ( prefix , uri ) ;
402+ startNamespaceDeclHandler ( prefix == string . Empty ? null : prefix , uri ) ;
397403 }
398404 continue ;
399405 }
@@ -434,7 +440,7 @@ private void handleEndElement() {
434440 var endNamespaceDeclHandler = EndNamespaceDeclHandler ;
435441 if ( endNamespaceDeclHandler != null ) {
436442 FlushBuffer ( ) ;
437- endNamespaceDeclHandler ( prefix ) ;
443+ endNamespaceDeclHandler ( prefix == string . Empty ? null : prefix ) ;
438444 }
439445 }
440446 }
0 commit comments