Fix and update xsd schemas

This commit is contained in:
Noah Pilarski 2024-05-24 03:07:41 -04:00
parent 34763884f2
commit 811299579e
3 changed files with 69 additions and 48 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Dialogue Tree --> <!-- Dialogue Tree -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Empty Type --> <!-- Empty Type -->
@ -8,7 +8,7 @@
<xs:element name="DialogueTree"> <xs:element name="DialogueTree">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="NameField" type="xs:string"> <xs:element name="NameField" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The name of the character, used for the interaction prompt. Set to `SIGN` for the prompt The name of the character, used for the interaction prompt. Set to `SIGN` for the prompt
@ -16,7 +16,7 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DialogueNode" type="DialogueNode" maxOccurs="unbounded"> <xs:element name="DialogueNode" type="DialogueNode" minOccurs="1" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The different nodes of this dialogue tree The different nodes of this dialogue tree
@ -30,7 +30,7 @@
<!-- Dialogue Node Info --> <!-- Dialogue Node Info -->
<xs:complexType name="DialogueNode"> <xs:complexType name="DialogueNode">
<xs:sequence> <xs:sequence>
<xs:element name="Name" type="xs:string"> <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The name of this dialogue node The name of this dialogue node
@ -45,28 +45,28 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Randomize" type="empty" minOccurs="0"> <xs:element name="Randomize" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
When used with multiple Dialogues, the node will choose a random one to show When used with multiple Dialogues, the node will choose a random one to show
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Dialogue" type="Dialogue" maxOccurs="unbounded"> <xs:element name="Dialogue" type="Dialogue" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The dialogue to show to the player The dialogue to show to the player
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DialogueOptionsList" type="DialogueOptionsList" minOccurs="0"> <xs:element name="DialogueOptionsList" type="DialogueOptionsList" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
A list of options to show to the player once the character is done talking A list of options to show to the player once the character is done talking
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RevealFacts" type="RevealFacts" minOccurs="0"> <xs:element name="RevealFacts" type="RevealFacts" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Facts to reveal when the player goes through this dialogue node Facts to reveal when the player goes through this dialogue node
@ -80,7 +80,7 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="SetPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="SetPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Set a new persistent condition that will last indefinitely in the current save, unless cancelled Set a new persistent condition that will last indefinitely in the current save, unless cancelled
@ -88,6 +88,13 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DisablePersistentCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Disable a set persistent condition from the current save
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTargetShipLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="DialogueTargetShipLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
@ -95,7 +102,7 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DialogueTarget" type="xs:string" minOccurs="0"> <xs:element name="DialogueTarget" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The name of the `DialogueNode` to go to after this node. Mutually exclusive with The name of the `DialogueNode` to go to after this node. Mutually exclusive with
@ -109,7 +116,7 @@
<!-- Dialogue Info --> <!-- Dialogue Info -->
<xs:complexType name="Dialogue"> <xs:complexType name="Dialogue">
<xs:sequence> <xs:sequence>
<xs:element name="Page" type="xs:string" maxOccurs="unbounded"> <xs:element name="Page" type="xs:string" minOccurs="1" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
A page of dialogue to show to the player A page of dialogue to show to the player
@ -122,7 +129,7 @@
<!-- Reveal Facts Info --> <!-- Reveal Facts Info -->
<xs:complexType name="RevealFacts"> <xs:complexType name="RevealFacts">
<xs:sequence> <xs:sequence>
<xs:element name="FactID" type="xs:string" maxOccurs="unbounded"> <xs:element name="FactID" type="xs:string" minOccurs="1" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ID of a fact to reveal The ID of a fact to reveal
@ -135,13 +142,20 @@
<!-- Dialogue Options List Info --> <!-- Dialogue Options List Info -->
<xs:complexType name="DialogueOptionsList"> <xs:complexType name="DialogueOptionsList">
<xs:sequence> <xs:sequence>
<xs:element name="DialogueOption" type="DialogueOption" maxOccurs="unbounded"> <xs:element name="DialogueOption" type="DialogueOption" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Options the player can select from Options the player can select from
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="ReuseDialogueOptionsListFrom" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Name of another DialogueNode whose options you want to repeat to avoid having to copy paste
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
@ -162,14 +176,14 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RequiredCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="RequiredCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Require a (single-loop) condition to be met to show this option Require a (single-loop) condition to be met to show this option
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="CancelledCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="CancelledCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Hide this option if a (single-loop) condition has been met Hide this option if a (single-loop) condition has been met
@ -183,28 +197,28 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Text" type="xs:string"> <xs:element name="Text" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The text to show for this option The text to show for this option
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="ConditionToSet" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="ConditionToSet" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Set a condition when this option is chosen Set a condition when this option is chosen
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="ConditionToCancel" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="ConditionToCancel" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Cancel a condition when this option is chosen Cancel a condition when this option is chosen
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DialogueTarget" type="xs:string" minOccurs="0"> <xs:element name="DialogueTarget" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The name of the `DialogueNode` to go to when this option is selected The name of the `DialogueNode` to go to when this option is selected

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Ship Log Entries --> <!-- Ship Log Entries -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Astro Object Entry Info --> <!-- Astro Object Entry Info -->
<xs:element name="AstroObjectEntry"> <xs:element name="AstroObjectEntry">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="ID" type="xs:string"> <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
ID of the planet these entries are for ID of the planet these entries are for
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Entry" type="Entry" maxOccurs="unbounded"> <xs:element name="Entry" type="Entry" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
A set of entries that belong to this planet A set of entries that belong to this planet
@ -29,49 +29,56 @@
<!-- Entry Info --> <!-- Entry Info -->
<xs:complexType name="Entry"> <xs:complexType name="Entry">
<xs:sequence> <xs:sequence>
<xs:element name="ID" type="xs:string"> <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ID of this entry The ID of this entry
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Name" type="xs:string"> <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Name of this entry Name of this entry
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Curiosity" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="Curiosity" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The curiosity this entry belongs to The curiosity this entry belongs to
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="IsCuriosity" type="empty" minOccurs="0" maxOccurs="unbounded"> <xs:element name="IsCuriosity" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Whether this entry is a curiosity Whether this entry is a curiosity
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0"> <xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Whether to hide the "More To Explore" text on this entry Whether to hide the "More To Explore" text on this entry
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="IgnoreMoreToExploreCondition" type="xs:string" minOccurs="0"> <xs:element name="ParentIgnoreNotRevealed" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
When the parent of this entry is determining whether its "More To Explore" text should appear, this child entry will be ignored.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IgnoreMoreToExploreCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Ignore more to explore if a persistent condition is `true` Ignore more to explore if a persistent condition is `true`
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="AltPhotoCondition" type="xs:string" minOccurs="0"> <xs:element name="AltPhotoCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
If this fact is revealed, show the Alt picture If this fact is revealed, show the Alt picture
@ -105,35 +112,35 @@
<!-- Rumor Fact Info --> <!-- Rumor Fact Info -->
<xs:complexType name="RumorFact"> <xs:complexType name="RumorFact">
<xs:sequence> <xs:sequence>
<xs:element name="ID" type="xs:string"> <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ID of this rumor fact The ID of this rumor fact
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="SourceID" type="xs:string" minOccurs="0"> <xs:element name="SourceID" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The source of this rumor, this draws a line in detective mode The source of this rumor, this draws a line in detective mode
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RumorName" type="xs:string" minOccurs="0"> <xs:element name="RumorName" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Displays on the card in detective mode if no ExploreFacts have been revealed on the parent entry Displays on the card in detective mode if no ExploreFacts have been revealed on the parent entry
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RumorNamePriority" type="xs:int" minOccurs="0"> <xs:element name="RumorNamePriority" type="xs:int" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Priority over other RumorFacts to appear as the entry card's title Priority over other RumorFacts to appear as the entry card's title
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0"> <xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Whether to hide the "More to explore" on this rumor fact Whether to hide the "More to explore" on this rumor fact
@ -147,14 +154,14 @@
<!-- Explore Fact Info --> <!-- Explore Fact Info -->
<xs:complexType name="ExploreFact"> <xs:complexType name="ExploreFact">
<xs:sequence> <xs:sequence>
<xs:element name="ID" type="xs:string"> <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ID of this explore fact The ID of this explore fact
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0"> <xs:element name="IgnoreMoreToExplore" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Whether to hide the "More to explore" text for this fact Whether to hide the "More to explore" text for this fact
@ -168,14 +175,14 @@
<!-- Text Data Group --> <!-- Text Data Group -->
<xs:group name="TextData"> <xs:group name="TextData">
<xs:sequence> <xs:sequence>
<xs:element name="Text" type="xs:string"> <xs:element name="Text" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The text content for this fact The text content for this fact
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="AltText" minOccurs="0"> <xs:element name="AltText" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
Display alt-text given a certain fact is revealed Display alt-text given a certain fact is revealed
@ -183,14 +190,14 @@
</xs:annotation> </xs:annotation>
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Text" type="xs:string"> <xs:element name="Text" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The text to display if the condition is met The text to display if the condition is met
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Condition" type="xs:string"> <xs:element name="Condition" type="xs:string" minOccurs="1" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The condition that needs to be fulfilled to have the alt text be displayed The condition that needs to be fulfilled to have the alt text be displayed

