我需要指定一个XSD来验证XML文档.XSD将用于JAXB生成的Java绑定. 我的问题是指定可选元素,我不知道它的名称和我一般对解析不感兴趣.
XML文档的结构如下:
<TRADE>
<TIME>12:12</TIME>
<MJELLO>12345</MJELLO>
<OPTIONAL>12:12</OPTIONAL>
<DATE>25-10-2011</DATE>
<HELLO>hello should be ignored</HELLO>
</TRADE>
Run Code Online (Sandbox Code Playgroud)
重要的是,那:
我的XSD的结构就像(不是有效的xsd):
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- *********************************************** -->
<!-- Trade element definitions for the XML Documents -->
<!-- *********************************************** -->
<xs:complexType name="Trade">
<!-- Using the all construction ensures that the order does not matter -->
<xs:all>
<xs:element name="DATE" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="TIME" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="OPTIONAL" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:any minOccurs="0"/>
</xs:all>
</xs:complexType>
<!-- TRADE …Run Code Online (Sandbox Code Playgroud) PMD和SonarQube是一个不错的工具,但我在尝试抑制PMD警告方面遇到了问题.
我们在项目中经常使用Lombok,因此许多模型类都有:@SuppressWarnings("PMD.UnusedPrivateField")作为类级别的注释.
这很好用.
问题是,如果我不想再忽略一条规则,我会期望以下语法:@SuppressWarnings(value = {"PMD.UnusedPrivateField","PMD.SingularField"})这看起来像正确的语法,也是阅读PMD注释的实现.
但是,这似乎不起作用:现在没有规则被禁止.
这个问题是我之前提出的问题的后续问题: 创建一个使用<all>和<any>元素打开的有效XSD
鉴于我有一个包含以下形式的XML文档的Java String:
<TRADE>
<TIME>12:12</TIME>
<MJELLO>12345</MJELLO>
<OPTIONAL>12:12</OPTIONAL>
<DATE>25-10-2011</DATE>
<HELLO>hello should be ignored</HELLO>
</TRADE>
Run Code Online (Sandbox Code Playgroud)
我如何使用XSLT或类似的东西(在Java中使用JAXB)来删除一组元素中未包含的所有元素.在上面的例子中,我只对(TIME,OPTIONAL,DATE)感兴趣,所以我想将其转换为:
<TRADE>
<TIME>12:12</TIME>
<OPTIONAL>12:12</OPTIONAL>
<DATE>25-10-2011</DATE>
</TRADE>
Run Code Online (Sandbox Code Playgroud)
元素的顺序不固定.