mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Create Required attribute and tag properties
This commit is contained in:
@@ -5,7 +5,8 @@ namespace SabreTools.Models.AttractMode
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class MetadataFile
|
public class MetadataFile
|
||||||
{
|
{
|
||||||
public string[] Header { get; set; }
|
[Required]
|
||||||
|
public string[]? Header { get; set; }
|
||||||
|
|
||||||
public Row[]? Row { get; set; }
|
public Row[]? Row { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ namespace SabreTools.Models.AttractMode
|
|||||||
public class Row
|
public class Row
|
||||||
{
|
{
|
||||||
/// <remarks>Also called Romname</remarks>
|
/// <remarks>Also called Romname</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
public string? Title { get; set; }
|
public string? Title { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Archive
|
public class Archive
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class BiosSet
|
public class BiosSet
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>description</remarks>
|
/// <remarks>description</remarks>
|
||||||
public string Description { get; set; }
|
[Required]
|
||||||
|
public string? Description { get; set; }
|
||||||
|
|
||||||
/// <remarks>default</remarks>
|
/// <remarks>default</remarks>
|
||||||
public string? Default { get; set; }
|
public string? Default { get; set; }
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Chip
|
public class Chip
|
||||||
{
|
{
|
||||||
/// <remarks>type, (cpu|audio)</remarks>
|
/// <remarks>type, (cpu|audio)</remarks>
|
||||||
public string Type { get; set; }
|
[Required]
|
||||||
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>flags</remarks>
|
/// <remarks>flags</remarks>
|
||||||
public string? Flags { get; set; }
|
public string? Flags { get; set; }
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class DipSwitch
|
public class DipSwitch
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>entry</remarks>
|
/// <remarks>entry</remarks>
|
||||||
public string[]? Entry { get; set; }
|
public string[]? Entry { get; set; }
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Disk
|
public class Disk
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>md5</remarks>
|
/// <remarks>md5</remarks>
|
||||||
public string? MD5 { get; set; }
|
public string? MD5 { get; set; }
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Driver
|
public class Driver
|
||||||
{
|
{
|
||||||
/// <remarks>status, (good|imperfect|preliminary)</remarks>
|
/// <remarks>status, (good|imperfect|preliminary)</remarks>
|
||||||
public string Status { get; set; }
|
[Required]
|
||||||
|
public string? Status { get; set; }
|
||||||
|
|
||||||
/// <remarks>color, (good|imperfect|preliminary)</remarks>
|
/// <remarks>color, (good|imperfect|preliminary)</remarks>
|
||||||
public string? Color { get; set; }
|
public string? Color { get; set; }
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public abstract class GameBase
|
public abstract class GameBase
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>description</remarks>
|
/// <remarks>description</remarks>
|
||||||
public string? Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|||||||
@@ -3,14 +3,16 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
/// <remarks>input</remarks>
|
/// <remarks>input</remarks>
|
||||||
public class Input
|
public class Input
|
||||||
{
|
{
|
||||||
/// <remarks>players, Numeric?/remarks>
|
/// <remarks>players, Numeric/remarks>
|
||||||
public string Players { get; set; }
|
[Required]
|
||||||
|
public string? Players { get; set; }
|
||||||
|
|
||||||
/// <remarks>control</remarks>
|
/// <remarks>control</remarks>
|
||||||
public string? Control { get; set; }
|
public string? Control { get; set; }
|
||||||
|
|
||||||
/// <remarks>buttons, Numeric</remarks>
|
/// <remarks>buttons, Numeric</remarks>
|
||||||
public string Buttons { get; set; }
|
[Required]
|
||||||
|
public string? Buttons { get; set; }
|
||||||
|
|
||||||
/// <remarks>coins, Numeric</remarks>
|
/// <remarks>coins, Numeric</remarks>
|
||||||
public string? Coins { get; set; }
|
public string? Coins { get; set; }
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Media
|
public class Media
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>md5</remarks>
|
/// <remarks>md5</remarks>
|
||||||
public string? MD5 { get; set; }
|
public string? MD5 { get; set; }
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Release
|
public class Release
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>region</remarks>
|
/// <remarks>region</remarks>
|
||||||
public string Region { get; set; }
|
[Required]
|
||||||
|
public string? Region { get; set; }
|
||||||
|
|
||||||
/// <remarks>language</remarks>
|
/// <remarks>language</remarks>
|
||||||
public string? Language { get; set; }
|
public string? Language { get; set; }
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Rom
|
public class Rom
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>size, Numeric</remarks>
|
/// <remarks>size, Numeric</remarks>
|
||||||
public string Size { get; set; }
|
[Required]
|
||||||
|
public string? Size { get; set; }
|
||||||
|
|
||||||
/// <remarks>crc</remarks>
|
/// <remarks>crc</remarks>
|
||||||
public string? CRC { get; set; }
|
public string? CRC { get; set; }
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Sample
|
public class Sample
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Sound
|
public class Sound
|
||||||
{
|
{
|
||||||
/// <remarks>channels, Numeric?</remarks>
|
/// <remarks>channels, Numeric?</remarks>
|
||||||
public string Channels { get; set; }
|
[Required]
|
||||||
|
public string? Channels { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace SabreTools.Models.ClrMamePro
|
|||||||
public class Video
|
public class Video
|
||||||
{
|
{
|
||||||
/// <remarks>screen, (raster|vector)</remarks>
|
/// <remarks>screen, (raster|vector)</remarks>
|
||||||
public string Screen { get; set; }
|
[Required]
|
||||||
|
public string? Screen { get; set; }
|
||||||
|
|
||||||
/// <remarks>orientation, (vertical|horizontal)</remarks>
|
/// <remarks>orientation, (vertical|horizontal)</remarks>
|
||||||
public string Orientation { get; set; }
|
[Required]
|
||||||
|
public string? Orientation { get; set; }
|
||||||
|
|
||||||
/// <remarks>x, Numeric?</remarks>
|
/// <remarks>x, Numeric?</remarks>
|
||||||
public string? X { get; set; }
|
public string? X { get; set; }
|
||||||
|
|||||||
@@ -4,13 +4,16 @@ namespace SabreTools.Models.DosCenter
|
|||||||
public class File
|
public class File
|
||||||
{
|
{
|
||||||
/// <remarks>name, attribute</remarks>
|
/// <remarks>name, attribute</remarks>
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>size, attribute, numeric</remarks>
|
/// <remarks>size, attribute, numeric</remarks>
|
||||||
public string Size { get; set; }
|
[Required]
|
||||||
|
public string? Size { get; set; }
|
||||||
|
|
||||||
/// <remarks>crc, attribute</remarks>
|
/// <remarks>crc, attribute</remarks>
|
||||||
public string CRC { get; set; }
|
[Required]
|
||||||
|
public string? CRC { get; set; }
|
||||||
|
|
||||||
/// <remarks>date, attribute</remarks>
|
/// <remarks>date, attribute</remarks>
|
||||||
public string? Date { get; set; }
|
public string? Date { get; set; }
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace SabreTools.Models.DosCenter
|
|||||||
public class Game
|
public class Game
|
||||||
{
|
{
|
||||||
/// <remarks>name</remarks>
|
/// <remarks>name</remarks>
|
||||||
|
[Required]
|
||||||
public string? Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>file</remarks>
|
/// <remarks>file</remarks>
|
||||||
|
|||||||
@@ -5,15 +5,20 @@ namespace SabreTools.Models.EverdriveSMDB
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Row
|
public class Row
|
||||||
{
|
{
|
||||||
public string SHA256 { get; set; }
|
[Required]
|
||||||
|
public string? SHA256 { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
public string SHA1 { get; set; }
|
[Required]
|
||||||
|
public string? SHA1 { get; set; }
|
||||||
|
|
||||||
public string MD5 { get; set; }
|
[Required]
|
||||||
|
public string? MD5 { get; set; }
|
||||||
|
|
||||||
public string CRC32 { get; set; }
|
[Required]
|
||||||
|
public string? CRC32 { get; set; }
|
||||||
|
|
||||||
public string? Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class MD5
|
public class MD5
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SFV
|
public class SFV
|
||||||
{
|
{
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
|
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SHA1
|
public class SHA1
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SHA256
|
public class SHA256
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SHA384
|
public class SHA384
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SHA512
|
public class SHA512
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,8 +5,10 @@ namespace SabreTools.Models.Hashfile
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SpamSum
|
public class SpamSum
|
||||||
{
|
{
|
||||||
public string Hash { get; set; }
|
[Required]
|
||||||
|
public string? Hash { get; set; }
|
||||||
|
|
||||||
public string File { get; set; }
|
[Required]
|
||||||
|
public string? File { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,8 @@ namespace SabreTools.Models.Listrom
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Row
|
public class Row
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
[Required]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
public string? Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("adjuster")]
|
[XmlRoot("adjuster")]
|
||||||
public class Adjuster
|
public class Adjuster
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("analog")]
|
[XmlRoot("analog")]
|
||||||
public class Analog
|
public class Analog
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("mask")]
|
[XmlAttribute("mask")]
|
||||||
public string Mask { get; set; }
|
public string? Mask { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("biosset")]
|
[XmlRoot("biosset")]
|
||||||
public class BiosSet
|
public class BiosSet
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("description")]
|
[XmlAttribute("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,15 +6,17 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("chip")]
|
[XmlRoot("chip")]
|
||||||
public class Chip
|
public class Chip
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string? Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
/// <remarks>(cpu|audio)</remarks>
|
/// <remarks>(cpu|audio)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("type")]
|
[XmlAttribute("type")]
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>Only present in older versions</remarks>
|
/// <remarks>Only present in older versions</remarks>
|
||||||
[XmlAttribute("soundonly")]
|
[XmlAttribute("soundonly")]
|
||||||
|
|||||||
@@ -6,18 +6,22 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("condition")]
|
[XmlRoot("condition")]
|
||||||
public class Condition
|
public class Condition
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("mask")]
|
[XmlAttribute("mask")]
|
||||||
public string Mask { get; set; }
|
public string? Mask { get; set; }
|
||||||
|
|
||||||
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("relation")]
|
[XmlAttribute("relation")]
|
||||||
public string Relation { get; set; }
|
public string? Relation { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("conflocation")]
|
[XmlRoot("conflocation")]
|
||||||
public class ConfLocation
|
public class ConfLocation
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric?</remarks>
|
/// <remarks>Numeric?</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("number")]
|
[XmlAttribute("number")]
|
||||||
public string Number { get; set; }
|
public string? Number { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("inverted")]
|
[XmlAttribute("inverted")]
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("confsetting")]
|
[XmlRoot("confsetting")]
|
||||||
public class ConfSetting
|
public class ConfSetting
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("configuration")]
|
[XmlRoot("configuration")]
|
||||||
public class Configuration
|
public class Configuration
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("mask")]
|
[XmlAttribute("mask")]
|
||||||
public string? Mask { get; set; }
|
public string? Mask { get; set; }
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public class Control
|
public class Control
|
||||||
{
|
{
|
||||||
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
|
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("type")]
|
[XmlAttribute("type")]
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
[XmlAttribute("player")]
|
[XmlAttribute("player")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("device")]
|
[XmlRoot("device")]
|
||||||
public class Device
|
public class Device
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("type")]
|
[XmlAttribute("type")]
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string? Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("device_ref")]
|
[XmlRoot("device_ref")]
|
||||||
public class DeviceRef
|
public class DeviceRef
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("diplocation")]
|
[XmlRoot("diplocation")]
|
||||||
public class DipLocation
|
public class DipLocation
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric?</remarks>
|
/// <remarks>Numeric?</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("number")]
|
[XmlAttribute("number")]
|
||||||
public string Number { get; set; }
|
public string? Number { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("inverted")]
|
[XmlAttribute("inverted")]
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("dipswitch")]
|
[XmlRoot("dipswitch")]
|
||||||
public class DipSwitch
|
public class DipSwitch
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("mask")]
|
[XmlAttribute("mask")]
|
||||||
public string? Mask { get; set; }
|
public string? Mask { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("dipvalue")]
|
[XmlRoot("dipvalue")]
|
||||||
public class DipValue
|
public class DipValue
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("disk")]
|
[XmlRoot("disk")]
|
||||||
public class Disk
|
public class Disk
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>Only present in older versions</remarks>
|
/// <remarks>Only present in older versions</remarks>
|
||||||
[XmlAttribute("md5")]
|
[XmlAttribute("md5")]
|
||||||
|
|||||||
@@ -10,8 +10,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public string? Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
|
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("type")]
|
[XmlAttribute("type")]
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>(0|90|180|270)</remarks>
|
/// <remarks>(0|90|180|270)</remarks>
|
||||||
[XmlAttribute("rotate")]
|
[XmlAttribute("rotate")]
|
||||||
@@ -30,8 +31,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public string? Height { get; set; }
|
public string? Height { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("refresh")]
|
[XmlAttribute("refresh")]
|
||||||
public string Refresh { get; set; }
|
public string? Refresh { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
[XmlAttribute("pixclock")]
|
[XmlAttribute("pixclock")]
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public class Driver
|
public class Driver
|
||||||
{
|
{
|
||||||
/// <remarks>(good|imperfect|preliminary), (good|preliminary|test) in older versions</remarks>
|
/// <remarks>(good|imperfect|preliminary), (good|preliminary|test) in older versions</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("status")]
|
[XmlAttribute("status")]
|
||||||
public string Status { get; set; }
|
public string? Status { get; set; }
|
||||||
|
|
||||||
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
|
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
|
||||||
[XmlAttribute("color")]
|
[XmlAttribute("color")]
|
||||||
@@ -23,16 +24,19 @@ namespace SabreTools.Models.Listxml
|
|||||||
public string? PaletteSize { get; set; }
|
public string? PaletteSize { get; set; }
|
||||||
|
|
||||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("emulation")]
|
[XmlAttribute("emulation")]
|
||||||
public string Emulation { get; set; }
|
public string? Emulation { get; set; }
|
||||||
|
|
||||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("cocktail")]
|
[XmlAttribute("cocktail")]
|
||||||
public string Cocktail { get; set; }
|
public string? Cocktail { get; set; }
|
||||||
|
|
||||||
/// <remarks>(supported|unsupported)</remarks>
|
/// <remarks>(supported|unsupported)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("savestate")]
|
[XmlAttribute("savestate")]
|
||||||
public string SaveState { get; set; }
|
public string? SaveState { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("requiresartwork")]
|
[XmlAttribute("requiresartwork")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("extension")]
|
[XmlRoot("extension")]
|
||||||
public class Extension
|
public class Extension
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public class Feature
|
public class Feature
|
||||||
{
|
{
|
||||||
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("type")]
|
[XmlAttribute("type")]
|
||||||
public string Type { get; set; }
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>(unemulated|imperfect)</remarks>
|
/// <remarks>(unemulated|imperfect)</remarks>
|
||||||
[XmlAttribute("status")]
|
[XmlAttribute("status")]
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class GameBase
|
public abstract class GameBase
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>Machine only</remarks>
|
/// <remarks>Machine only</remarks>
|
||||||
[XmlAttribute("sourcefile")]
|
[XmlAttribute("sourcefile")]
|
||||||
@@ -40,8 +41,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlAttribute("sampleof")]
|
[XmlAttribute("sampleof")]
|
||||||
public string? SampleOf { get; set; }
|
public string? SampleOf { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("description")]
|
[XmlElement("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
[XmlElement("year")]
|
[XmlElement("year")]
|
||||||
public string? Year { get; set; }
|
public string? Year { get; set; }
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public string? Tilt { get; set; }
|
public string? Tilt { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("players")]
|
[XmlAttribute("players")]
|
||||||
public string Players { get; set; }
|
public string? Players { get; set; }
|
||||||
|
|
||||||
/// <remarks>Only present in older versions</remarks>
|
/// <remarks>Only present in older versions</remarks>
|
||||||
[XmlAttribute("control")]
|
[XmlAttribute("control")]
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("instance")]
|
[XmlRoot("instance")]
|
||||||
public class Instance
|
public class Instance
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("briefname")]
|
[XmlAttribute("briefname")]
|
||||||
public string BriefName { get; set; }
|
public string? BriefName { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace SabreTools.Models.Listxml
|
|||||||
|
|
||||||
[XmlElement("machine", typeof(Machine))]
|
[XmlElement("machine", typeof(Machine))]
|
||||||
[XmlElement("game", typeof(Game))]
|
[XmlElement("game", typeof(Game))]
|
||||||
public GameBase[] Game { get; set; }
|
public GameBase[]? Game { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlAttribute("debug")]
|
[XmlAttribute("debug")]
|
||||||
public string? Debug { get; set; }
|
public string? Debug { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("mameconfig")]
|
[XmlAttribute("mameconfig")]
|
||||||
public string MameConfig { get; set; }
|
public string? MameConfig { get; set; }
|
||||||
|
|
||||||
[XmlElement("machine", typeof(Machine))]
|
[XmlElement("machine", typeof(Machine))]
|
||||||
[XmlElement("game", typeof(Game))]
|
[XmlElement("game", typeof(Game))]
|
||||||
public GameBase[] Game { get; set; }
|
public GameBase[]? Game { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("port")]
|
[XmlRoot("port")]
|
||||||
public class Port
|
public class Port
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
[XmlElement("analog")]
|
[XmlElement("analog")]
|
||||||
public Analog[]? Analog { get; set; }
|
public Analog[]? Analog { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("ramoption")]
|
[XmlRoot("ramoption")]
|
||||||
public class RamOption
|
public class RamOption
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
public string? Default { get; set; }
|
public string? Default { get; set; }
|
||||||
|
|||||||
@@ -6,15 +6,17 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("rom")]
|
[XmlRoot("rom")]
|
||||||
public class Rom
|
public class Rom
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("bios")]
|
[XmlAttribute("bios")]
|
||||||
public string? Bios { get; set; }
|
public string? Bios { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("size")]
|
[XmlAttribute("size")]
|
||||||
public string Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("crc")]
|
[XmlAttribute("crc")]
|
||||||
public string? CRC { get; set; }
|
public string? CRC { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("sample")]
|
[XmlRoot("sample")]
|
||||||
public class Sample
|
public class Sample
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("slot")]
|
[XmlRoot("slot")]
|
||||||
public class Slot
|
public class Slot
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlElement("slotoption")]
|
[XmlElement("slotoption")]
|
||||||
public SlotOption[]? SlotOption { get; set; }
|
public SlotOption[]? SlotOption { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("slotoption")]
|
[XmlRoot("slotoption")]
|
||||||
public class SlotOption
|
public class SlotOption
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("devname")]
|
[XmlAttribute("devname")]
|
||||||
public string DevName { get; set; }
|
public string? DevName { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,15 +6,18 @@ namespace SabreTools.Models.Listxml
|
|||||||
[XmlRoot("softwarelist")]
|
[XmlRoot("softwarelist")]
|
||||||
public class SoftwareList
|
public class SoftwareList
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>(original|compatible)</remarks>
|
/// <remarks>(original|compatible)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("status")]
|
[XmlAttribute("status")]
|
||||||
public string Status { get; set; }
|
public string? Status { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("filter")]
|
[XmlAttribute("filter")]
|
||||||
public string? Filter { get; set; }
|
public string? Filter { get; set; }
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ namespace SabreTools.Models.Listxml
|
|||||||
public class Sound
|
public class Sound
|
||||||
{
|
{
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("channels")]
|
[XmlAttribute("channels")]
|
||||||
public string Channels { get; set; }
|
public string? Channels { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,14 @@ namespace SabreTools.Models.Listxml
|
|||||||
public class Video
|
public class Video
|
||||||
{
|
{
|
||||||
/// <remarks>(raster|vector)</remarks>
|
/// <remarks>(raster|vector)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("screen")]
|
[XmlAttribute("screen")]
|
||||||
public string Screen { get; set; }
|
public string? Screen { get; set; }
|
||||||
|
|
||||||
/// <remarks>(vertical|horizontal)</remarks>
|
/// <remarks>(vertical|horizontal)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("orientation")]
|
[XmlAttribute("orientation")]
|
||||||
public string Orientation { get; set; }
|
public string? Orientation { get; set; }
|
||||||
|
|
||||||
/// <remarks>Numeric</remarks>
|
/// <remarks>Numeric</remarks>
|
||||||
[XmlAttribute("width")]
|
[XmlAttribute("width")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("archive")]
|
[XmlRoot("archive")]
|
||||||
public class Archive
|
public class Archive
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("biosset")]
|
[XmlRoot("biosset")]
|
||||||
public class BiosSet
|
public class BiosSet
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("description")]
|
[XmlAttribute("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("device_ref")]
|
[XmlRoot("device_ref")]
|
||||||
public class DeviceRef
|
public class DeviceRef
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("dir")]
|
[XmlRoot("dir")]
|
||||||
public class Dir
|
public class Dir
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlElement("game", typeof(Game))]
|
[XmlElement("game", typeof(Game))]
|
||||||
[XmlElement("machine", typeof(Machine))]
|
[XmlElement("machine", typeof(Machine))]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("disk")]
|
[XmlRoot("disk")]
|
||||||
public class Disk
|
public class Disk
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("md5")]
|
[XmlAttribute("md5")]
|
||||||
public string? MD5 { get; set; }
|
public string? MD5 { get; set; }
|
||||||
|
|||||||
@@ -7,20 +7,24 @@ namespace SabreTools.Models.Logiqx
|
|||||||
public class Driver
|
public class Driver
|
||||||
{
|
{
|
||||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("status")]
|
[XmlAttribute("status")]
|
||||||
public string Status { get; set; }
|
public string? Status { get; set; }
|
||||||
|
|
||||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("emulation")]
|
[XmlAttribute("emulation")]
|
||||||
public string Emulation { get; set; }
|
public string? Emulation { get; set; }
|
||||||
|
|
||||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("cocktail")]
|
[XmlAttribute("cocktail")]
|
||||||
public string Cocktail { get; set; }
|
public string? Cocktail { get; set; }
|
||||||
|
|
||||||
/// <remarks>(supported|unsupported)</remarks>
|
/// <remarks>(supported|unsupported)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("savestate")]
|
[XmlAttribute("savestate")]
|
||||||
public string SaveState { get; set; }
|
public string? SaveState { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("requiresartwork")]
|
[XmlAttribute("requiresartwork")]
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class GameBase
|
public abstract class GameBase
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("sourcefile")]
|
[XmlAttribute("sourcefile")]
|
||||||
public string? SourceFile { get; set; }
|
public string? SourceFile { get; set; }
|
||||||
@@ -56,8 +57,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlElement("comment")]
|
[XmlElement("comment")]
|
||||||
public string[]? Comment { get; set; }
|
public string[]? Comment { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("description")]
|
[XmlElement("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
[XmlElement("year")]
|
[XmlElement("year")]
|
||||||
public string? Year { get; set; }
|
public string? Year { get; set; }
|
||||||
|
|||||||
@@ -10,11 +10,13 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlElement("id")]
|
[XmlElement("id")]
|
||||||
public string? Id { get; set; }
|
public string? Id { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("name")]
|
[XmlElement("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("description")]
|
[XmlElement("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
/// <remarks>Trurip extension</remarks>
|
/// <remarks>Trurip extension</remarks>
|
||||||
[XmlElement("rootdir")]
|
[XmlElement("rootdir")]
|
||||||
@@ -23,14 +25,16 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlElement("category")]
|
[XmlElement("category")]
|
||||||
public string? Category { get; set; }
|
public string? Category { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("version")]
|
[XmlElement("version")]
|
||||||
public string Version { get; set; }
|
public string? Version { get; set; }
|
||||||
|
|
||||||
[XmlElement("date")]
|
[XmlElement("date")]
|
||||||
public string? Date { get; set; }
|
public string? Date { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("author")]
|
[XmlElement("author")]
|
||||||
public string Author { get; set; }
|
public string? Author { get; set; }
|
||||||
|
|
||||||
[XmlElement("email")]
|
[XmlElement("email")]
|
||||||
public string? Email { get; set; }
|
public string? Email { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("media")]
|
[XmlRoot("media")]
|
||||||
public class Media
|
public class Media
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("md5")]
|
[XmlAttribute("md5")]
|
||||||
public string? MD5 { get; set; }
|
public string? MD5 { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("release")]
|
[XmlRoot("release")]
|
||||||
public class Release
|
public class Release
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("region")]
|
[XmlAttribute("region")]
|
||||||
public string Region { get; set; }
|
public string? Region { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("language")]
|
[XmlAttribute("language")]
|
||||||
public string? Language { get; set; }
|
public string? Language { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("rom")]
|
[XmlRoot("rom")]
|
||||||
public class Rom
|
public class Rom
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("size")]
|
[XmlAttribute("size")]
|
||||||
public string Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("crc")]
|
[XmlAttribute("crc")]
|
||||||
public string? CRC { get; set; }
|
public string? CRC { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("sample")]
|
[XmlRoot("sample")]
|
||||||
public class Sample
|
public class Sample
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
@@ -6,15 +6,18 @@ namespace SabreTools.Models.Logiqx
|
|||||||
[XmlRoot("softwarelist")]
|
[XmlRoot("softwarelist")]
|
||||||
public class SoftwareList
|
public class SoftwareList
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <remarks>(original|compatible)</remarks>
|
/// <remarks>(original|compatible)</remarks>
|
||||||
|
[Required]
|
||||||
[XmlAttribute("status")]
|
[XmlAttribute("status")]
|
||||||
public string Status { get; set; }
|
public string? Status { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("filter")]
|
[XmlAttribute("filter")]
|
||||||
public string? Filter { get; set; }
|
public string? Filter { get; set; }
|
||||||
|
|||||||
@@ -6,23 +6,28 @@ namespace SabreTools.Models.OpenMSX
|
|||||||
[XmlRoot("software")]
|
[XmlRoot("software")]
|
||||||
public class Software
|
public class Software
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlElement("title")]
|
[XmlElement("title")]
|
||||||
public string Title { get; set; }
|
public string? Title { get; set; }
|
||||||
|
|
||||||
[XmlElement("genmsxid")]
|
[XmlElement("genmsxid")]
|
||||||
public string? GenMSXID { get; set; }
|
public string? GenMSXID { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("system")]
|
[XmlElement("system")]
|
||||||
public string System { get; set; }
|
public string? System { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("company")]
|
[XmlElement("company")]
|
||||||
public string Company { get; set; }
|
public string? Company { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("year")]
|
[XmlElement("year")]
|
||||||
public string Year { get; set; }
|
public string? Year { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("country")]
|
[XmlElement("country")]
|
||||||
public string Country { get; set; }
|
public string? Country { get; set; }
|
||||||
|
|
||||||
[XmlElement("dump")]
|
[XmlElement("dump")]
|
||||||
public Dump[]? Dump { get; set; }
|
public Dump[]? Dump { get; set; }
|
||||||
|
|||||||
9
SabreTools.Models/RequiredAttribute.cs
Normal file
9
SabreTools.Models/RequiredAttribute.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
namespace SabreTools.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Marks a property as required on write
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>TODO: Use reflection to determine required fields on write</remarks>
|
||||||
|
[System.AttributeUsage(System.AttributeTargets.Property)]
|
||||||
|
public class RequiredAttribute : System.Attribute { }
|
||||||
|
}
|
||||||
@@ -2,7 +2,8 @@ namespace SabreTools.Models.SeparatedValue
|
|||||||
{
|
{
|
||||||
public class MetadataFile
|
public class MetadataFile
|
||||||
{
|
{
|
||||||
public string[] Header { get; set; }
|
[Required]
|
||||||
|
public string[]? Header { get; set; }
|
||||||
|
|
||||||
public Row[]? Row { get; set; }
|
public Row[]? Row { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,13 +15,15 @@ namespace SabreTools.Models.SeparatedValue
|
|||||||
public string? Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
/// <remarks>Game Name</remarks>
|
/// <remarks>Game Name</remarks>
|
||||||
public string GameName { get; set; }
|
[Required]
|
||||||
|
public string? GameName { get; set; }
|
||||||
|
|
||||||
/// <remarks>Game Description</remarks>
|
/// <remarks>Game Description</remarks>
|
||||||
public string? GameDescription { get; set; }
|
public string? GameDescription { get; set; }
|
||||||
|
|
||||||
/// <remarks>Type</remarks>
|
/// <remarks>Type</remarks>
|
||||||
public string Type { get; set; }
|
[Required]
|
||||||
|
public string? Type { get; set; }
|
||||||
|
|
||||||
/// <remarks>Rom Name</remarks>
|
/// <remarks>Rom Name</remarks>
|
||||||
public string? RomName { get; set; }
|
public string? RomName { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("dataarea")]
|
[XmlRoot("dataarea")]
|
||||||
public class DataArea
|
public class DataArea
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("size")]
|
[XmlAttribute("size")]
|
||||||
public string Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|
||||||
/// <remarks>(8|16|32|64) "8"</remarks>
|
/// <remarks>(8|16|32|64) "8"</remarks>
|
||||||
[XmlAttribute("width")]
|
[XmlAttribute("width")]
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("dipswitch")]
|
[XmlRoot("dipswitch")]
|
||||||
public class DipSwitch
|
public class DipSwitch
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("tag")]
|
[XmlAttribute("tag")]
|
||||||
public string Tag { get; set; }
|
public string? Tag { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("mask")]
|
[XmlAttribute("mask")]
|
||||||
public string? Mask { get; set; }
|
public string? Mask { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("dipvalue")]
|
[XmlRoot("dipvalue")]
|
||||||
public class DipValue
|
public class DipValue
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|
||||||
/// <remarks>(yes|no) "no"</remarks>
|
/// <remarks>(yes|no) "no"</remarks>
|
||||||
[XmlAttribute("default")]
|
[XmlAttribute("default")]
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("disk")]
|
[XmlRoot("disk")]
|
||||||
public class Disk
|
public class Disk
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("md5")]
|
[XmlAttribute("md5")]
|
||||||
public string? MD5 { get; set; }
|
public string? MD5 { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("diskarea")]
|
[XmlRoot("diskarea")]
|
||||||
public class DiskArea
|
public class DiskArea
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlElement("disk")]
|
[XmlElement("disk")]
|
||||||
public Disk[]? Disk { get; set; }
|
public Disk[]? Disk { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("feature")]
|
[XmlRoot("feature")]
|
||||||
public class Feature
|
public class Feature
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string? Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("info")]
|
[XmlRoot("info")]
|
||||||
public class Info
|
public class Info
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string? Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("part")]
|
[XmlRoot("part")]
|
||||||
public class Part
|
public class Part
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlAttribute("interface")]
|
[XmlAttribute("interface")]
|
||||||
public string Interface { get; set; }
|
public string? Interface { get; set; }
|
||||||
|
|
||||||
[XmlElement("feature")]
|
[XmlElement("feature")]
|
||||||
public Feature[]? Feature { get; set; }
|
public Feature[]? Feature { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("rom")]
|
[XmlRoot("rom")]
|
||||||
public class Rom
|
public class Rom
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("size")]
|
[XmlAttribute("size")]
|
||||||
public string? Size { get; set; }
|
public string? Size { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("sharedfeat")]
|
[XmlRoot("sharedfeat")]
|
||||||
public class SharedFeat
|
public class SharedFeat
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("value")]
|
[XmlAttribute("value")]
|
||||||
public string? Value { get; set; }
|
public string? Value { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("software")]
|
[XmlRoot("software")]
|
||||||
public class Software
|
public class Software
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("cloneof")]
|
[XmlAttribute("cloneof")]
|
||||||
public string? CloneOf { get; set; }
|
public string? CloneOf { get; set; }
|
||||||
@@ -16,14 +17,17 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlAttribute("supported")]
|
[XmlAttribute("supported")]
|
||||||
public string? Supported { get; set; }
|
public string? Supported { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("description")]
|
[XmlElement("description")]
|
||||||
public string Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("year")]
|
[XmlElement("year")]
|
||||||
public string Year { get; set; }
|
public string? Year { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
[XmlElement("publisher")]
|
[XmlElement("publisher")]
|
||||||
public string Publisher { get; set; }
|
public string? Publisher { get; set; }
|
||||||
|
|
||||||
[XmlElement("notes")]
|
[XmlElement("notes")]
|
||||||
public string? Notes { get; set; }
|
public string? Notes { get; set; }
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
[XmlRoot("softwarelist")]
|
[XmlRoot("softwarelist")]
|
||||||
public class SoftwareList
|
public class SoftwareList
|
||||||
{
|
{
|
||||||
|
[Required]
|
||||||
[XmlAttribute("name")]
|
[XmlAttribute("name")]
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[XmlAttribute("description")]
|
[XmlAttribute("description")]
|
||||||
public string? Description { get; set; }
|
public string? Description { get; set; }
|
||||||
@@ -16,7 +17,7 @@ namespace SabreTools.Models.SoftwareList
|
|||||||
public string? Notes { get; set; }
|
public string? Notes { get; set; }
|
||||||
|
|
||||||
[XmlElement("software")]
|
[XmlElement("software")]
|
||||||
public Software[] Software { get; set; }
|
public Software[]? Software { get; set; }
|
||||||
|
|
||||||
#region DO NOT USE IN PRODUCTION
|
#region DO NOT USE IN PRODUCTION
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user