Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Working with XML Schema for the first time. Could someone go over my document an

ID: 3828594 • Letter: W

Question

Working with XML Schema for the first time. Could someone go over my document and see if it is put together correctly? I will paste both schema and xml.

XML:

<?xml version="1.0" encoding="utf-8" ?>
<Data>
<Sections>
<Section ID="NPCs"/>
<Section ID="Classes" />
<Section ID="Abilities" />
</Sections>
<Abilities>
<Ability ID="ABI_01">
<DisplayName>Fireball</DisplayName>
<FlavorText>Goodness gracious, great balls of fire.</FlavorText>
<ScriptID>Fireball.py</ScriptID>
</Ability>
<Ability ID="ABI_03">
<DisplayName>Deadly Strike</DisplayName>
<FlavorText>Strike the target in the heart, twice.</FlavorText>
<ScriptID>DeadStrike.py</ScriptID>
</Ability>
<Ability ID="ABI_02">
<DisplayName>Gut Punch</DisplayName>
<FlavorText>Punch your target in the gut.</FlavorText>
<ScriptID>GutPunch.py</ScriptID>
</Ability>
</Abilities>
<Classes>
<Class ID="CLS_01">
<DisplayName>Fighter</DisplayName>
<Abilities>
<Ability>ABI_02</Ability>
</Abilities>
</Class>
<Class ID="CLS_02">
<DisplayName>Wizard</DisplayName>
<Abilities>
<Ability>ABI_01</Ability>
</Abilities>
</Class>
<Class ID="CLS_03">
<DisplayName>Monk</DisplayName>
<Abilities>
<Ability>ABI_02</Ability>
</Abilities>
</Class>
<Class ID="CLS_04">
<DisplayName>BattleMage</DisplayName>
<Abilities>
<Ability>ABI_01</Ability>
<Ability>ABI_03</Ability>
</Abilities>
</Class>
</Classes>
<NPCs>
<NPC ID="NPC_01">
<DisplayName>Fisher Bob</DisplayName>
<Race>Human</Race>
<ClassID>CLS_01</ClassID>
<Level>20</Level>
<isAttackable>false</isAttackable>
<AppearanceID>APP_23</AppearanceID>
<Stats>
<Stat ID="ATK">
<Value>100</Value>
</Stat>
<Stat ID="DEF">
<Value>120</Value>
</Stat>
</Stats>
</NPC>
<NPC ID="NPC_02">
<DisplayName>Captain Adventure</DisplayName>
<Race>Yeti</Race>
<ClassID>CLS_03</ClassID>
<Level>99</Level>
<isAttackable>false</isAttackable>
<AppearanceID>APP_910</AppearanceID>
<Stats>
<Stat ID="ATK">
<Value>200</Value>
</Stat>
<Stat ID="DEF">
<Value>500</Value>
</Stat>
</Stats>
</NPC>
</NPCs>
<AttackableValue>
   <Value>true</Value>
   <Value>false</Value>
</AttackableValue>
<Races>
   <race>Elf</race>
   <race>Dwarf</race>
   <race>Human</race>
   <race>Halfling</race>
   <race>Troll</race>
</Races>
<Stats>
<Stat ID="ATK">
<Value>0</Value>
</Stat>
<Stat ID="DEF">
<Value>0</Value>
</Stat>
</Stats>
</Data>

