Тип элемента X должен заканчиваться соответствующим закрывающим тегом.

Делаю мод на подземелья дредмора. Когда я запускаю код через средство проверки синтаксиса или средство форматирования, я получаю эту ошибку:

Невозможно проанализировать какой-либо ввод XML. Ошибка в строке 6: тип элемента "skillDB" должен оканчиваться соответствующим конечным тегом "</skillDB>".

Вот мой XML:

<skillDB>
<skill name="Gamblemancy" skillName="Gamblemancer" type="wizard" 
description="The magic of the felt. Will you heal your enemies? Hurt yourself? It's up to the dice! Or cards. Or slot machine"/>
    <art icon="\sprites\fillersprite.png" />
    <loadout type="booze" subtype="Deck Of Cards" />
</skill>
<ability>
    <name="Gamblemancy" icon="\sprites\fillersprite.png skillName="Gamblemancer" startSkill="1"
description="You are a gamblemancer! A holder of ultimate luck! And Debt!"/>
    <primarybuff id="5" amount="2" />
    <secondarybuff id="5" amount="2" />
</ability>
<ability>
    <name="Luck of the draw" icon="\sprites\fillersprite.png" skillName="Gamblemancer" level="0"
    description text="Pure luck courses through your veins! Except when it doesn't." />
    <criticalBuff percentage="90" name="Lucky shot" />
</ability>
<ability>
<name="Royal flush" icon="\sprites\fillersprite.png skillName="Gamblemancer" level="1"
description text="Royal Flush! You win! Except that you don't!" />
<spell name="Royal Flush" />
</ability>
<skill skillName="Another skill tree's name">
    <!--This is where some basic information about the skill tree goes-->
</skill>
  <ability skillName="Another skill tree's name" startSkill="1">
      <!--This is where the first level of the skill tree goes-->
  </ability>
  <ability skillName="Another skill tree's name" level="0">
      <!--This is where the second level of the skill tree goes-->
  </ability>
  <ability skillName="Another skill tree's name" level="1">
      <!--This is where the third level of the skill tree goes-->
  </ability>
 </skillDB>

1 ответ

В вашем XML есть несколько синтаксических проблем, в том числе:

  1. Первый skillЭлемент имеет открывающий тег, который самозакрывающийся, и закрывающий тег. Удалить / персонаж:

    <skill name="Gamblemancy" skillName="Gamblemancer" type="wizard"
           description="The magic of the felt. Will you heal your enemies? 
           Hurt yourself? It's up to the dice! Or cards. Or slot machine"/>
                                                                         ^
    

    или удалите конечный тег:

    </skill>
    
  2. В

  3. В значениях атрибутов отсутствуют закрывающие кавычки.

Их так много, что без схемы XML или образца известного действительного экземпляра документа трудно понять, как исправить. Вот одна, по крайней мере, хорошо сформированная возможность:

<skillDB>
  <skill name="Gamblemancy" skillName="Gamblemancer" type="wizard" 
         description="The magic of the felt. Will you heal your enemies? Hurt yourself? It's up to the dice! Or cards. Or slot machine">
    <art icon="\sprites\fillersprite.png"/>
    <loadout type="booze" subtype="Deck Of Cards"/>
    <ability>
      <NEEDTAG name="Gamblemancy" icon="\sprites\fillersprite.png" skillName="Gamblemancer" startSkill="1"
               description="You are a gamblemancer! A holder of ultimate luck! And Debt!"/>
      <primarybuff id="5" amount="2" />
      <secondarybuff id="5" amount="2" />
    </ability>
    <ability>
      <NEEDTAG name="Luck of the draw" icon="\sprites\fillersprite.png" skillName="Gamblemancer" level="0"
               description="Pure luck courses through your veins! Except when it doesn't." />
      <criticalBuff percentage="90" name="Lucky shot" />
    </ability>
    <ability>
      <NEEDTAG name="Royal flush" icon="\sprites\fillersprite.png" skillName="Gamblemancer" level="1"
               description="Royal Flush! You win! Except that you don't!" />
      <spell name="Royal Flush" />
    </ability>
  </skill>
  <skill skillName="Another skill tree's name">
    <!--This is where some basic information about the skill tree goes-->
  </skill>
  <ability skillName="Another skill tree's name" startSkill="1">
    <!--This is where the first level of the skill tree goes-->
  </ability>
  <ability skillName="Another skill tree's name" level="0">
    <!--This is where the second level of the skill tree goes-->
  </ability>
  <ability skillName="Another skill tree's name" level="1">
    <!--This is where the third level of the skill tree goes-->
  </ability>
</skillDB>
Другие вопросы по тегам