# krpano xml结构
*这里是所有krpano xml元素的结构化列表:*
~~~
<krpano>
<include>
<preview>
<image>
<cube>
<cubestrip>
<sphere>
<cylinder>
<flat>
<fisheye>
<depthmap>
</image>
<view>
<area>
<display>
<control>
<cursors>
<autorotate>
<plugin>
<layer>
<layer>
...
</layer>
<hotspot>
<style>
<events>
<action>
<contextmenu>
<network>
<memory>
<security>
<textstyle>
<data>
<scene>
<set>
<debug>
</krpano>
~~~
* xml文件的根元素必须是`<krpano>`元素。所有其他元素必须放置在此元素内。
* krpano xml中的所有xml元素和属性都是可选的,可以按任意顺序多次定义。当同一元素被再次定义两次或更多次时,随后的声明将覆盖之前的声明。
* 可以在根`<krpano>`元素内部定义其他`<krpano>`元素,以在krpano范围内声明其他设置。
* xml本身只是一种传输格式:这意味着它将只用于传输krpano viewer的数据。解析xml时,xml元素将被转换/映射到krpano内部数据结构中。这意味着在解析之后,内部不再有xml。
## krpano XML元素和属性
* 一些xml元素和属性在krpano中以特殊的方式处理。这种特殊处理已经在xml加载和解析过程中发生。
~~~
<xmlelement name="..." ... />
~~~
~~~
名称属性⇒ 定义数组元素:
* 当xml元素具有name属性时,该元素将被解释为数组的元素/项。数组的名称是xml元素本身的名称。当不存在具有该名称的数组时,将自动创建该数组。
* 当元素/项已经存在时,在xml元素上定义的属性仍将被设置并覆盖已经存在的值。
* 这意味着一个xml元素可以有多个声明,但每个元素都需要有自己的唯一名称进行标识。
~~~
~~~
有关"名称"属性的重要注意事项:
* 每个名字都需要以字母开头!
* 这意味着不允许使用数字作为名称!
~~~
https://krpano.com/docu/xml/#xmlstructure