File tree Expand file tree Collapse file tree 2 files changed +12
-33
lines changed Expand file tree Collapse file tree 2 files changed +12
-33
lines changed Original file line number Diff line number Diff line change @@ -273,7 +273,14 @@ where
273273 QNameDeserializer :: from_attr ( QName ( & slice[ key] ) , decoder, & mut self . de . key_buf ) ?;
274274 seed. deserialize ( de) . map ( Some )
275275 } else {
276- self . skip_whitespaces ( ) ?;
276+ // If we have dedicated "$text" field, whitespace-only text may be significant.
277+ // That also means, that type with `$text` fields behaves as if its element has
278+ // `xml:space="preserve"` attribute: you must not have pretty-print indents
279+ // inside this element.
280+ if !self . has_text_field {
281+ self . skip_whitespaces ( ) ?;
282+ }
283+
277284 // try getting from events (<key>value</key>)
278285 match self . de . peek ( ) ? {
279286 // If we have dedicated "$text" field, it will not be passed to "$value" field
Original file line number Diff line number Diff line change @@ -831,14 +831,7 @@ mod fixed_name {
831831 }
832832
833833 from_str :: < List > (
834- r#"
835- <root>
836- <item/>
837- <item/>
838- text
839- <![CDATA[cdata]]>
840- </root>
841- "# ,
834+ r#"<root><item/><item/>text<![CDATA[cdata]]></root>"# ,
842835 )
843836 . unwrap ( ) ;
844837 }
@@ -1688,14 +1681,7 @@ mod fixed_name {
16881681 }
16891682
16901683 let data: List = from_str (
1691- r#"
1692- <root>
1693- <item/>
1694- <item/>
1695- text
1696- <![CDATA[cdata]]>
1697- </root>
1698- "# ,
1684+ r#"<root><item/><item/>text<![CDATA[cdata]]></root>"# ,
16991685 )
17001686 . unwrap ( ) ;
17011687
@@ -2946,14 +2932,7 @@ mod variable_name {
29462932 }
29472933
29482934 from_str :: < List > (
2949- r#"
2950- <root>
2951- <item/>
2952- <item/>
2953- text
2954- <![CDATA[cdata]]>
2955- </root>
2956- "# ,
2935+ r#"<root><item/><item/>text<![CDATA[cdata]]></root>"# ,
29572936 )
29582937 . unwrap ( ) ;
29592938 }
@@ -4015,14 +3994,7 @@ mod variable_name {
40153994 }
40163995
40173996 let data: List = from_str (
4018- r#"
4019- <root>
4020- <item/>
4021- <item/>
4022- text
4023- <![CDATA[cdata]]>
4024- </root>
4025- "# ,
3997+ r#"<root><item/><item/>text<![CDATA[cdata]]></root>"# ,
40263998 )
40273999 . unwrap ( ) ;
40284000
You can’t perform that action at this time.
0 commit comments