【问题标题】:What is on the first line of an XML document?XML 文档的第一行是什么?
【发布时间】:2016-06-20 12:55:45
【问题描述】:

所以在我们编写 XML Schema 之前,很多教程都使用这个:

 <?xml version='1.0'?>

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

我的问题是,这部分是做什么用的?该网站具体是什么,我们为什么要使用它?还有其他方法可以做到这一点吗?

如果有帮助,我这样做是为了将 Excel 工作表转换为 XML。

【问题讨论】:

  • 了解 XML 命名空间

标签: xml xsd


【解决方案1】:

XML 声明

&lt;?xml version='1.0'?&gt; 是一个XML declaration,不是 XSD 特有的,而是一般的 XML 文档。

[定义:XML 文档应该以 XML 声明 开头 它指定正在使用的 XML 的版本。]

由于 XSD 是一个 XML 文档,它也可能有一个 XML 声明。

这是一个 XML 声明 (XMLDecl) 的 BNF,其中包含指向其组成部分定义的链接:

XMLDecl ::= '&lt;?xml' VersionInfoEncodingDecl?SDDecl?S? '?&gt;'

注意: Only one XML declaration is permitted in well-formed XML, and it must be at the top if anywhere。如果您违反此要求,您将看到诸如

之类的错误

The processing instruction target matching "[xX][mM][lL]" is not allowed.

您必须先fix the problem,然后您的 XML 才会变为 well-formed


XML 架构实例命名空间

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 是特殊 XML Schema instance namespacenamespace 声明。作为命名空间URI,其目的是便于控制组件名称的分组。 An XML namespace URI does not have to be retrievable.

另请参阅

【讨论】:

    【解决方案2】:

    XML 声明。请参阅https://www.w3.org/TR/2006/REC-xml-20060816/#sec-prolog-dtd 了解更多信息。

    【讨论】:

      【解决方案3】:
      <?xml version='1.0'?>
      

      1.0 是 XML 的当前版本。未来版本的数字可能会发生变化。这是一个必填字段,它指示此文件符合哪个版本的 XML 标准。

      encoding="UTF-8"
      

      这意味着文件以 UTF-8 编码。这是可选的,因为这是 XML 中的默认字符编码。

      standalone="yes"
      

      standalone 指示当前 XML 文档是否依赖于外部标记声明。这也是可选的。

      <data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      

      这是 XML 模式实例命名空间。声明后,您可以使用 schemaLocation 等属性。

      查看类似答案:Is xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" a special case in XML?

      【讨论】:

        猜你喜欢
        • 2013-03-22
        • 1970-01-01
        • 2012-07-21
        • 2011-07-20
        • 1970-01-01
        • 2018-02-19
        • 2013-06-04
        • 1970-01-01
        • 2017-05-09
        相关资源
        最近更新 更多