User:The Nerevarine/XML/schema/Quest.xsd

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

Documentation[edit]

The below code represents the shema for an Quest log. It contains data from the Chatter and the Quest (Journal) API.

The root elements[edit]

class name type multipicy
element Logging LoggingType 1..1

LoggingType[edit]

class name type multipicy remark
element LogEntry LogEntryType 0..*

LogEntryType[edit]

class name type multipicy remark
attribute timestamp time 1..1
attribute type string enumeration 1..1 One of "Chatter Begin", "Conversation Updated", "Chatter End", "Quest Complete Dialog", "Quest Advanced", "Quest Condition Counter Changed", "Quest Added", "Quest Removed", "Quest Complete Experience", "Quest Tool Updated", "Quest Optional Step Advanced" or "Objective Completed"
element EventData EventDataType 1..1
element QuestInfo QuestInfoType 0..1 Max one of the elements "QuestInfo", "QuestExperienceInfo", "ChatterInfo" or "ChatterFarewellInfo" is allowed to be present
element QuestExperienceInfo QuestExperienceInfoType 0..1 Max one of the elements "QuestInfo", "QuestExperienceInfo", "ChatterInfo" or "ChatterFarewellInfo" is allowed to be present
element ChatterInfo ChatterInfoType 0..1 Max one of the elements "QuestInfo", "QuestExperienceInfo", "ChatterInfo" or "ChatterFarewellInfo" is allowed to be present
element ChatterFarewellInfo ChatterFarewellInfoType 0..1 Max one of the elements "QuestInfo", "QuestExperienceInfo", "ChatterInfo" or "ChatterFarewellInfo" is allowed to be present

EventDataType[edit]

class name type multipicy remark
attribute type string 1..1
attribute code string 1..1
element isCompleted boolean 0..1
element journalIndex int 0..1 To my interpretation it is an index for the player's journal, so it is of no real general value as it may differ for everyone
element name string 0..1
element objectiveName string 0..1
element zoneIndex int 0..1
element poiIndex int 0..1
element text string 0..1
element optionCount int 0..1
element conditionText string 0..1
element conditionType int 0..1
element currConditionVal int 0..1
element newConditionVal int 0..1
element conditionMax int 0..1
element isFailCondition boolean 0..1
element stepOverrideText string 0..1
element isPushed boolean 0..1
element isComplete boolean 0..1
element isConditionComplete boolean 0..1
element isStepHidden boolean 0..1
element mainStepChanged boolean 0..1
element xpGained int 0..1

QuestInfoType[edit]

class name type multipicy remark
attribute level int 1..1
attribute type string enumeration 1..1 One of "AvA", "AvA Grand", "AvA Group", "Class", "Crafting", "Dungeon", "Group", "Guild", "Main Story", "None" or "Raid"
attribute completed boolean 1..1
attribute tracked boolean 1..1
attribute pushed boolean 1..1
element name string 1..1
element text string 0..1
element Location LocationType 1..1
element Timer TimerType 1..1
element Tool ToolType 1..*
element Step StepType 1..*

QuestExperienceInfoType[edit]

class name type multipicy remark
element name string 1..1
element xp int 1..1

ChatterInfoType[edit]

class name type multipicy remark
attribute id string 1..1
attribute greeting string 1..1
element text string 1..1
element Option OptionType 1..1

OptionType[edit]

class name type multipicy remark
attribute type int 1..1
attribute optionalArg int 1..1
attribute important boolean 1..1
attribute choosenBefore boolean 1..1

ChatterFarewellInfoType[edit]

class name type multipicy remark
element backToTOC string 1..1
element text string 1..1

LocationType[edit]

class name type multipicy remark
attribute zoneIndex int 1..1
attribute poiIndex int 1..1
element zone string 0..1
element objective string 0..1

TimerType[edit]

class name type multipicy remark
attribute start int 1..1
attribute end int 1..1
attribute visible boolean 1..1
attribute paused boolean 1..1

ToolType[edit]

class name type multipicy remark
attribute count int 1..1
attribute usable boolean 1..1
attribute remain string 1..1
attribute duration int 1..1
element icon string 0..1
element name string 0..1

StepType[edit]

class name type multipicy remark
attribute visibility string enumeration 1..1 One of "hidden", "hint", "optional" or ""
attribute type string enumeration 1..1 One of "and", "end" or "or"
element text string 1..1
element tracker string 0..1
element Condition ConditionType 1..*

