Fix and update xsd schemas (#866)

## Improvements

- Added ReuseDialogueOptionsListFrom, DisablePersistentCondition, and
ParentIgnoreNotRevealed to their respective schemas
- Specify (and also correct some) minOccurs & maxOccurs on EVERYTHING
(this one is for you visual studio)

- Rearranged things to better match the xmls from vanilla
This commit is contained in:
Noah Pilarski 2024-05-30 23:49:40 -04:00 committed by GitHub
commit fb9e10fee7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 96 additions and 75 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,34 +45,35 @@
</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="RevealFacts" type="RevealFacts" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
A list of options to show to the player once the character is done talking
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RevealFacts" type="RevealFacts" minOccurs="0">
<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
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="SetPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Set a new persistent condition that will last indefinitely in the current save, unless cancelled
or deleted
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SetCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="SetCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
@ -80,11 +81,10 @@
</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="DisablePersistentCondition" 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 Disable a set persistent condition from the current save
or deleted
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
@ -95,7 +95,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
@ -103,13 +103,20 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="DialogueOptionsList" type="DialogueOptionsList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
A list of options to show to the player once the character is done talking
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
<!-- 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,19 +142,33 @@
<!-- 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>
<!-- Dialogue Option Info --> <!-- Dialogue Option Info -->
<xs:complexType name="DialogueOption"> <xs:complexType name="DialogueOption">
<xs:sequence> <xs:sequence>
<xs:element name="RequiredLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Require a ship log fact to be known to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RequiredPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="RequiredPersistentCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
@ -162,55 +183,48 @@
</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
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="RequiredLogCondition" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:element name="Text" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Require a ship log fact to be known to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Text" type="xs:string">
<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="DialogueTarget" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Set a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ConditionToCancel" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Cancel a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTarget" type="xs:string" minOccurs="0">
<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
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="ConditionToSet" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Set a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ConditionToCancel" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Cancel a condition when this option is chosen
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:schema> </xs:schema>

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>