Java解组器不解析十进制的简单类型,并定义正则表达式规则

Java解组器不解析十进制的简单类型,并定义正则表达式规则,java,xml,xsd,jaxb,bigdecimal,Java,Xml,Xsd,Jaxb,Bigdecimal,我对java解组器有问题。整个代码是基于xsd功能构建的。在这里,我定义了十进制类型,如下所示: <xs:simpleType name="KMTyp"> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="3"/> <xs:pattern value="\d+\.\d{3}"/> </xs:restriction> &

我对java解组器有问题。整个代码是基于xsd功能构建的。在这里,我定义了十进制类型,如下所示:

<xs:simpleType name="KMTyp">
    <xs:restriction base="xs:decimal">
        <xs:fractionDigits value="3"/>
        <xs:pattern value="\d+\.\d{3}"/>
    </xs:restriction>
</xs:simpleType>
AONA50 item = new AONA50();

JAXBContext context = JAXBContext.newInstance(item.getClass());
Unmarshaller unmarshaller = context.createUnmarshaller();

unmarshaller.setSchema(schema50);
Object xmlObject = item.getClass().cast(unmarshaller.unmarshal(new File(fileName)));

return (AONA50)xmlObject;
有谁能帮我,使这项工作,所以正确的BigDecimal值是红色的从xml和返回


//这里编辑的是AONA50类:

您能添加更多详细信息吗。。。e、 当然可以。它在这里,因为它太大,无法粘贴,如果使用不适合我。。。如果我使用它,效果会很好:示例数据如下所示:12.3 4.3 11.3 6.3 11.3 6.3 0 4.3 1.4 2.3 35.1 35.1 34.42 12.11尝试使用AONA50执行封送,以便我们可以看到正确的xml。
<ODCINEK KM_OD="21.000" KM_DO="21.050">
AONA50 item = new AONA50();

JAXBContext context = JAXBContext.newInstance(item.getClass());
Unmarshaller unmarshaller = context.createUnmarshaller();

unmarshaller.setSchema(schema50);
Object xmlObject = item.getClass().cast(unmarshaller.unmarshal(new File(fileName)));

return (AONA50)xmlObject;