Handle all empty elements

This commit is contained in:
Matt Nadareski
2026-04-18 21:20:56 -04:00
parent 7d6092452f
commit 63c13254d7
9 changed files with 261 additions and 1 deletions

View File

@@ -65,6 +65,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Files();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<File> files = [];
while (reader.Read())
{
@@ -105,6 +109,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Source = reader.GetAttribute("source");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{

View File

@@ -75,6 +75,10 @@ namespace SabreTools.Serialization.Readers
obj.Debug = reader.GetAttribute("debug").AsYesNo();
obj.MameConfig = reader.GetAttribute("mameconfig");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<GameBase> games = [];
while (reader.Read())
{
@@ -121,6 +125,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -227,6 +235,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<ConfLocation> confLocations = [];
List<ConfSetting> confSettings = [];
@@ -304,6 +316,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -372,6 +388,10 @@ namespace SabreTools.Serialization.Readers
obj.Mandatory = reader.GetAttribute("mandatory").AsYesNo();
obj.Interface = reader.GetAttribute("interface");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Extension> extensions = [];
while (reader.Read())
@@ -454,6 +474,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<DipLocation> dipLocations = [];
List<DipValue> dipValues = [];
@@ -515,6 +539,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -671,6 +699,10 @@ namespace SabreTools.Serialization.Readers
obj.RomOf = reader.GetAttribute("romof");
obj.SampleOf = reader.GetAttribute("sampleof");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<BiosSet> biosSets = [];
List<Rom> roms = [];
List<Disk> disks = [];
@@ -931,6 +963,10 @@ namespace SabreTools.Serialization.Readers
obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons"));
obj.Coins = NumberHelper.ConvertToInt64(reader.GetAttribute("coins"));
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Control> controls = [];
while (reader.Read())
@@ -990,6 +1026,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Analog> analogs = [];
while (reader.Read())
@@ -1089,6 +1129,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<SlotOption> slotOptions = [];
while (reader.Read())

View File

@@ -77,6 +77,10 @@ namespace SabreTools.Serialization.Readers
// TODO: Fix this based on No-Intro DATs
// obj.SchemaLocation = reader.GetAttribute("schemaLocation");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<GameBase> games = [];
List<Dir> dirs = [];
while (reader.Read())
@@ -153,6 +157,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Header();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -375,6 +383,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Dir> subdirs = [];
List<GameBase> games = [];
@@ -487,6 +499,10 @@ namespace SabreTools.Serialization.Readers
obj.CloneOfId = reader.GetAttribute("cloneofid");
obj.Runnable = reader.GetAttribute("runnable").AsRunnable();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<string> comments = [];
List<string> categories = [];
List<Release> releases = [];
@@ -787,6 +803,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Trurip();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{

View File

@@ -73,6 +73,10 @@ namespace SabreTools.Serialization.Readers
obj.Version = reader.GetAttribute("version");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<GameBase> games = [];
while (reader.Read())
{
@@ -119,6 +123,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -225,6 +233,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<ConfLocation> confLocations = [];
List<ConfSetting> confSettings = [];
@@ -302,6 +314,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -370,6 +386,10 @@ namespace SabreTools.Serialization.Readers
obj.Mandatory = reader.GetAttribute("mandatory").AsYesNo();
obj.Interface = reader.GetAttribute("interface");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Extension> extensions = [];
while (reader.Read())
@@ -452,6 +472,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<DipLocation> dipLocations = [];
List<DipValue> dipValues = [];
@@ -513,6 +537,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -669,6 +697,10 @@ namespace SabreTools.Serialization.Readers
obj.RomOf = reader.GetAttribute("romof");
obj.SampleOf = reader.GetAttribute("sampleof");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<BiosSet> biosSets = [];
List<Rom> roms = [];
List<Disk> disks = [];
@@ -929,6 +961,10 @@ namespace SabreTools.Serialization.Readers
obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons"));
obj.Coins = NumberHelper.ConvertToInt64(reader.GetAttribute("coins"));
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Control> controls = [];
while (reader.Read())
@@ -988,6 +1024,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Analog> analogs = [];
while (reader.Read())
@@ -1087,6 +1127,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<SlotOption> slotOptions = [];
while (reader.Read())

View File

@@ -73,6 +73,10 @@ namespace SabreTools.Serialization.Readers
obj.Version = reader.GetAttribute("version");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<GameBase> games = [];
while (reader.Read())
{
@@ -119,6 +123,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -225,6 +233,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<ConfLocation> confLocations = [];
List<ConfSetting> confSettings = [];
@@ -302,6 +314,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -370,6 +386,10 @@ namespace SabreTools.Serialization.Readers
obj.Mandatory = reader.GetAttribute("mandatory").AsYesNo();
obj.Interface = reader.GetAttribute("interface");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Extension> extensions = [];
while (reader.Read())
@@ -452,6 +472,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<DipLocation> dipLocations = [];
List<DipValue> dipValues = [];
@@ -513,6 +537,10 @@ namespace SabreTools.Serialization.Readers
obj.Value = reader.GetAttribute("value");
obj.Default = reader.GetAttribute("default").AsYesNo();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -669,6 +697,10 @@ namespace SabreTools.Serialization.Readers
obj.RomOf = reader.GetAttribute("romof");
obj.SampleOf = reader.GetAttribute("sampleof");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<BiosSet> biosSets = [];
List<Rom> roms = [];
List<Disk> disks = [];
@@ -929,6 +961,10 @@ namespace SabreTools.Serialization.Readers
obj.Buttons = NumberHelper.ConvertToInt64(reader.GetAttribute("buttons"));
obj.Coins = NumberHelper.ConvertToInt64(reader.GetAttribute("coins"));
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Control> controls = [];
while (reader.Read())
@@ -988,6 +1024,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Analog> analogs = [];
while (reader.Read())
@@ -1087,6 +1127,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<SlotOption> slotOptions = [];
while (reader.Read())

View File

@@ -70,6 +70,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Datafile();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Game> games = [];
while (reader.Read())
{
@@ -199,6 +203,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Media> medias = [];
List<Source> sources = [];
List<Release> releases = [];
@@ -288,6 +296,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Release();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Data.Models.NoIntroDatabase.File> files = [];
reader.Read();
@@ -406,6 +418,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Source();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Data.Models.NoIntroDatabase.File> files = [];
reader.Read();

View File

@@ -74,6 +74,10 @@ namespace SabreTools.Serialization.Readers
// TODO: Fix this schema reading/writing
obj.NoNamespaceSchemaLocation = reader.GetAttribute("noNamespaceSchemaLocation");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
while (reader.Read())
{
// An ending element means exit
@@ -123,6 +127,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new CanOpen();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<string> extensions = [];
reader.Read();
@@ -186,6 +194,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Configuration();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -322,6 +334,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Files();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<FileRomCRC> romCrcs = [];
reader.Read();
@@ -385,6 +401,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Game();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -506,6 +526,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Games();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Game> games = [];
reader.Read();
@@ -554,6 +578,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new GUI();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -664,6 +692,10 @@ namespace SabreTools.Serialization.Readers
obj.Width = reader.GetAttribute("width");
obj.Height = reader.GetAttribute("height");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Image> images = [];
reader.Read();
@@ -712,6 +744,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Infos();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -1006,6 +1042,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new NewDat();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -1060,6 +1100,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Search();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<To> tos = [];
reader.Read();
@@ -1112,7 +1156,7 @@ namespace SabreTools.Serialization.Readers
obj.Default = reader.GetAttribute("default").AsYesNo();
obj.Auto = reader.GetAttribute("auto");
// Handle uncommon case of no find elements
// Handle empty elements
if (reader.IsEmptyElement)
return obj;

View File

@@ -72,6 +72,10 @@ namespace SabreTools.Serialization.Readers
obj.Timestamp = reader.GetAttribute("timestamp");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Software> softwares = [];
reader.Read();
@@ -120,6 +124,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Dump();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -200,6 +208,10 @@ namespace SabreTools.Serialization.Readers
else
return null;
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
reader.Read();
while (!reader.EOF)
{
@@ -260,6 +272,10 @@ namespace SabreTools.Serialization.Readers
{
var obj = new Software();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Dump> dumps = [];
reader.Read();

View File

@@ -74,6 +74,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Description = reader.GetAttribute("description");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Software> softwares = [];
reader.Read();
@@ -133,6 +137,10 @@ namespace SabreTools.Serialization.Readers
obj.Width = reader.GetAttribute("width").AsWidth();
obj.Endianness = reader.GetAttribute("endianness").AsEndianness();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Rom> roms = [];
reader.Read();
@@ -185,6 +193,10 @@ namespace SabreTools.Serialization.Readers
obj.Tag = reader.GetAttribute("tag");
obj.Mask = reader.GetAttribute("mask");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<DipValue> dipValues = [];
reader.Read();
@@ -269,6 +281,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Disk> disks = [];
reader.Read();
@@ -350,6 +366,10 @@ namespace SabreTools.Serialization.Readers
obj.Name = reader.GetAttribute("name");
obj.Interface = reader.GetAttribute("interface");
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Feature> features = [];
List<DataArea> dataAreas = [];
List<DiskArea> diskAreas = [];
@@ -469,6 +489,10 @@ namespace SabreTools.Serialization.Readers
obj.CloneOf = reader.GetAttribute("cloneof");
obj.Supported = reader.GetAttribute("supported")?.AsSupported();
// Handle empty elements
if (reader.IsEmptyElement)
return obj;
List<Info> infos = [];
List<SharedFeat> sharedFeats = [];
List<Part> parts = [];