道歉,如果这个问题似乎重复了,但我在这个背景下已经仔细研究了数百个论坛和帖子,而且我似乎确实有一些事情显然是正确的,并且符合所有关于这个主题的JSR和其他评论/帖子。
但在我打破笔记本电脑之前,我想看看其他眼睛是否可以提供帮助。
这是我的XML的DTD
<!ELEMENT prodcat (product*)>
<!ELEMENT product (name, description?, composition+, commercial?, prodMeta*)>
<!ELEMENT name EMPTY>
<!ELEMENT description EMPTY>
<!ELEMENT composition ((atomicProduct|resource)+, composition*)>
<!ELEMENT commercial EMPTY>
<!ELEMENT prodMeta EMPTY>
<!ELEMENT atomicProduct EMPTY>
<!ELEMENT resource EMPTY>
<!ATTLIST product
id ID #REQUIRED
discoverable (true|false) #REQUIRED
>
<!ATTLIST composition
type (include|mutex) #REQUIRED
>
<!ATTLIST commercial
isoCurrencyCode CDATA #REQUIRED
>
<!ATTLIST prodMeta
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ATTLIST atomicProduct
id IDREF #REQUIRED
>
<!ATTLIST resource
id CDATA #REQUIRED
>
这是我的XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE prodcat SYSTEM "prodcat.dtd">
<prodcat>
<product id="PRD_14" discoverable="true">
<name>UniFi Advance 30Mbps</name>
<composition type="include">
<atomicProduct id="PRD_9"/>
<atomicProduct id="PRD_11"/>
<atomicProduct id="PRD_13"/>
</composition>
<commercial isoCurrencyCode="MYR"/>
<prodMeta name="Category" value="Bundle" />
</product>
<product id="PRD_9" discoverable="true">
<name>HyppTV Residential</name>
<composition type="include">
<atomicProduct id="PRD_5" />
<composition type="mutex">
<atomicProduct id="PRD_6" />
<atomicProduct id="PRD_7" />
<atomicProduct id="PRD_8" />
</composition>
</composition>
</product>
</prodcat>
pojos分别用@XmlAttribute
和@XmlElement
注释。但出于某种原因,只有commercial
和prodMeta
单独拒绝解析...没有错误,没有例外,没有抱怨......只是不会被触动!这很奇怪。
真的需要帮助。
答案 0 :(得分:1)
我终于设法解决了这个谜。 XML和Pojos都是正确的。只是在部署中,已安装了较旧版本的DTD,但未定义商业元素和prodMeta元素。由于没有错误,异常或任何中断的迹象,因此很难进行故障排除