{"record":{"id":"fcb38f1a6005a906","repo":"dotnet/wpf","slug":"sr-textrange-unrecognizedstructureindataformat-dataformat","errorCode":null,"errorMessage":"SR.TextRange_UnrecognizedStructureInDataFormat (dataFormat)","messagePattern":"SR\\.TextRange_UnrecognizedStructureInDataFormat \\(dataFormat\\)","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextRangeBase.cs","lineNumber":1572,"sourceCode":"\n            if (dataFormat == DataFormats.Text)\n            {\n                StreamReader textStreamReader = new StreamReader(stream);\n                string text = textStreamReader.ReadToEnd();\n                thisRange.Text = text;\n            }\n            else if (dataFormat == DataFormats.Xaml)\n            {\n                StreamReader xamlStreamReader = new StreamReader(stream);\n                string xamlText = xamlStreamReader.ReadToEnd();\n                thisRange.Xml = xamlText;\n            }\n            else if (dataFormat == DataFormats.XamlPackage)\n            {\n                object element = WpfPayload.LoadElement(stream);\n                if (!(element is Section) && !(element is Span))\n                {\n                    throw new ArgumentException(SR.Format(SR.TextRange_UnrecognizedStructureInDataFormat, dataFormat), nameof(stream));\n                }\n                thisRange.SetXmlVirtual((TextElement)element);\n            }\n            else if (dataFormat == DataFormats.Rtf)\n            {\n                // Need to use streams instead of intrermediate strings\n                StreamReader rtfStreamReader = new StreamReader(stream);\n                string rtfText = rtfStreamReader.ReadToEnd();\n                MemoryStream memoryStream = TextEditorCopyPaste.ConvertRtfToXaml(rtfText);\n                if (memoryStream == null)\n                {\n                    throw new ArgumentException(SR.Format(SR.TextRange_UnrecognizedStructureInDataFormat, dataFormat), nameof(stream));\n                }\n                TextElement textElement = WpfPayload.LoadElement(memoryStream) as TextElement;\n                if (!(textElement is Section) && !(textElement is Span))\n                {\n                    throw new ArgumentException(SR.Format(SR.TextRange_UnrecognizedStructureInDataFormat, dataFormat), nameof(stream));\n                }","sourceCodeStart":1554,"sourceCodeEnd":1590,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextRangeBase.cs#L1554-L1590","documentation":"TextRangeBase.Load throws ArgumentException when the stream for dataFormat XamlPackage deserializes via WpfPayload.LoadElement to something other than a Section or Span. A XamlPackage payload must contain a Section or Span as its root text structure; anything else is rejected. The message includes the dataFormat.","triggerScenarios":"Calling TextRange.Load(stream, DataFormats.XamlPackage) with a XamlPackage whose root element is a TextBlock, Paragraph, or arbitrary UIElement instead of Section/Span.","commonSituations":"Hand-constructed or third-party-generated XamlPackage payloads; packages produced by other tools with a different root element; corrupted or truncated payload streams.","solutions":["Ensure the XamlPackage's root XAML element is a Section or Span","Regenerate the payload by saving via TextRange.Save(..., DataFormats.XamlPackage)","If loading arbitrary XAML, wrap content in a Span before packaging"],"exampleFix":"// before\n// xamlpackage root: <TextBlock>...</TextBlock>\n// after\n// xamlpackage root: <Span>...</Span> (or <Section>...</Section>)","handlingStrategy":"validation","validationCode":"// pre-inspect package payload root before Load\n// var element = WpfPayload.LoadElement(copyOfStream);\n// ok = element is Section or Span; stream.Position = 0;","typeGuard":null,"tryCatchPattern":"try { range.Load(stream, DataFormats.XamlPackage); } catch (ArgumentException ex) { /* unrecognized structure in package */ }","preventionTips":["Only consume XamlPackage payloads produced by TextRange.Save","Never hand-write package roots other than Section/Span"],"tags":["wpf","xaml","deserialization"],"backgroundTag":"schema-validation-failed","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-21T21:30:21.729Z"}