mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add required variants for XML
This commit is contained in:
@@ -994,7 +994,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartDocument();
|
xtw.WriteStartDocument();
|
||||||
|
|
||||||
xtw.WriteStartElement("mame");
|
xtw.WriteStartElement("mame");
|
||||||
xtw.WriteAttributeString("build", Header.Name);
|
xtw.WriteRequiredAttributeString("build", Header.Name);
|
||||||
xtw.WriteOptionalAttributeString("debug", Header.Debug.FromYesNo());
|
xtw.WriteOptionalAttributeString("debug", Header.Debug.FromYesNo());
|
||||||
xtw.WriteOptionalAttributeString("mameconfig", Header.MameConfig);
|
xtw.WriteOptionalAttributeString("mameconfig", Header.MameConfig);
|
||||||
|
|
||||||
@@ -1024,7 +1024,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
// Build the state
|
// Build the state
|
||||||
xtw.WriteStartElement("machine");
|
xtw.WriteStartElement("machine");
|
||||||
xtw.WriteAttributeString("name", datItem.Machine.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Machine.Name);
|
||||||
xtw.WriteOptionalAttributeString("sourcefile", datItem.Machine.SourceFile);
|
xtw.WriteOptionalAttributeString("sourcefile", datItem.Machine.SourceFile);
|
||||||
|
|
||||||
if (datItem.Machine.MachineType.HasFlag(MachineType.Bios))
|
if (datItem.Machine.MachineType.HasFlag(MachineType.Bios))
|
||||||
@@ -1064,8 +1064,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("info");
|
xtw.WriteStartElement("info");
|
||||||
xtw.WriteAttributeString("name", kvp.Name);
|
xtw.WriteRequiredAttributeString("name", kvp.Name);
|
||||||
xtw.WriteAttributeString("value", kvp.Value);
|
xtw.WriteRequiredAttributeString("value", kvp.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1128,7 +1128,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.BiosSet:
|
case ItemType.BiosSet:
|
||||||
var biosSet = datItem as BiosSet;
|
var biosSet = datItem as BiosSet;
|
||||||
xtw.WriteStartElement("biosset");
|
xtw.WriteStartElement("biosset");
|
||||||
xtw.WriteAttributeString("name", biosSet.Name);
|
xtw.WriteRequiredAttributeString("name", biosSet.Name);
|
||||||
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
||||||
xtw.WriteOptionalAttributeString("default", biosSet.Default?.ToString().ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("default", biosSet.Default?.ToString().ToLowerInvariant());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
@@ -1137,7 +1137,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Disk:
|
case ItemType.Disk:
|
||||||
var disk = datItem as Disk;
|
var disk = datItem as Disk;
|
||||||
xtw.WriteStartElement("disk");
|
xtw.WriteStartElement("disk");
|
||||||
xtw.WriteAttributeString("name", disk.Name);
|
xtw.WriteRequiredAttributeString("name", disk.Name);
|
||||||
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
||||||
@@ -1158,7 +1158,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Rom:
|
case ItemType.Rom:
|
||||||
var rom = datItem as Rom;
|
var rom = datItem as Rom;
|
||||||
xtw.WriteStartElement("rom");
|
xtw.WriteStartElement("rom");
|
||||||
xtw.WriteAttributeString("name", rom.Name);
|
xtw.WriteRequiredAttributeString("name", rom.Name);
|
||||||
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
||||||
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
||||||
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
||||||
@@ -1180,7 +1180,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
case ItemType.Sample:
|
case ItemType.Sample:
|
||||||
xtw.WriteStartElement("sample");
|
xtw.WriteStartElement("sample");
|
||||||
xtw.WriteAttributeString("name", datItem.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Name);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -766,13 +766,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
xtw.WriteStartElement("header");
|
xtw.WriteStartElement("header");
|
||||||
|
|
||||||
xtw.WriteFullElementString("name", Header.Name);
|
xtw.WriteRequiredElementString("name", Header.Name);
|
||||||
xtw.WriteFullElementString("description", Header.Description);
|
xtw.WriteRequiredElementString("description", Header.Description);
|
||||||
xtw.WriteOptionalElementString("rootdir", Header.RootDir);
|
xtw.WriteOptionalElementString("rootdir", Header.RootDir);
|
||||||
xtw.WriteOptionalElementString("category", Header.Category);
|
xtw.WriteOptionalElementString("category", Header.Category);
|
||||||
xtw.WriteFullElementString("version", Header.Version);
|
xtw.WriteRequiredElementString("version", Header.Version);
|
||||||
xtw.WriteOptionalElementString("date", Header.Date);
|
xtw.WriteOptionalElementString("date", Header.Date);
|
||||||
xtw.WriteFullElementString("author", Header.Author);
|
xtw.WriteRequiredElementString("author", Header.Author);
|
||||||
xtw.WriteOptionalElementString("email", Header.Email);
|
xtw.WriteOptionalElementString("email", Header.Email);
|
||||||
xtw.WriteOptionalElementString("homepage", Header.Homepage);
|
xtw.WriteOptionalElementString("homepage", Header.Homepage);
|
||||||
xtw.WriteOptionalElementString("url", Header.Url);
|
xtw.WriteOptionalElementString("url", Header.Url);
|
||||||
@@ -912,7 +912,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
// Build the state
|
// Build the state
|
||||||
xtw.WriteStartElement(_deprecated ? "game" : "machine");
|
xtw.WriteStartElement(_deprecated ? "game" : "machine");
|
||||||
xtw.WriteAttributeString("name", datItem.Machine.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Machine.Name);
|
||||||
|
|
||||||
if (datItem.Machine.MachineType.HasFlag(MachineType.Bios))
|
if (datItem.Machine.MachineType.HasFlag(MachineType.Bios))
|
||||||
xtw.WriteAttributeString("isbios", "yes");
|
xtw.WriteAttributeString("isbios", "yes");
|
||||||
@@ -1040,14 +1040,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
case ItemType.Archive:
|
case ItemType.Archive:
|
||||||
xtw.WriteStartElement("archive");
|
xtw.WriteStartElement("archive");
|
||||||
xtw.WriteAttributeString("name", datItem.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Name);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ItemType.BiosSet:
|
case ItemType.BiosSet:
|
||||||
var biosSet = datItem as BiosSet;
|
var biosSet = datItem as BiosSet;
|
||||||
xtw.WriteStartElement("biosset");
|
xtw.WriteStartElement("biosset");
|
||||||
xtw.WriteAttributeString("name", biosSet.Name);
|
xtw.WriteRequiredAttributeString("name", biosSet.Name);
|
||||||
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
||||||
xtw.WriteOptionalAttributeString("default", biosSet.Default.FromYesNo());
|
xtw.WriteOptionalAttributeString("default", biosSet.Default.FromYesNo());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
@@ -1056,7 +1056,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Disk:
|
case ItemType.Disk:
|
||||||
var disk = datItem as Disk;
|
var disk = datItem as Disk;
|
||||||
xtw.WriteStartElement("disk");
|
xtw.WriteStartElement("disk");
|
||||||
xtw.WriteAttributeString("name", disk.Name);
|
xtw.WriteRequiredAttributeString("name", disk.Name);
|
||||||
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
||||||
@@ -1072,7 +1072,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Release:
|
case ItemType.Release:
|
||||||
var release = datItem as Release;
|
var release = datItem as Release;
|
||||||
xtw.WriteStartElement("release");
|
xtw.WriteStartElement("release");
|
||||||
xtw.WriteAttributeString("name", release.Name);
|
xtw.WriteRequiredAttributeString("name", release.Name);
|
||||||
xtw.WriteOptionalAttributeString("region", release.Region);
|
xtw.WriteOptionalAttributeString("region", release.Region);
|
||||||
xtw.WriteOptionalAttributeString("language", release.Language);
|
xtw.WriteOptionalAttributeString("language", release.Language);
|
||||||
xtw.WriteOptionalAttributeString("date", release.Date);
|
xtw.WriteOptionalAttributeString("date", release.Date);
|
||||||
@@ -1083,7 +1083,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Rom:
|
case ItemType.Rom:
|
||||||
var rom = datItem as Rom;
|
var rom = datItem as Rom;
|
||||||
xtw.WriteStartElement("rom");
|
xtw.WriteStartElement("rom");
|
||||||
xtw.WriteAttributeString("name", rom.Name);
|
xtw.WriteRequiredAttributeString("name", rom.Name);
|
||||||
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
||||||
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
||||||
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
||||||
@@ -1102,7 +1102,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
case ItemType.Sample:
|
case ItemType.Sample:
|
||||||
xtw.WriteStartElement("sample");
|
xtw.WriteStartElement("sample");
|
||||||
xtw.WriteAttributeString("name", datItem.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Name);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -773,11 +773,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteAttributeString("noNamespaceSchemaLocation", "xsi", "datas.xsd");
|
xtw.WriteAttributeString("noNamespaceSchemaLocation", "xsi", "datas.xsd");
|
||||||
|
|
||||||
xtw.WriteStartElement("configuration");
|
xtw.WriteStartElement("configuration");
|
||||||
xtw.WriteFullElementString("datName", Header.Name);
|
xtw.WriteRequiredElementString("datName", Header.Name);
|
||||||
xtw.WriteElementString("datVersion", Items.TotalCount.ToString());
|
xtw.WriteElementString("datVersion", Items.TotalCount.ToString());
|
||||||
xtw.WriteFullElementString("system", Header.System);
|
xtw.WriteRequiredElementString("system", Header.System);
|
||||||
xtw.WriteFullElementString("screenshotsWidth", Header.ScreenshotsWidth);
|
xtw.WriteRequiredElementString("screenshotsWidth", Header.ScreenshotsWidth);
|
||||||
xtw.WriteFullElementString("screenshotsHeight", Header.ScreenshotsHeight);
|
xtw.WriteRequiredElementString("screenshotsHeight", Header.ScreenshotsHeight);
|
||||||
|
|
||||||
if (Header.Infos != null)
|
if (Header.Infos != null)
|
||||||
{
|
{
|
||||||
@@ -810,14 +810,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
}
|
}
|
||||||
|
|
||||||
xtw.WriteStartElement("newDat");
|
xtw.WriteStartElement("newDat");
|
||||||
xtw.WriteFullElementString("datVersionURL", Header.Url);
|
xtw.WriteRequiredElementString("datVersionURL", Header.Url);
|
||||||
|
|
||||||
xtw.WriteStartElement("datUrl");
|
xtw.WriteStartElement("datUrl");
|
||||||
xtw.WriteAttributeString("fileName", $"{Header.FileName}.zip");
|
xtw.WriteAttributeString("fileName", $"{Header.FileName ?? string.Empty}.zip");
|
||||||
xtw.WriteString(Header.Url);
|
xtw.WriteString(Header.Url);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
|
|
||||||
xtw.WriteFullElementString("imURL", Header.Url);
|
xtw.WriteRequiredElementString("imURL", Header.Url);
|
||||||
|
|
||||||
// End newDat
|
// End newDat
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
@@ -863,7 +863,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
// End search
|
// End search
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
|
|
||||||
xtw.WriteFullElementString("romTitle", Header.RomTitle ?? "%u - %n");
|
xtw.WriteRequiredElementString("romTitle", Header.RomTitle ?? "%u - %n");
|
||||||
|
|
||||||
// End configuration
|
// End configuration
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
@@ -903,16 +903,16 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("game");
|
xtw.WriteStartElement("game");
|
||||||
xtw.WriteElementString("imageNumber", "1");
|
xtw.WriteElementString("imageNumber", "1");
|
||||||
xtw.WriteElementString("releaseNumber", "1");
|
xtw.WriteElementString("releaseNumber", "1");
|
||||||
xtw.WriteFullElementString("title", datItem.Name);
|
xtw.WriteRequiredElementString("title", datItem.Name);
|
||||||
xtw.WriteElementString("saveType", "None");
|
xtw.WriteElementString("saveType", "None");
|
||||||
|
|
||||||
if (datItem.ItemType == ItemType.Rom)
|
if (datItem.ItemType == ItemType.Rom)
|
||||||
{
|
{
|
||||||
var rom = datItem as Rom;
|
var rom = datItem as Rom;
|
||||||
xtw.WriteFullElementString("romSize", rom.Size.ToString());
|
xtw.WriteRequiredElementString("romSize", rom.Size.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
xtw.WriteFullElementString("publisher", datItem.Machine.Publisher);
|
xtw.WriteRequiredElementString("publisher", datItem.Machine.Publisher);
|
||||||
xtw.WriteElementString("location", "0");
|
xtw.WriteElementString("location", "0");
|
||||||
xtw.WriteElementString("sourceRom", "None");
|
xtw.WriteElementString("sourceRom", "None");
|
||||||
xtw.WriteElementString("language", "0");
|
xtw.WriteElementString("language", "0");
|
||||||
@@ -948,21 +948,21 @@ namespace SabreTools.Library.DatFiles
|
|||||||
if (!string.IsNullOrWhiteSpace(rom.CRC))
|
if (!string.IsNullOrWhiteSpace(rom.CRC))
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("romCRC");
|
xtw.WriteStartElement("romCRC");
|
||||||
xtw.WriteAttributeString("extension", tempext);
|
xtw.WriteRequiredAttributeString("extension", tempext);
|
||||||
xtw.WriteString(rom.CRC.ToUpperInvariant());
|
xtw.WriteString(rom.CRC.ToUpperInvariant());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
else if (!string.IsNullOrWhiteSpace(rom.MD5))
|
else if (!string.IsNullOrWhiteSpace(rom.MD5))
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("romMD5");
|
xtw.WriteStartElement("romMD5");
|
||||||
xtw.WriteAttributeString("extension", tempext);
|
xtw.WriteRequiredAttributeString("extension", tempext);
|
||||||
xtw.WriteString(rom.MD5.ToUpperInvariant());
|
xtw.WriteString(rom.MD5.ToUpperInvariant());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
else if (!string.IsNullOrWhiteSpace(rom.SHA1))
|
else if (!string.IsNullOrWhiteSpace(rom.SHA1))
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("romSHA1");
|
xtw.WriteStartElement("romSHA1");
|
||||||
xtw.WriteAttributeString("extension", tempext);
|
xtw.WriteRequiredAttributeString("extension", tempext);
|
||||||
xtw.WriteString(rom.SHA1.ToUpperInvariant());
|
xtw.WriteString(rom.SHA1.ToUpperInvariant());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -973,8 +973,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
xtw.WriteElementString("im1CRC", "00000000");
|
xtw.WriteElementString("im1CRC", "00000000");
|
||||||
xtw.WriteElementString("im2CRC", "00000000");
|
xtw.WriteElementString("im2CRC", "00000000");
|
||||||
xtw.WriteFullElementString("comment", datItem.Machine.Comment);
|
xtw.WriteRequiredElementString("comment", datItem.Machine.Comment);
|
||||||
xtw.WriteFullElementString("duplicateID", datItem.Machine.CloneOf);
|
xtw.WriteRequiredElementString("duplicateID", datItem.Machine.CloneOf);
|
||||||
|
|
||||||
// End game
|
// End game
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
|
|||||||
@@ -618,7 +618,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteDocType("softwaredb", null, "softwaredb1.dtd", null);
|
xtw.WriteDocType("softwaredb", null, "softwaredb1.dtd", null);
|
||||||
|
|
||||||
xtw.WriteStartElement("softwaredb");
|
xtw.WriteStartElement("softwaredb");
|
||||||
xtw.WriteAttributeString("timestamp", Header.Date);
|
xtw.WriteRequiredAttributeString("timestamp", Header.Date);
|
||||||
|
|
||||||
//TODO: Figure out how to fix the issue with removed formatting after this point
|
//TODO: Figure out how to fix the issue with removed formatting after this point
|
||||||
// xtw.WriteComment("Credits");
|
// xtw.WriteComment("Credits");
|
||||||
@@ -660,12 +660,12 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
// Build the state
|
// Build the state
|
||||||
xtw.WriteStartElement("software");
|
xtw.WriteStartElement("software");
|
||||||
xtw.WriteFullElementString("title", datItem.Machine.Name);
|
xtw.WriteRequiredElementString("title", datItem.Machine.Name);
|
||||||
xtw.WriteFullElementString("genmsxid", datItem.Machine.GenMSXID);
|
xtw.WriteRequiredElementString("genmsxid", datItem.Machine.GenMSXID);
|
||||||
xtw.WriteFullElementString("system", datItem.Machine.System);
|
xtw.WriteRequiredElementString("system", datItem.Machine.System);
|
||||||
xtw.WriteFullElementString("company", datItem.Machine.Manufacturer);
|
xtw.WriteRequiredElementString("company", datItem.Machine.Manufacturer);
|
||||||
xtw.WriteFullElementString("year", datItem.Machine.Year);
|
xtw.WriteRequiredElementString("year", datItem.Machine.Year);
|
||||||
xtw.WriteFullElementString("country", datItem.Machine.Country);
|
xtw.WriteRequiredElementString("country", datItem.Machine.Country);
|
||||||
|
|
||||||
xtw.Flush();
|
xtw.Flush();
|
||||||
}
|
}
|
||||||
@@ -740,7 +740,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case OpenMSXSubType.Rom:
|
case OpenMSXSubType.Rom:
|
||||||
case OpenMSXSubType.NULL:
|
case OpenMSXSubType.NULL:
|
||||||
xtw.WriteStartElement("rom");
|
xtw.WriteStartElement("rom");
|
||||||
xtw.WriteFullElementString("hash", rom.SHA1.ToLowerInvariant());
|
xtw.WriteRequiredElementString("hash", rom.SHA1.ToLowerInvariant());
|
||||||
xtw.WriteOptionalElementString("start", rom.Offset);
|
xtw.WriteOptionalElementString("start", rom.Offset);
|
||||||
xtw.WriteOptionalElementString("type", rom.OpenMSXType);
|
xtw.WriteOptionalElementString("type", rom.OpenMSXType);
|
||||||
xtw.WriteOptionalElementString("remark", rom.Remark);
|
xtw.WriteOptionalElementString("remark", rom.Remark);
|
||||||
@@ -749,7 +749,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
case OpenMSXSubType.MegaRom:
|
case OpenMSXSubType.MegaRom:
|
||||||
xtw.WriteStartElement("megarom");
|
xtw.WriteStartElement("megarom");
|
||||||
xtw.WriteFullElementString("hash", rom.SHA1.ToLowerInvariant());
|
xtw.WriteRequiredElementString("hash", rom.SHA1.ToLowerInvariant());
|
||||||
xtw.WriteOptionalElementString("start", rom.Offset);
|
xtw.WriteOptionalElementString("start", rom.Offset);
|
||||||
xtw.WriteOptionalElementString("type", rom.OpenMSXType);
|
xtw.WriteOptionalElementString("type", rom.OpenMSXType);
|
||||||
xtw.WriteOptionalElementString("remark", rom.Remark);
|
xtw.WriteOptionalElementString("remark", rom.Remark);
|
||||||
@@ -759,7 +759,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case OpenMSXSubType.SCCPlusCart:
|
case OpenMSXSubType.SCCPlusCart:
|
||||||
xtw.WriteStartElement("sccpluscart");
|
xtw.WriteStartElement("sccpluscart");
|
||||||
xtw.WriteOptionalElementString("boot", rom.Boot);
|
xtw.WriteOptionalElementString("boot", rom.Boot);
|
||||||
xtw.WriteFullElementString("hash", rom.SHA1.ToLowerInvariant());
|
xtw.WriteRequiredElementString("hash", rom.SHA1.ToLowerInvariant());
|
||||||
xtw.WriteOptionalElementString("remark", rom.Remark);
|
xtw.WriteOptionalElementString("remark", rom.Remark);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -663,13 +663,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
xtw.WriteStartElement("header");
|
xtw.WriteStartElement("header");
|
||||||
|
|
||||||
xtw.WriteFullElementString("name", Header.Name);
|
xtw.WriteRequiredElementString("name", Header.Name);
|
||||||
xtw.WriteFullElementString("description", Header.Description);
|
xtw.WriteRequiredElementString("description", Header.Description);
|
||||||
xtw.WriteOptionalElementString("rootdir", Header.RootDir);
|
xtw.WriteOptionalElementString("rootdir", Header.RootDir);
|
||||||
xtw.WriteOptionalElementString("category", Header.Category);
|
xtw.WriteOptionalElementString("category", Header.Category);
|
||||||
xtw.WriteFullElementString("version", Header.Version);
|
xtw.WriteRequiredElementString("version", Header.Version);
|
||||||
xtw.WriteOptionalElementString("date", Header.Date);
|
xtw.WriteOptionalElementString("date", Header.Date);
|
||||||
xtw.WriteFullElementString("author", Header.Author);
|
xtw.WriteRequiredElementString("author", Header.Author);
|
||||||
xtw.WriteOptionalElementString("comment", Header.Comment);
|
xtw.WriteOptionalElementString("comment", Header.Comment);
|
||||||
if (!string.IsNullOrWhiteSpace(Header.Type)
|
if (!string.IsNullOrWhiteSpace(Header.Type)
|
||||||
|| Header.ForcePacking != PackingFlag.None
|
|| Header.ForcePacking != PackingFlag.None
|
||||||
@@ -682,7 +682,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
xtw.WriteStartElement("flag");
|
xtw.WriteStartElement("flag");
|
||||||
xtw.WriteAttributeString("name", "type");
|
xtw.WriteAttributeString("name", "type");
|
||||||
xtw.WriteAttributeString("value", Header.Type);
|
xtw.WriteRequiredAttributeString("value", Header.Type);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -792,8 +792,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
for (int i = (last == -1 ? 0 : last); i < newsplit.Count; i++)
|
for (int i = (last == -1 ? 0 : last); i < newsplit.Count; i++)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("directory");
|
xtw.WriteStartElement("directory");
|
||||||
xtw.WriteAttributeString("name", newsplit[i]);
|
xtw.WriteRequiredAttributeString("name", newsplit[i]);
|
||||||
xtw.WriteAttributeString("description", newsplit[i]);
|
xtw.WriteRequiredAttributeString("description", newsplit[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
depth = depth - (last == -1 ? 0 : last) + newsplit.Count;
|
depth = depth - (last == -1 ? 0 : last) + newsplit.Count;
|
||||||
@@ -883,7 +883,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Archive:
|
case ItemType.Archive:
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "archive");
|
xtw.WriteAttributeString("type", "archive");
|
||||||
xtw.WriteAttributeString("name", datItem.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Name);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -891,7 +891,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var biosSet = datItem as BiosSet;
|
var biosSet = datItem as BiosSet;
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "biosset");
|
xtw.WriteAttributeString("type", "biosset");
|
||||||
xtw.WriteAttributeString("name", biosSet.Name);
|
xtw.WriteRequiredAttributeString("name", biosSet.Name);
|
||||||
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
xtw.WriteOptionalAttributeString("description", biosSet.Description);
|
||||||
xtw.WriteOptionalAttributeString("default", biosSet.Default.FromYesNo());
|
xtw.WriteOptionalAttributeString("default", biosSet.Default.FromYesNo());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
@@ -901,7 +901,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var disk = datItem as Disk;
|
var disk = datItem as Disk;
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "disk");
|
xtw.WriteAttributeString("type", "disk");
|
||||||
xtw.WriteAttributeString("name", disk.Name);
|
xtw.WriteRequiredAttributeString("name", disk.Name);
|
||||||
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
||||||
@@ -929,7 +929,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var release = datItem as Release;
|
var release = datItem as Release;
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "release");
|
xtw.WriteAttributeString("type", "release");
|
||||||
xtw.WriteAttributeString("name", release.Name);
|
xtw.WriteRequiredAttributeString("name", release.Name);
|
||||||
xtw.WriteOptionalAttributeString("region", release.Region);
|
xtw.WriteOptionalAttributeString("region", release.Region);
|
||||||
xtw.WriteOptionalAttributeString("language", release.Language);
|
xtw.WriteOptionalAttributeString("language", release.Language);
|
||||||
xtw.WriteOptionalAttributeString("date", release.Date);
|
xtw.WriteOptionalAttributeString("date", release.Date);
|
||||||
@@ -941,7 +941,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var rom = datItem as Rom;
|
var rom = datItem as Rom;
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "rom");
|
xtw.WriteAttributeString("type", "rom");
|
||||||
xtw.WriteAttributeString("name", rom.Name);
|
xtw.WriteRequiredAttributeString("name", rom.Name);
|
||||||
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
||||||
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
||||||
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
||||||
@@ -971,7 +971,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case ItemType.Sample:
|
case ItemType.Sample:
|
||||||
xtw.WriteStartElement("file");
|
xtw.WriteStartElement("file");
|
||||||
xtw.WriteAttributeString("type", "sample");
|
xtw.WriteAttributeString("type", "sample");
|
||||||
xtw.WriteAttributeString("name", datItem.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Name);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -734,8 +734,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteDocType("softwarelist", null, "softwarelist.dtd", null);
|
xtw.WriteDocType("softwarelist", null, "softwarelist.dtd", null);
|
||||||
|
|
||||||
xtw.WriteStartElement("softwarelist");
|
xtw.WriteStartElement("softwarelist");
|
||||||
xtw.WriteAttributeString("name", Header.Name);
|
xtw.WriteRequiredAttributeString("name", Header.Name);
|
||||||
xtw.WriteAttributeString("description", Header.Description);
|
xtw.WriteRequiredAttributeString("description", Header.Description);
|
||||||
|
|
||||||
switch (Header.ForcePacking)
|
switch (Header.ForcePacking)
|
||||||
{
|
{
|
||||||
@@ -802,7 +802,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
// Build the state
|
// Build the state
|
||||||
xtw.WriteStartElement("software");
|
xtw.WriteStartElement("software");
|
||||||
xtw.WriteAttributeString("name", datItem.Machine.Name);
|
xtw.WriteRequiredAttributeString("name", datItem.Machine.Name);
|
||||||
|
|
||||||
if (!string.Equals(datItem.Machine.Name, datItem.Machine.CloneOf, StringComparison.OrdinalIgnoreCase))
|
if (!string.Equals(datItem.Machine.Name, datItem.Machine.CloneOf, StringComparison.OrdinalIgnoreCase))
|
||||||
xtw.WriteOptionalAttributeString("cloneof", datItem.Machine.CloneOf);
|
xtw.WriteOptionalAttributeString("cloneof", datItem.Machine.CloneOf);
|
||||||
@@ -830,8 +830,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
foreach (ListXmlInfo kvp in datItem.Machine.Infos)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("info");
|
xtw.WriteStartElement("info");
|
||||||
xtw.WriteAttributeString("name", kvp.Name);
|
xtw.WriteRequiredAttributeString("name", kvp.Name);
|
||||||
xtw.WriteAttributeString("value", kvp.Value);
|
xtw.WriteRequiredAttributeString("value", kvp.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -841,8 +841,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
foreach (SoftwareListSharedFeature kvp in datItem.Machine.SharedFeatures)
|
foreach (SoftwareListSharedFeature kvp in datItem.Machine.SharedFeatures)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("sharedfeat");
|
xtw.WriteStartElement("sharedfeat");
|
||||||
xtw.WriteAttributeString("name", kvp.Name);
|
xtw.WriteRequiredAttributeString("name", kvp.Name);
|
||||||
xtw.WriteAttributeString("value", kvp.Value);
|
xtw.WriteRequiredAttributeString("value", kvp.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -852,16 +852,16 @@ namespace SabreTools.Library.DatFiles
|
|||||||
foreach (ListXmlDipSwitch dip in datItem.Machine.DipSwitches)
|
foreach (ListXmlDipSwitch dip in datItem.Machine.DipSwitches)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("dipswitch");
|
xtw.WriteStartElement("dipswitch");
|
||||||
xtw.WriteAttributeString("name", dip.Name);
|
xtw.WriteRequiredAttributeString("name", dip.Name);
|
||||||
xtw.WriteAttributeString("tag", dip.Tag);
|
xtw.WriteRequiredAttributeString("tag", dip.Tag);
|
||||||
xtw.WriteAttributeString("mask", dip.Mask);
|
xtw.WriteRequiredAttributeString("mask", dip.Mask);
|
||||||
|
|
||||||
foreach (ListXmlDipValue dipval in dip.Values)
|
foreach (ListXmlDipValue dipval in dip.Values)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("dipvalue");
|
xtw.WriteStartElement("dipvalue");
|
||||||
xtw.WriteAttributeString("name", dipval.Name);
|
xtw.WriteRequiredAttributeString("name", dipval.Name);
|
||||||
xtw.WriteAttributeString("value", dipval.Value);
|
xtw.WriteRequiredAttributeString("value", dipval.Value);
|
||||||
xtw.WriteAttributeString("default", dipval.Default == true ? "yes" : "no");
|
xtw.WriteRequiredAttributeString("default", dipval.Default == true ? "yes" : "no");
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -924,16 +924,16 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
// Build the state
|
// Build the state
|
||||||
xtw.WriteStartElement("part");
|
xtw.WriteStartElement("part");
|
||||||
xtw.WriteAttributeString("name", datItem.PartName);
|
xtw.WriteRequiredAttributeString("name", datItem.PartName);
|
||||||
xtw.WriteAttributeString("interface", datItem.PartInterface);
|
xtw.WriteRequiredAttributeString("interface", datItem.PartInterface);
|
||||||
|
|
||||||
if (datItem.Features != null && datItem.Features.Count > 0)
|
if (datItem.Features != null && datItem.Features.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (SoftwareListFeature kvp in datItem.Features)
|
foreach (SoftwareListFeature kvp in datItem.Features)
|
||||||
{
|
{
|
||||||
xtw.WriteStartElement("feature");
|
xtw.WriteStartElement("feature");
|
||||||
xtw.WriteAttributeString("name", kvp.Name);
|
xtw.WriteRequiredAttributeString("name", kvp.Name);
|
||||||
xtw.WriteAttributeString("value", kvp.Value);
|
xtw.WriteRequiredAttributeString("value", kvp.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -947,11 +947,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
areaName = "cdrom";
|
areaName = "cdrom";
|
||||||
|
|
||||||
xtw.WriteStartElement("diskarea");
|
xtw.WriteStartElement("diskarea");
|
||||||
xtw.WriteAttributeString("name", areaName);
|
xtw.WriteRequiredAttributeString("name", areaName);
|
||||||
xtw.WriteOptionalAttributeString("size", disk.AreaSize.ToString());
|
xtw.WriteOptionalAttributeString("size", disk.AreaSize.ToString());
|
||||||
|
|
||||||
xtw.WriteStartElement("disk");
|
xtw.WriteStartElement("disk");
|
||||||
xtw.WriteAttributeString("name", disk.Name);
|
xtw.WriteRequiredAttributeString("name", disk.Name);
|
||||||
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", disk.MD5.ToLowerInvariant());
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant());
|
||||||
@@ -974,13 +974,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
areaName = "rom";
|
areaName = "rom";
|
||||||
|
|
||||||
xtw.WriteStartElement("dataarea");
|
xtw.WriteStartElement("dataarea");
|
||||||
xtw.WriteAttributeString("name", areaName);
|
xtw.WriteRequiredAttributeString("name", areaName);
|
||||||
xtw.WriteOptionalAttributeString("size", rom.AreaSize.ToString());
|
xtw.WriteOptionalAttributeString("size", rom.AreaSize.ToString());
|
||||||
xtw.WriteOptionalAttributeString("width", rom.AreaWidth);
|
xtw.WriteOptionalAttributeString("width", rom.AreaWidth);
|
||||||
xtw.WriteOptionalAttributeString("endianness", rom.AreaEndianness);
|
xtw.WriteOptionalAttributeString("endianness", rom.AreaEndianness);
|
||||||
|
|
||||||
xtw.WriteStartElement("rom");
|
xtw.WriteStartElement("rom");
|
||||||
xtw.WriteAttributeString("name", rom.Name);
|
xtw.WriteRequiredAttributeString("name", rom.Name);
|
||||||
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
if (rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString());
|
||||||
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("crc", rom.CRC.ToLowerInvariant());
|
||||||
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
xtw.WriteOptionalAttributeString("md5", rom.MD5.ToLowerInvariant());
|
||||||
|
|||||||
@@ -7,7 +7,16 @@ namespace SabreTools.Library.IO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class XmlTextWriterExtensions
|
public static class XmlTextWriterExtensions
|
||||||
{
|
{
|
||||||
// TODO: Rename Full to Required, add one for attributes
|
/// <summary>
|
||||||
|
/// Write an attribute, forcing empty if null
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="writer">XmlTextWriter to write out with</param>
|
||||||
|
/// <param name="localName">Name of the element</param>
|
||||||
|
/// <param name="value">Value to write in the element</param>
|
||||||
|
public static void WriteRequiredAttributeString(this XmlTextWriter writer, string localName, string value)
|
||||||
|
{
|
||||||
|
writer.WriteAttributeString(localName, value ?? string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Force writing separate open and start tags, even for empty elements
|
/// Force writing separate open and start tags, even for empty elements
|
||||||
@@ -15,7 +24,7 @@ namespace SabreTools.Library.IO
|
|||||||
/// <param name="writer">XmlTextWriter to write out with</param>
|
/// <param name="writer">XmlTextWriter to write out with</param>
|
||||||
/// <param name="localName">Name of the element</param>
|
/// <param name="localName">Name of the element</param>
|
||||||
/// <param name="value">Value to write in the element</param>
|
/// <param name="value">Value to write in the element</param>
|
||||||
public static void WriteFullElementString(this XmlTextWriter writer, string localName, string value)
|
public static void WriteRequiredElementString(this XmlTextWriter writer, string localName, string value)
|
||||||
{
|
{
|
||||||
writer.WriteStartElement(localName);
|
writer.WriteStartElement(localName);
|
||||||
writer.WriteRaw(value ?? string.Empty);
|
writer.WriteRaw(value ?? string.Empty);
|
||||||
|
|||||||
Reference in New Issue
Block a user