1

我正在尝试从 xsd 编译 xmlbeans jar。xsd 是供应商提供给我的,所以我无法更改它。名称属性“CON”导致 XML bean 抛出如下异常:线程“main”中的异常 org.apache.xmlbeans.SchemaTypeLoaderException....(系统找不到指定的路径)。如果我将标签属性更改为“CON1”,问题就解决了,因此它肯定是它不喜欢的字符串 CON。有没有办法解决这个问题。我包含了我一直用于测试目的的模式的简化版本作为参考:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="CON">
    <xs:complexType>
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="TEXT" type="TEXT" minOccurs="0"  
maxOccurs="1"/>
            <xs:element name="VALUE" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="2"/>
                        <xs:maxLength value="4"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
</xs:element>
<xs:simpleType name="TEXT">
    <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="1023"/>
    </xs:restriction>
</xs:simpleType>    
</xs:schema>
4

1 回答 1

1

这是 XMLBeans 中的一个已知错误:XMLBEANS-352

scomp尝试创建文件 ...\classes\schemaorg _apache_xmlbeans\javaname\noNamespace\CONDocument\CON\VALUE.xsb 这失败了。目录名称CON是禁止的,因为CON它是 Windows 机器上的保留设备名称。

提供.xsdconfig将元素映射到另一个名称的文件不起作用。我试过。

据报道,在 linux 中编译模式并复制生成的 jar 是唯一的解决方案。

于 2013-01-30T17:06:45.367 回答