【发布时间】:2018-02-19 17:29:35
【问题描述】:
我有一个带有 targetNamespace 和非限定元素形式默认的架构:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://shiporder.hu/Shiporder"
xmlns="http://shiporder.hu/Shiporder"
elementFormDefault="unqualified">
<xs:complexType name="shipordertype">
<xs:sequence>
<xs:element name="orderid" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="shiporder" type="shipordertype" />
</xs:schema>
我不明白为什么以下实例无效:
<?xml version="1.0" encoding="UTF-8"?>
<shiporder
xmlns="http://shiporder.hu/Shiporder"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://shiporder.hu/Shiporder shiporder_unqualified.xsd">
<orderid>123456</orderid>
</shiporder>
Jaxb 验证说“发现以元素 'orderid' 开头的无效内容。'{orderid}' 之一是预期的。”我对此特别困惑消息,如果期望“orderid”,那么“orderid”有什么问题?
这是验证错误:
org.xml.sax.SAXParseException; systemId:文件:/home/riskop/git/xml_schema_elementformdefault_question/src/main/resources/order_unqualified_with_default_ns.xml;行号:6;列号:12; cvc-complex-type.2.4.a:发现以元素“orderid”开头的无效内容。需要“{orderid}”之一。 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) 在...
我在github上有一个小demo:
https://github.com/riskop/xml_schema_elementformdefault_question.git
【问题讨论】: