new-horizons/NewHorizons/dialogue_schema.xsd
Ben C 12ab04eb28
Added XML Schema Descriptions (#74)
* Added descriptions for astro object entry schema

* Added descriptions for the DialogueTree schema
2022-03-24 10:59:56 -04:00

140 lines
5.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Dialogue Tree -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Dialogue Tree Info -->
<xs:element name="DialogueTree">
<xs:complexType>
<xs:sequence>
<xs:element name="NameField" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the dialogue tree
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueNode" type="DialogueNode" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The different nodes of this dialogue tree
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Dialogue Node Info -->
<xs:complexType name="DialogueNode">
<xs:sequence>
<xs:element name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of this dialogue node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EntryCondition" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The condition that needs to be met in order to get to this node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Dialogue" type="Dialogue">
<xs:annotation>
<xs:documentation>
The dialogue to show to the player
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RevealFacts" type="RevealFacts" minOccurs="0">
<xs:annotation>
<xs:documentation>
Facts to reveal when the player sees this dialogue node
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueOptionsList" type="DialogueOptionsList" minOccurs="0">
<xs:annotation>
<xs:documentation>
A list of options to show to the player once the character is one talking
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Dialogue Info -->
<xs:complexType name="Dialogue">
<xs:sequence>
<xs:element name="Page" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
A page of dialogue to show to the player
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Reveal Facts Info -->
<xs:complexType name="RevealFacts">
<xs:sequence>
<xs:element name="FactID" type="xs:string" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The ID of a fact to reveal
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Dialogue Options List Info -->
<xs:complexType name="DialogueOptionsList">
<xs:sequence>
<xs:element name="DialogueOption" type="DialogueOption" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Options the player can select from
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Dialogue Option Info -->
<xs:complexType name="DialogueOption">
<xs:sequence>
<xs:element name="RequiredPersistentCondition" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Require a prior condition to be met to show this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CancelledPersistentCondition" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Hide this option if a condition has been met
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Text" type="xs:string">
<xs:annotation>
<xs:documentation>
The text to show for this option
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DialogueTarget" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the DialogueNode to go to when this option is selected
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>