📢 C语言专栏:想学C语言的,冲
📢 VUE专栏:想学VUE的,冲这里
📢 CSS专栏:想学CSS的,冲这里
📢 Krpano专栏:想学VUE的,冲这里
🔔 上述专栏,都在不定期持续更新中!!!!!!!!!!!!!
目录
✨ 前言
Krpano使用简单的XML文本文件来存储Krpano查看器的设置。这些文件可以用任何常用的文本编辑器编写或编辑,但是在编写xml代码时,重要的是要遵守xml语法规则!这些基本规则对所有xml文件都是一样的,并不特定于krpano。
有关基本xml语法的更多信息,请参阅此处:
一、xml语法
Krpano使用简单的XML文本文件来存储Krpano查看器的设置。这些文件可以用任何常用的文本编辑器编写或编辑,但是在编写xml代码时,重要的是要遵守xml语法规则!这些基本规则对所有xml文件都是一样的,并不特定于krpano。
xml文件的语法规则简单、合乎逻辑、易学易用。
规则是这样的:
基本的XML结构
- xml文件由几个xml元素(也称为xml节点或xml标记)构成。
- xml元素的名称用< >括号括起来:
<element>
- 每个xml元素都需要关闭。
这可以用两种形式写——要么用开始元素,要么用结束元素:
<element> ... </element>
对于简单的例子是这样的:
<element />
- 一个xml元素可以包含额外的子xml元素。
在这种情况下,xml-元素需要写成这种形式:
<parentelement>
<childrenelement />
</parentelement>
- 一个xml元素可以有一个或多个属性。每个属性都由一个属性名和一个属性值构建而成。属性值必须写在单引号或双引号内。
<element attribute="value">
<childrenelement test1="value1" test2="value2" />
</element>
注意:一个元素上不允许有重复的属性,否则会导致语法错误!
- xml中必须总是有一个所谓的“根元素”。这是在层次结构上最顶层的xml元素。所有其他xml元素都需要在其中。
对于krpano查看器,此元素总是<krpano>元素-例如:
<krpano onstart="...">
...
<preview url="..." />
<image>
<cube url="..." />
</image>
...
</krpano>
- 注释——注释是xml的一部分,在读取/解析xml时将被忽略。xml注释的开头是:
<!-- 注释 -->
大小写/字符编码/空白/不允许的字符
- xml元素和xml属性的名称是区分大小写的。这意味着开始元素和结束元素的名称需要以相同的大小写书写。
注意—对于xml语法规则,大小写非常重要,但是对于krpano查看器本身,krpano xml元素的大小写无关紧要—krpano查看器将自动将所有元素和属性名称转换为小写,以使它们的krpano-usage不区分大小写。
- 为了避免字符编码问题,所有xml文件都应该保存为Unicode UTF-8或UTF-16文件。在本例中,文本编辑器将在xml文件的开头添加一个小的隐藏头(称为UTF-BOM)。
- xml元素之间和xml属性之间的空白字符(如空格、制表符和换行符)将被忽略。但在属性值内部,它们将得到尊重。
这允许以多种方式自由地编写和组织xml。但是为了更好的可读性,通常可以对元素进行缩进,使它们的层次结构更加清晰。 - 有些字符是由xml语法本身保留的,因此不能直接使用。
无论如何,要使用它们,可以使用一些替代实体:
不允许字符 | 替代实体 | 特征描述 |
---|---|---|
< | < | 小于 |
> | > | 大于 |
& | & | & |
' | ' | 撇号 |
" | " | 引号 |
关于本文档
本文档是关于krpano xml结构,关于所有krpano xml元素、属性和值以及它们到动态krpano变量名的映射。
文档的主题:
关于krpano变量和动作的动态使用,请查看:
krpano动作/脚本参考
krpano XML结构
下面是所有krpano xml元素的结构化列表:(单击某个元素以获取更多信息)
<krpano> <include> <image> <preview> <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> <data> <cssstyles> <scene> <set> <if> <debug> </krpano>
- xml文件的根元素需要是<krpano>元素。所有其他元素都必须放在这个元素中。
- krpano xml中的所有xml元素和属性都是可选的,可以按任意顺序多次定义。当同一个元素被定义两次或两次以上时,后面的声明将覆盖前面的声明。
- 还可以在根<krpano>元素本身中定义附加的<krpano>元素,以声明krpano作用域的附加设置。
- xml本身只是一种传输格式——这意味着它将仅用于为krpano查看器传输数据。当xml被解析时,xml元素将被转换/映射到krpano内部数据结构。这意味着在解析之后,内部不再有xml。
特殊的krpano XML元素和属性
一些xml元素和属性在krpano中以一种特殊的方式处理。这种特殊的处理已经在xml加载和解析期间发生了。
<xmlelement name="..." ... />
name属性⇒定义数组元素:
当xml元素具有name属性时,该元素将被解释为Array的元素/项。Array的名称就是xml元素本身的名称。当不存在该名称的Array时,它将被自动创建。
当元素/项已经存在时,在xml元素中定义的属性仍然会被设置并覆盖已经存在的值。这意味着一个xml元素可以有多个声明,但是每个元素都需要有自己唯一的名称来标识。
当使用 auto 值时,将自动生成一个唯一的名称。
关于name属性的重要注意事项:
- 每个名字都需要以字母字符开头!
- 这意味着使用数字作为名称是不允许的!
- 如果名称仍然以数字字符开头,则该名称将被解释为数组索引。这对于动作内部基于索引的动态访问是可以的,但对于定义元素就不行了!
- 所有名称将自动转换为小写,以允许直接不区分大小写的访问!
<xmlelement url="..." ... />
url属性:
当一个xml属性被命名为'url'或以'url'开头或结尾(例如'videourl')时,该属性的值将被解释为资源的url /路径。
当使用相对路径作为url值时,该路径将自动调整为相对于定义了url属性的xml文件。这意味着xml中的相对路径将始终相对于xml本身。
但请注意-当动态设置/更改url属性时,就不再有与xml的自动关系了!
为了使路径相对于一些特殊的预定义路径,可以在url路径中使用这些占位符:
- %VIEWER% or %ROOT% or %SWFPATH%
- 主krpano查看器Javascript文件文件夹的路径。
- 注意-自定义查看器路径可以通过基路径嵌入设置来设置
- %HTMLPATH%
- html文件所在文件夹的路径。
- %FIRSTXML%
- “第一个”加载xml文件的文件夹路径。
- %CURRENTXML%
- “当前”加载xml文件文件夹的路径。
- %$VARIABLE%
- 使用给定的'VARIABLE'的值。
- 这可以是任何krpano变量,但它需要在xml或场景加载之前定义,例如,在嵌入期间(通过initvars)已经在html文件中,或者在loadpano(), loadscene()调用之前。
除了使用文件路径,还可以使用Data-URLs作为url值。支持Base64和plain编码。可用于将文件直接内联/嵌入到xml中。
持续更新中...
✨ 结语
我们改日再会