Last active
January 30, 2025 17:42
-
-
Save smbarbour/b5287cce6f2b5d668a1cf9e45ce07413 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.mcupdater.com" xmlns:tns="http://www.mcupdater.com" elementFormDefault="qualified"> | |
<xs:element name="ServerPack"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element type="tns:ModPackType" name="ModPack" minOccurs="1" maxOccurs="unbounded"/> | |
</xs:sequence> | |
<xs:attribute type="xs:string" name="version" use="required" /> | |
</xs:complexType> | |
</xs:element> | |
<xs:complexType name="ModPackType"> | |
<xs:sequence> | |
<xs:element type="tns:PageType" name="Page" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:ServerListType" name="Server" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:ImportType" name="Import" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:LoaderType" name="Loader" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:ModuleType" name="Module" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:SimpleDownloadType" name="Resourcepack" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:SimpleDownloadType" name="Datapack" minOccurs="0" maxOccurs="unbounded" /> | |
<xs:element type="tns:SimpleDownloadType" name="Shaderpack" minOccurs="0" maxOccurs="unbounded" /> | |
</xs:sequence> | |
<xs:attribute type="xs:string" name="id" use="required" /> | |
<xs:attribute type="xs:boolean" name="abstract" use="optional" /> | |
<xs:attribute type="xs:string" name="name" use="required" /> | |
<xs:attribute type="xs:anyURI" name="iconUrl" use="optional" /> | |
<xs:attribute type="xs:string" name="mcVersion" use="required" /> | |
<xs:attribute type="xs:string" name="revision" use="required" /> | |
<xs:attribute type="xs:string" name="mainClass" use="optional" /> | |
<xs:attribute type="xs:string" name="launcherType" use="optional" default="Vanilla"/> | |
<xs:attribute type="xs:string" name="serverClass" use="optional" /> | |
<xs:attribute type="xs:string" name="libOverrides" use="optional" /> | |
</xs:complexType> | |
<xs:complexType name="ServerListType"> | |
<xs:attribute type="xs:integer" name="order" default="0"/> | |
<xs:attribute type="xs:string" name="name"/> | |
</xs:complexType> | |
<xs:complexType name="PageType"> | |
<xs:attribute type="xs:string" name="title" /> | |
<xs:attribute type="xs:anyURI" name="address"/> | |
</xs:complexType> | |
<xs:complexType name="ImportType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="xs:anyURI" name="url" /> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="LoaderType"> | |
<xs:sequence> | |
<!-- Allows for future extensible subelements --> | |
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" /> | |
</xs:sequence> | |
<xs:attribute name="type"> | |
<xs:simpleType> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="Forge"/> | |
<xs:enumeration value="NeoForge"/> | |
<!-- Future <xs:enumeration value="Fabric"/> --> | |
<!-- Future <xs:enumeration value="Quilt"/> --> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
<xs:attribute type="xs:string" name="version"/> | |
<xs:attribute type="xs:integer" name="loadOrder" default="0"/> | |
</xs:complexType> | |
<xs:complexType name="ModuleType"> | |
<xs:complexContent> | |
<xs:extension base="tns:BaseModuleType"> | |
<xs:sequence> | |
<xs:element type="tns:BaseModuleType" name="Submodule" minOccurs="0" maxOccurs="unbounded"/> | |
<xs:element type="tns:ConfigType" name="ConfigFile" minOccurs="0" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="BaseModuleType"> | |
<xs:complexContent> | |
<xs:extension base="tns:DownloadableType"> | |
<xs:sequence> | |
<xs:element type="xs:string" name="LoadPrefix" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="xs:string" name="ModPath" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="tns:RequiredType" name="Required" minOccurs="1" maxOccurs="1"/> | |
<xs:element type="tns:InstallType" name="Type" minOccurs="1" maxOccurs="1"/> | |
<xs:element type="tns:MetaType" name="Meta" minOccurs="0" maxOccurs="1"/> | |
</xs:sequence> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="ConfigType"> | |
<xs:complexContent> | |
<xs:extension base="tns:DownloadableType"> | |
<xs:sequence> | |
<xs:element type="xs:string" name="Path" /> | |
<xs:element type="xs:boolean" name="NoOverwrite" minOccurs="0"/> | |
</xs:sequence> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="InstallType"> | |
<xs:simpleContent> | |
<xs:extension base="tns:ModEnum"> | |
<xs:attribute type="xs:boolean" name="inRoot" /> | |
<xs:attribute type="xs:integer" name="order" /> | |
<xs:attribute type="xs:boolean" name="keepMeta" /> | |
<xs:attribute type="xs:string" name="launchArgs" /> | |
<xs:attribute type="xs:string" name="jreArgs" /> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="RequiredType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:boolean"> | |
<xs:attribute type="xs:boolean" name="isDefault"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="SimpleDownloadType"> | |
<xs:complexContent> | |
<xs:extension base="tns:DownloadableType"> | |
<xs:sequence> | |
<xs:element type="xs:string" name="FileName" minOccurs="1" maxOccurs="1"/> | |
</xs:sequence> | |
<xs:attribute type="xs:string" name="name"/> | |
</xs:extension> | |
</xs:complexContent> | |
</xs:complexType> | |
<xs:complexType name="DownloadableType"> | |
<xs:sequence> | |
<xs:element type="tns:PrioritizedURLType" name="URL" minOccurs="0" maxOccurs="unbounded"/> | |
<xs:element type="tns:RepositoryType" name="Repository" minOccurs="0" maxOccurs="unbounded"/> | |
<xs:element type="tns:HashType" name="Hash" minOccurs="0" maxOccurs="unbounded"/> | |
<xs:element type="xs:long" name="Size" minOccurs="0" maxOccurs="1"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="PrioritizedURLType"> | |
<xs:attribute type="xs:anyURI" name="address" use="required"/> | |
<xs:attribute type="xs:integer" name="priority" default="0"/> | |
</xs:complexType> | |
<xs:complexType name="RepositoryType"> | |
<xs:attribute type="xs:string" name="type" use="required"/> | |
<xs:attribute type="xs:string" name="project" /> | |
<xs:attribute type="xs:string" name="file" /> | |
</xs:complexType> | |
<xs:complexType name="HashType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="xs:string" name="algorithm" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="MetaType"> | |
<xs:sequence> | |
<!-- Metadata is freeform but the following are explicitly supported | |
<xs:element type="xs:string" name="version" minOccurs="0" /> | |
<xs:element type="xs:string" name="authors" minOccurs="0" /> | |
<xs:element type="xs:anyURI" name="URL" minOccurs="0" /> | |
<xs:element type="xs:string" name="description" minOccurs="0" /> | |
--> | |
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:simpleType name="ModEnum"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="Regular" /> | |
<xs:enumeration value="Library" /> | |
<xs:enumeration value="Coremod" /> | |
<xs:enumeration value="Jar" /> | |
<xs:enumeration value="Extract" /> | |
<xs:enumeration value="Litemod" /> | |
<!-- <xs:enumeration value="Option" /> --> | |
<xs:enumeration value="Removal" /> | |
<xs:enumeration value="Override" /> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:schema> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment