package producer import ( "encoding/xml" "os" ) // Report represents the root XML element type Report struct { XMLName xml.Name `xml:"report"` Satellite string `xml:"satellite,attr"` Sensor string `xml:"sensor,attr"` ProductLevel string `xml:"productLevel,attr"` Scenes []ReportScene `xml:"scenes>scene"` } // Scene represents each scene in the report type ReportScene struct { Name string `xml:"name,attr"` TiffData string `xml:"tiffData"` TfwData string `xml:"tfwData"` RpbData string `xml:"rpbData"` BrowserData string `xml:"browserData"` BrowserRpbData string `xml:"browserRpbData"` ThumbData string `xml:"thumbData"` ShpData string `xml:"shpData"` ShxData string `xml:"shxData"` DbfData string `xml:"dbfData"` MetaData string `xml:"metaData"` QualityData string `xml:"qualityData"` } func WriteReport(report *Report, filename string) error { output, err := xml.MarshalIndent(report, "", " ") if err != nil { return err } err = os.WriteFile(filename, output, 0644) if err != nil { return err } return nil }