ConditionType[edit]

class name type multipicy remark
attribute current int 1..1
attribute max int 1..1
attribute fail boolean 1..1 There are hints that this means "If max is reached, than the condition will be failed" instead of "The condition was failed". If it has the value false it then would mean "If max is reached, than the condition will be fulfilled". I have to investigate this further.
attribute complete boolean 1..1
attribute shared boolean 1..1
element text boolean 1..1
element item boolean 0..1

Code[edit]

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://org.example.esologging/quest"
        xmlns:tns="http://org.example.esologging/quest"
        elementFormDefault="qualified">
    
    <element name="Logging" type="tns:LoggingType" />

    <complexType name="LogEntryType">
        <sequence>
            <element name="EventData" type="tns:EventDataType" maxOccurs="1" minOccurs="1" />
            <choice maxOccurs="1" minOccurs="0">
                <element name="QuestInfo" type="tns:QuestInfoType" />
                <element name="QuestExperienceInfo" type="tns:QuestExperienceInfoType" />
                <element name="ChatterInfo" type="tns:ChatterInfoType" />
                <element name="ChatterFarewellInfo" type="tns:ChatterFarewellInfoType" />
            </choice>
        </sequence>
        <attribute name="timestamp" type="time" />
        <attribute name="type">
            <simpleType>
                <restriction base="string">
                    <enumeration value="Chatter Begin" />
                    <enumeration value="Conversation Updated" />
                    <enumeration value="Chatter End" />
                    <enumeration value="Quest Complete Dialog" />
                    <enumeration value="Quest Advanced" />
                    <enumeration value="Quest Condition Counter Changed" />
                    <enumeration value="Quest Added" />
                    <enumeration value="Quest Removed" />
                    <enumeration value="Quest Complete Experience" />
                    <enumeration value="Quest Tool Updated" />
                    <enumeration value="Quest Optional Step Advanced" />
                    <enumeration value="Objective Completed"v
                </restriction>
            </simpleType>
        </attribute>
    </complexType>

    <complexType name="QuestInfoType">
        <sequence>
            <element name="name" type="string" maxOccurs="1" minOccurs="1" />
            <element name="text" type="string" maxOccurs="1" minOccurs="0" />
            <element name="Location" type="tns:LocationType" maxOccurs="1" minOccurs="1" />
            <element name="Timer" type="tns:TimerType" />
            <element name="Tool" type="tns:ToolType" maxOccurs="unbounded" minOccurs="0" />
            <element name="Step" type="tns:StepType" maxOccurs="unbounded" minOccurs="0" />
        </sequence>
        <attribute name="level" type="int" />
        <attribute name="type">
            <simpleType>
                <restriction base="string">
                    <enumeration value="AvA" />
                    <enumeration value="AvA Grand" />
                    <enumeration value="AvA Group" />
                    <enumeration value="Class" />
                    <enumeration value="Crafting" />
                    <enumeration value="Dungeon" />
                    <enumeration value="Group" />
                    <enumeration value="Guild" />
                    <enumeration value="Main Story" />
                    <enumeration value="None" />
                    <enumeration value="Raid" />
                </restriction>
            </simpleType>
        </attribute>
        <attribute name="completed" type="boolean" />
        <attribute name="tracked" type="boolean" />
        <attribute name="pushed" type="boolean" />
    </complexType>

    <complexType name="ChatterInfoType">
        <sequence>
            <element name="text" type="string" maxOccurs="1" minOccurs="1" />
            <element name="Option" type="tns:OptionType" maxOccurs="unbounded" minOccurs="0" />
        </sequence>
        <attribute name="id" type="string" />
        <attribute name="greeting" type="string" />
    </complexType>

    <complexType name="LocationType">
        <sequence>
            <element name="zone" type="string" maxOccurs="1" minOccurs="0" />
            <element name="objective" type="string" maxOccurs="1" minOccurs="0" />
        </sequence>
        <attribute name="zoneIndex" type="int" />
        <attribute name="poiIndex" type="int" />
    </complexType>

    <complexType name="TimerType" mixed="true">
        <attribute name="start" type="int" />
        <attribute name="end" type="int" />
        <attribute name="visible" type="boolean" />
        <attribute name="paused" type="boolean" />
    </complexType>

    <complexType name="StepType">
        <sequence>
            <element name="text" type="string" maxOccurs="1" minOccurs="1" />
            <element name="tracker" type="string" maxOccurs="1" minOccurs="0" />
            <element name="Condition" type="tns:ConditionType" maxOccurs="unbounded" minOccurs="0" />
        </sequence>
        <attribute name="visibility">
            <simpleType>
                <restriction base="string">
                    <enumeration value="hidden" />
                    <enumeration value="hint" />
                    <enumeration value="optional" />
                    <enumeration value="" />
                </restriction>
            </simpleType>
        </attribute>
        <attribute name="type">
            <simpleType>
                <restriction base="string">
                    <enumeration value="and" />
                    <enumeration value="end" />
                    <enumeration value="or" />
                </restriction>
            </simpleType>
        </attribute>
    </complexType>

    <complexType name="ToolType">
        <sequence>
            <element name="icon" type="string" maxOccurs="1" minOccurs="0" />
            <element name="name" type="string" maxOccurs="1" minOccurs="0" />
        </sequence>
        <attribute name="count" type="int" />
        <attribute name="usable" type="boolean" />
        <attribute name="remain" type="string" />
        <attribute name="duration" type="int" />
    </complexType>

    <complexType name="ConditionType">
        <sequence>
            <element name="text" type="string" maxOccurs="1" minOccurs="1" />
            <element name="item" type="tns:itemType" maxOccurs="1" minOccurs="0" />
        </sequence>
        <attribute name="current" type="int" />
        <attribute name="max" type="int" />
        <attribute name="fail" type="boolean" />
        <attribute name="complete" type="boolean" />
        <attribute name="shared" type="boolean" />
    </complexType>

    <complexType name="itemType">
        <sequence>
            <element name="icon" type="string" maxOccurs="1" minOccurs="1" />
            <element name="name" type="string" maxOccurs="1" minOccurs="1" />
        </sequence>
        <attribute name="count" type="string" />
    </complexType>

    <complexType name="OptionType" mixed="true">
        <attribute name="type" type="int" />
        <attribute name="optionalArg" type="int" />
        <attribute name="important" type="boolean" />
        <attribute name="choosenBefore" type="boolean" />
    </complexType>
    
    <complexType name="LoggingType">
        <sequence>
            <element name="LogEntry" type="tns:LogEntryType" maxOccurs="unbounded" minOccurs="0" />
        </sequence>
    </complexType>

    <complexType name="QuestExperienceInfoType">
        <sequence>
            <element name="name" type="string" />
            <element name="xp" type="int" />
        </sequence>
    </complexType>

    <simpleType name="TestType">
        <restriction base="string" />
    </simpleType>

    <complexType name="EventDataType">
        <sequence>
            <element name="isCompleted" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="journalIndex" type="int" maxOccurs="1" minOccurs="0" />
            <element name="name" type="string" maxOccurs="1" minOccurs="0" />
            <element name="objectiveName" type="string" maxOccurs="1" minOccurs="0" />
            <element name="zoneIndex" type="int" maxOccurs="1" minOccurs="0" />
            <element name="poiIndex" type="int" maxOccurs="1" minOccurs="0" />
            <element name="text" type="string" maxOccurs="1" minOccurs="0" />
            <element name="optionCount" type="int" maxOccurs="1" minOccurs="0" />
            <element name="conditionText" type="string" maxOccurs="1" minOccurs="0" />
            <element name="conditionType" type="int" maxOccurs="1" minOccurs="0" />
            <element name="currConditionVal" type="int" maxOccurs="1" minOccurs="0" />
            <element name="newConditionVal" type="int" maxOccurs="1" minOccurs="0" />
            <element name="conditionMax" type="int" maxOccurs="1" minOccurs="0" />
            <element name="isFailCondition" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="stepOverrideText" type="string" maxOccurs="1" minOccurs="0" />
            <element name="isPushed" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="isComplete" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="isConditionComplete" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="isStepHidden" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="mainStepChanged" type="boolean" maxOccurs="1" minOccurs="0" />
            <element name="xpGained" type="int" maxOccurs="1" minOccurs="0" />
        </sequence>
        <attribute name="type" type="string" />
        <attribute name="code" type="string" />
    </complexType>

    <complexType name="ChatterFarewellInfoType">
        <sequence>
            <element name="backToTOC" type="string" />
            <element name="text" type="string" />
        </sequence>
    </complexType>
</schema>

Example(s)[edit]

TODO: fill in some