krpano 1.20.11 (生成 2022-03-07)

基本 XML 语法规则

krpano 使用简单的 xml 文本文件来存储 krpano 播放器的设置。 这些文件可以用任何通常的 texteditor 编写或编辑, 但在编写 xml 代码时, 必须尊重 xml 语法规则。 这些基本规则对于所有 xml 文件都是相同的, 而不是特定于 krpano 的。
xml 文件的语法规则简单、逻辑、易于学习和易于使用。
所以现在这里的规则:

基本 XML 结构

  • xml 文件由多个 xml 元素组成, 也称为 xml 节点或 xml 标记。
  • xml 元素的名称由 < > 括号括起来:
    <element>
  • 每个 xml 元素都需要关闭。
    这可以用两种形式编写-无论是起始元素还是最终要素:
    <element> ... </element>
    或简单的情况下, 只是这样:
    <element />
  • xml 元素可以在其中包含其他子 xml 元素。
    在这种情况下, 需要用该表单编写 xml 元素:
    <parentelement>
    <childrenelement />
    </parentelement>
    
  • xml 元素可以具有一个或多个属性。 每个属性都是从属性名和 attribue 值生成的。 属性值必须写在单引号或双引号内。
    <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 注释以下列开头:
    <!--
    结束于:
    -->
    在注释中不允许使用字符串 "-" (双连字符), 这意味着不能嵌套注释。
    例如:
    <krpano ...>
    <!-- this is a krpano example -->
    ...
    </krpano>

大小写/字符编码/空格/不允许字符

  • xml 元素和 xml 属性的名称区分大小写。 这意味着需要在同一个案例中编写起始元素和最终要素的名称。
    注意-对于 xml 语法规则, 此情况非常重要, 但对于 krpano 播放器本身, krpano xml 元素的大小写无关紧要-krpano 播放器将自动将所有元素和属性名称转换为小写以使其 krpano 使用 不区分大小写。
  • 为避免字符编码问题, 所有 xml 文件都应保存为 Unicode UTF-8 或 UTF-16 文件。 在这种情况下, 文本编辑器将在 xml 文件的开头添加一个小的隐藏头 (称为 UTF BOM)。
  • 空白字符 (如空格、制表符和 xml 元素之间以及 xml 属性之间的换行符) 将被忽略。 但在属性值内, 他们将受到尊重。
    这样就可以在许多方面自由地编写和 structurate xml。 但是为了更好的可读性, 将元素缩进以使其层次结构更清晰的方式通常是有意义的。
  • 某些字符由 xml 语法本身保留, 因此不能直接使用它们。
    无论如何, 还是可以使用一些替换实体:
    不允许字符 可替换为 字符描述
    < &lt; 少于
    > &gt; 大于
    & &amp; 符号
    ' &apos; 单引号
    " &quot; 引号

XML 错误检查/核对清单

  • 要检查 xml 文件的语法, 请直接在浏览器中打开它。 最现代的浏览器是直接显示的位置和错误的类型时, 有一个。
  • 以下是 xml 错误的快速检查表:
    1. 是否存在根 xml 元素?
      <krpano>
      ...
      </krpano>
    2. 所有 xml 元素是否都已正确关闭?
      正确
      <element> ... <element>
      <element> ... </element>
      <element ... >
      <element ... />
    3. 所有的 xml 注释都正确吗? (从 <!--开始, 结束-> 和不-之间)
      <!-- <!-- nested comment --> -->
      <!---------->
    4. 有保留字符吗? (例如 &、< 或 >)
      正确
      text="krpano & xml"
      text="krpano &amp; xml"
      text="<xml>"
      text="&lt;xml&gt;"
      if(x < 10, ...)
      if(x LT 10, ...)
    5. 所有的属性值都在引号内吗?
      正确
      <element x=123 ... />
      <element x="123" ... />
      <element x=123 ... />
      <element x='123' ... />
    6. 一个元素上有重复的属性吗?
      <element x="123" x="456" ... />
    7. 两个属性之间是否缺少空格?
      正确
      <element x="123"y="456"
      <element x="123" y="456"

Flash-HTML5 差异

  • 有时, xml 文件在 Flashplayer 中工作正常, 但在 HTML5 版本中显示错误信息。
  • 这种行为的原因是, Flashplayer 的 xml 分析器比 HTML5-browsers 的 xml 分析器更能容忍 xml 语法错误。
  • 使其工作的解决方案很简单-只需确保没有 xml 语法错误, 它将自动在 Flash 和 HTML5 中工作。