mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Use Logiqx serializer for reading only
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -4,9 +4,21 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("archive")]
|
||||
public class Archive : ItemBase
|
||||
public class Archive
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("biosset")]
|
||||
public class BiosSet : ItemBase
|
||||
public class BiosSet
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
@@ -15,5 +15,17 @@ namespace SabreTools.Models.Logiqx
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
public string? Default { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,9 +4,21 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("device_ref")]
|
||||
public class DeviceRef : ItemBase
|
||||
public class DeviceRef
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("disk")]
|
||||
public class Disk : ItemBase
|
||||
public class Disk
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
@@ -29,5 +29,17 @@ namespace SabreTools.Models.Logiqx
|
||||
public string? Region { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("driver")]
|
||||
public class Driver : ItemBase
|
||||
public class Driver
|
||||
{
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[XmlAttribute("status")]
|
||||
@@ -37,5 +37,17 @@ namespace SabreTools.Models.Logiqx
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("incomplete")]
|
||||
public string? Incomplete { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -56,17 +56,35 @@ namespace SabreTools.Models.Logiqx
|
||||
[XmlElement("category")]
|
||||
public string[]? Category { get; set; }
|
||||
|
||||
[XmlElement("release", typeof(Release))]
|
||||
[XmlElement("biosset", typeof(BiosSet))]
|
||||
[XmlElement("rom", typeof(Rom))]
|
||||
[XmlElement("disk", typeof(Disk))]
|
||||
[XmlElement("media", typeof(Media))] // Aaru extension
|
||||
[XmlElement("device_ref", typeof(DeviceRef))] // MAME extension
|
||||
[XmlElement("sample", typeof(Sample))]
|
||||
[XmlElement("archive", typeof(Archive))]
|
||||
[XmlElement("driver", typeof(Driver))] // MAME extension
|
||||
[XmlElement("softwarelist", typeof(SoftwareList))] // MAME extension
|
||||
public ItemBase[]? Item { get; set; }
|
||||
[XmlElement(elementName: "release")]
|
||||
public Release[]? Release { get; set; }
|
||||
|
||||
[XmlElement("biosset")]
|
||||
public BiosSet[]? BiosSet { get; set; }
|
||||
|
||||
[XmlElement("rom")]
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
[XmlElement("disk")]
|
||||
public Disk[]? Disk { get; set; }
|
||||
|
||||
[XmlElement("media")] // Aaru extension
|
||||
public Media[]? Media { get; set; }
|
||||
|
||||
[XmlElement("device_ref")] // MAME extension
|
||||
public DeviceRef[]? DeviceRef { get; set; }
|
||||
|
||||
[XmlElement("sample")]
|
||||
public Sample[]? Sample { get; set; }
|
||||
|
||||
[XmlElement("archive")]
|
||||
public Archive[]? Archive { get; set; }
|
||||
|
||||
[XmlElement("driver")] // MAME extension
|
||||
public Driver[]? Driver { get; set; }
|
||||
|
||||
[XmlElement("softwarelist")] // MAME extension
|
||||
public SoftwareList[]? SoftwareList { get; set; }
|
||||
|
||||
#region MAME Extensions
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class to unify the various item types
|
||||
/// </summary>
|
||||
public abstract class ItemBase
|
||||
{
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("media")]
|
||||
public class Media : ItemBase
|
||||
public class Media
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
@@ -20,5 +20,17 @@ namespace SabreTools.Models.Logiqx
|
||||
|
||||
[XmlAttribute("spamsum")]
|
||||
public string? SpamSum { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("release")]
|
||||
public class Release : ItemBase
|
||||
public class Release
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
@@ -21,5 +21,17 @@ namespace SabreTools.Models.Logiqx
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
public string? Default { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,13 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("rom")]
|
||||
public class Rom : ItemBase
|
||||
public class Rom
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlAttribute("size")]
|
||||
public long Size { get; set; }
|
||||
public string Size { get; set; }
|
||||
|
||||
[XmlAttribute("crc")]
|
||||
public string? CRC { get; set; }
|
||||
@@ -86,5 +86,17 @@ namespace SabreTools.Models.Logiqx
|
||||
public string? MIA { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,9 +4,21 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("sample")]
|
||||
public class Sample : ItemBase
|
||||
public class Sample
|
||||
{
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Xml.Serialization;
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("softwarelist")]
|
||||
public class SoftwareList : ItemBase
|
||||
public class SoftwareList
|
||||
{
|
||||
[XmlAttribute("tag")]
|
||||
public string Tag { get; set; }
|
||||
@@ -18,5 +18,17 @@ namespace SabreTools.Models.Logiqx
|
||||
|
||||
[XmlAttribute("filter")]
|
||||
public string? Filter { get; set; }
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -541,7 +541,61 @@ namespace SabreTools.Test.Parser
|
||||
Assert.Null(game.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(game.ADDITIONAL_ELEMENTS);
|
||||
|
||||
foreach (var item in game.Item ?? Array.Empty<Models.Logiqx.ItemBase>())
|
||||
foreach (var item in game.Release ?? Array.Empty<Models.Logiqx.Release>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.BiosSet ?? Array.Empty<Models.Logiqx.BiosSet>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Rom ?? Array.Empty<Models.Logiqx.Rom>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Disk ?? Array.Empty<Models.Logiqx.Disk>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Media ?? Array.Empty<Models.Logiqx.Media>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.DeviceRef ?? Array.Empty<Models.Logiqx.DeviceRef>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Sample ?? Array.Empty<Models.Logiqx.Sample>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Archive ?? Array.Empty<Models.Logiqx.Archive>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Driver ?? Array.Empty<Models.Logiqx.Driver>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.SoftwareList ?? Array.Empty<Models.Logiqx.SoftwareList>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
@@ -562,7 +616,61 @@ namespace SabreTools.Test.Parser
|
||||
Assert.Null(game.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(game.ADDITIONAL_ELEMENTS);
|
||||
|
||||
foreach (var item in game.Item ?? Array.Empty<Models.Logiqx.ItemBase>())
|
||||
foreach (var item in game.Release ?? Array.Empty<Models.Logiqx.Release>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.BiosSet ?? Array.Empty<Models.Logiqx.BiosSet>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Rom ?? Array.Empty<Models.Logiqx.Rom>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Disk ?? Array.Empty<Models.Logiqx.Disk>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Media ?? Array.Empty<Models.Logiqx.Media>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.DeviceRef ?? Array.Empty<Models.Logiqx.DeviceRef>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Sample ?? Array.Empty<Models.Logiqx.Sample>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Archive ?? Array.Empty<Models.Logiqx.Archive>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.Driver ?? Array.Empty<Models.Logiqx.Driver>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
}
|
||||
|
||||
foreach (var item in game.SoftwareList ?? Array.Empty<Models.Logiqx.SoftwareList>())
|
||||
{
|
||||
Assert.Null(item.ADDITIONAL_ATTRIBUTES);
|
||||
Assert.Null(item.ADDITIONAL_ELEMENTS);
|
||||
|
||||
Reference in New Issue
Block a user