【发布时间】:2014-10-06 10:08:53
【问题描述】:
xsd 文件的摘录:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.derivatexxl.de/derivatexxl/v1.1"
targetNamespace="http://www.derivatexxl.de/derivatexxl/v1.1"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:include schemaLocation="derivatexxlTypes.xsd"/>
<!-- Root -->
<xs:element name="DERIVATEXXL">
<xs:complexType>
<xs:sequence>
<xs:element ref="DELIVERY"/>
<xs:element ref="GENERAL_INFORMATION" minOccurs="0"/>
<xs:element ref="SENDER"/>
<xs:element ref="ISSUER"/>
<xs:element ref="PRODUCT" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
我的代码:
use warnings;
use strict;
use XML::Compile::Cache;
use XML::Compile::Util qw/pack_type/;
my $xsds = ['derivatexxlTypes.xsd', 'derivatexxl_110.xsd'];
my $schema = XML::Compile::Cache->new($xsds);
# This works, it prints all the available definitions
$schema->printIndex();
my $type = pack_type 'http://www.derivatexxl.de/derivatexxl/v1.1', 'DERIVATEXXL';
warn $schema->template('PERL' => $type);
我收到此错误消息: “正则表达式错误:编译失败:需要一个字符范围”
如果我将最后一行更改为: 警告 $schema->template('PERL' => 'DERIVATEXXL');
我得到错误: “错误:找不到元素或属性 `DERIVATEXXL'”
说实话,我不确定我是不是没听懂,还是 XML::Compile 无法处理这些 xsd 文件...
如果有任何帮助,我将不胜感激。
谢谢。
【问题讨论】: