小编Kir*_*ing的帖子

XML :: Compile没有找到我给它的根元素

目标:使用现有的XSD架构生成填充和编写XML输出所需的Perl数据结构.

我做了什么:我已经安装XML::Compile,找到了如何使用它的教程,并在这里阅读修改过的示例.我已经使用CAM模板编辑器处理了我的XSD文件,以确保CAM可以从模板中生成示例XML文件,我可以将XML输出与XSD进行比较,以确保两者的关联方式与我认为的相应.他们是这样.

接下来,我只是指向XML::Compile::SchemaXSD文件,然后询问是否创建了模板字符串,要求template()从XSD中指定的根元素开始.

什么是错的:"错误:找不到元素或属性'[root_element_name]'

我的XSD确实与我在我发现的例子中看到的不同.这就是我所拥有的:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"

<xs:annotation></xs:annotation>

<!-- Include XML Schema containing type definitions and data validation -->
  <xs:include id="DataDefinitions" schemaLocation="DataDefinitions_XMLSchema.xsd"></xs:include>

  <!-- Root element -->
  <xs:element name="Metrics" type="metrics"></xs:element>

  <xs:complexType name ="metrics">
    <xs:sequence minOccurs ="1" maxOccurs ="1">
      <xs:element name = ...></xs:element>
      .
      .
      <xs:element name = ....></xs:element>
    </xs:sequence>
  </xs:complexType>

  [other complexType definitions used above to type some of the elements in the complexType 'metrics']

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

上面的几个元素的类型然后在我所示的部分下面定义,这是XSD的本质.我在这里清楚地省略了很多细节,但我不认为('希望')它与问题有关.

即使错误,Perl也非常简单:

use warnings; …
Run Code Online (Sandbox Code Playgroud)

xml perl xsd perl-module

1
推荐指数
1
解决办法
704
查看次数

标签 统计

perl ×1

perl-module ×1

xml ×1

xsd ×1