View File

@ -27,27 +27,27 @@
<!-- Text Block Info --> <!-- Text Block Info -->
<xs:complexType name="TextBlock"> <xs:complexType name="TextBlock">
<xs:sequence> <xs:sequence>
<xs:element name="ID" type="xs:positiveInteger"> <xs:element name="ID" type="xs:positiveInteger" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> The id of this text block </xs:documentation> <xs:documentation> The id of this text block </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="ParentID" type="xs:positiveInteger" minOccurs="0"> <xs:element name="ParentID" type="xs:positiveInteger" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> The id of the parent text block </xs:documentation> <xs:documentation> The id of the parent text block </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="LocationA" type="empty" minOccurs="0"> <xs:element name="LocationA" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> </xs:documentation> <xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="LocationB" type="empty" minOccurs="0"> <xs:element name="LocationB" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> </xs:documentation> <xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="Text" type="xs:string"> <xs:element name="Text" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> The text to show for this option </xs:documentation> <xs:documentation> The text to show for this option </xs:documentation>
</xs:annotation> </xs:annotation>
@ -58,17 +58,17 @@
<!-- Ship Log Conditions Info --> <!-- Ship Log Conditions Info -->
<xs:complexType name="ShipLogConditions"> <xs:complexType name="ShipLogConditions">
<xs:sequence> <xs:sequence>
<xs:element name="LocationA" type="empty" minOccurs="0"> <xs:element name="LocationA" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> </xs:documentation> <xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="LocationB" type="empty" minOccurs="0"> <xs:element name="LocationB" type="empty" minOccurs="0" maxOccurs="1">
<xs:annotation> <xs:annotation>
<xs:documentation> </xs:documentation> <xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RevealFact" type="RevealFact" minOccurs="0"> <xs:element name="RevealFact" type="RevealFact" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> Facts to reveal when the player goes through this dialogue <xs:documentation> Facts to reveal when the player goes through this dialogue
node </xs:documentation> node </xs:documentation>