Shema:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema"
targetNamespace="http://tempuri.org/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/XMLSchema.xsd"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
   <xs:element name="Data">
       <xs:complexType>
           <xs:sequence>
               <xs:element name="Sections">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="Section" maxOccurs="unbounded">
                               <xs:complexType>
                                   <xs:attribute name="ID" type="xs:string"></xs:attribute>
                               </xs:complexType>
                           </xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="Abilities">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="Ability" maxOccurs="unbounded">
                               <xs:complexType>
                                   <xs:sequence>
                                       <xs:element name="DisplayName" type="xs:string"></xs:element>
                                       <xs:element name="FlavorText" type="xs:string"></xs:element>
                                       <xs:element name="ScriptID" type="xs:string"></xs:element>
                                   </xs:sequence>
                                   <xs:attribute name="ID" type="xs:string"></xs:attribute>
                               </xs:complexType>
                           </xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="Classes">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="Class" maxOccurs="unbounded">
                               <xs:complexType>
                                   <xs:sequence>
                                       <xs:element name="DisplayName" type="xs:string"></xs:element>
                                       <xs:element name="Abilities">
                                           <xs:complexType>
                                               <xs:sequence>
                                                   <xs:element name="Ability" type="xs:string"></xs:element>
                                               </xs:sequence>
                                           </xs:complexType>
                                       </xs:element>
                                   </xs:sequence>
                                   <xs:attribute name="ID" type="xs:string"></xs:attribute>
                               </xs:complexType>
                           </xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="NPCs">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="NPC" maxOccurs="unbounded">
                               <xs:complexType>
                                   <xs:sequence>
                                       <xs:element name="DisplayName" type="xs:string"></xs:element>
                                       <xs:element name="Race" type="xs:string"></xs:element>
                                       <xs:element name="ClassID" type="xs:string"></xs:element>
                                       <xs:element name="Level" type="xs:int"></xs:element>
                                       <xs:element name="isAttackable" type="xs:string"></xs:element>
                                       <xs:element name="AppearanceID" type="xs:string"></xs:element>
                                       <xs:element name="Stats">
                                           <xs:complexType>
                                               <xs:sequence>
                                                   <xs:element name="Stat" maxOccurs="unbounded">
                                                       <xs:complexType>
                                                           <xs:sequence>
                                                               <xs:element name="Value" type="xs:int"></xs:element>
                                                           </xs:sequence>
                                                           <xs:attribute name="ID" type="xs:string"></xs:attribute>
                                                       </xs:complexType>
                                                   </xs:element>
                                               </xs:sequence>
                                           </xs:complexType>
                                       </xs:element>
                                   </xs:sequence>
                                   <xs:attribute name="ID" type="xs:string"></xs:attribute>
                               </xs:complexType>
                           </xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="AttackableValue">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="Value" maxOccurs="unbounded" type="xs:string"></xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="Races">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="race" maxOccurs="unbounded" type="xs:string"></xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
               <xs:element name="Stats">
                   <xs:complexType>
                       <xs:sequence>
                           <xs:element name="Stat" maxOccurs="unbounded">
                               <xs:complexType>
                                   <xs:sequence>
                                       <xs:element name="Value" type="xs:int"></xs:element>
                                   </xs:sequence>
                                   <xs:attribute name="ID" type="xs:string"></xs:attribute>
                               </xs:complexType>
                           </xs:element>
                       </xs:sequence>
                   </xs:complexType>
               </xs:element>
           </xs:sequence>
       </xs:complexType>
   </xs:element>
</xs:schema>

Explanation / Answer

Hi,
I have validated the Schena file in Eclipse. This is correct.

Also I have validated the XML against the xsd, in eclipse. This is alse correct:

XML:

<?xml version="1.0" encoding="utf-8" ?>
<Data>
<Sections>
<Section ID="NPCs"/>
<Section ID="Classes" />
<Section ID="Abilities" />
</Sections>
<Abilities>
<Ability ID="ABI_01">
<DisplayName>Fireball</DisplayName>
<FlavorText>Goodness gracious, great balls of fire.</FlavorText>
<ScriptID>Fireball.py</ScriptID>
</Ability>
<Ability ID="ABI_03">
<DisplayName>Deadly Strike</DisplayName>
<FlavorText>Strike the target in the heart, twice.</FlavorText>
<ScriptID>DeadStrike.py</ScriptID>
</Ability>
<Ability ID="ABI_02">
<DisplayName>Gut Punch</DisplayName>
<FlavorText>Punch your target in the gut.</FlavorText>
<ScriptID>GutPunch.py</ScriptID>
</Ability>
</Abilities>
<Classes>
<Class ID="CLS_01">
<DisplayName>Fighter</DisplayName>
<Abilities>
<Ability>ABI_02</Ability>
</Abilities>
</Class>
<Class ID="CLS_02">
<DisplayName>Wizard</DisplayName>
<Abilities>
<Ability>ABI_01</Ability>
</Abilities>
</Class>
<Class ID="CLS_03">
<DisplayName>Monk</DisplayName>
<Abilities>
<Ability>ABI_02</Ability>
</Abilities>
</Class>
<Class ID="CLS_04">
<DisplayName>BattleMage</DisplayName>
<Abilities>
<Ability>ABI_01</Ability>
<Ability>ABI_03</Ability>
</Abilities>
</Class>
</Classes>
<NPCs>
<NPC ID="NPC_01">
<DisplayName>Fisher Bob</DisplayName>
<Race>Human</Race>
<ClassID>CLS_01</ClassID>
<Level>20</Level>
<isAttackable>false</isAttackable>
<AppearanceID>APP_23</AppearanceID>
<Stats>
<Stat ID="ATK">
<Value>100</Value>
</Stat>
<Stat ID="DEF">
<Value>120</Value>
</Stat>
</Stats>
</NPC>
<NPC ID="NPC_02">
<DisplayName>Captain Adventure</DisplayName>
<Race>Yeti</Race>
<ClassID>CLS_03</ClassID>
<Level>99</Level>
<isAttackable>false</isAttackable>
<AppearanceID>APP_910</AppearanceID>
<Stats>
<Stat ID="ATK">
<Value>200</Value>
</Stat>
<Stat ID="DEF">
<Value>500</Value>
</Stat>
</Stats>
</NPC>
</NPCs>
<AttackableValue>
<Value>true</Value>
<Value>false</Value>
</AttackableValue>
<Races>
<race>Elf</race>
<race>Dwarf</race>
<race>Human</race>
<race>Halfling</race>
<race>Troll</race>
</Races>
<Stats>
<Stat ID="ATK">
<Value>0</Value>
</Stat>
<Stat ID="DEF">
<Value>0</Value>
</Stat>
</Stats>
</Data>

Thanks,

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote