Неправильно Заполняется Xml По Xsd

  • Автор темы Aldegid
  • Дата начала
A

Aldegid

#1
Всем привет.

Делаю игровой проект. Хочу хранить уровни в xml. Так как уровней планируется определенное количество, то решил сделать xsd схему.

level.xsd
Код:
<xs:schema targetNamespace="cp:level" xmlns="cp:level" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:NS="cp:level">
<xs:element name="Level">
<xs:complexType>
<xs:sequence>
<xs:element ref="Background"/>
<xs:element ref="Parameters"/>
<xs:element ref="Balloons"/>
<!--<xs:element ref="Bonuses"/>-->
</xs:sequence>
</xs:complexType>	
</xs:element>

<xs:element name="Background">
<xs:complexType>
<xs:attribute name="filename" type="xs:string"/>
</xs:complexType>
</xs:element>

<xs:element name="Parameters">
<xs:complexType>
<xs:attribute name="color_count" type="color_count"/>
<xs:attribute name="pc_projectile_speed_vert_frac" type="xs:float"/>
<xs:attribute name="pc_cooldown" type="xs:float"/>
<xs:attribute name="start_time" type="xs:float"/>
</xs:complexType>
</xs:element>

<xs:simpleType name="color_count">
<xs:restriction base="xs:string">
<xs:pattern value="[4,8]"/>
</xs:restriction>
</xs:simpleType>

<xs:element name="Balloons">
<xs:complexType>
<xs:sequence>
<xs:element name="Balloon">
<xs:complexType>
<xs:sequence>
<xs:element ref="AppeareanceParameters" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="count" type="xs:decimal"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="AppeareanceParameters">
<xs:complexType>
<xs:sequence>
<xs:element name="First" minOccurs="0" maxOccurs="1" type="AppearenceParameterType"/>
<xs:element name="Interim" minOccurs="0" maxOccurs="1" type="AppearenceParameterType"/>
<xs:element name="Last" minOccurs="0" maxOccurs="1" type="AppearenceParameterType"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<!-- дальше определение AppearenceParameterType-->
Когда я заполняю level.xml, все идет, как планировалось до тега Level\Balloons\Balloon
По автозаполнению получается вот что
level.xml
Код:
<Level xmlns="cp:level">
<Background filename="Media\LvlBckg00.png"/>
<Parameters color_count="4" 
pc_cooldown="0.5"
pc_projectile_speed_vert_frac="0.3"
start_time="2.0"/>

<Balloons>
<Balloon xmlns=""/>

</Balloons>

</Level>
то есть парсер не правильно определяет содержимое тега <Balloon>: не может определить namespace или ещё что-то.
Подскажите, как лечить.

Пользуюсь VC++2010