小编Mor*_*ank的帖子

创建使用<all>和<any>元素打开的有效XSD

我需要指定一个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)

重要的是,那:

  • 我不能假设任何顺序,并且下一个XML文档实例migtht具有不同顺序的标记
  • 我只对解析一些标签感兴趣,一些是强制性的,一些是可选的
  • XML文档可以使用我不感兴趣解析的新元素进行扩展

我的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)

xsd jaxb

7
推荐指数
1
解决办法
2483
查看次数

@SuppressWarnings不止一条规则无效

PMD和SonarQube是一个不错的工具,但我在尝试抑制PMD警告方面遇到了问题.

我们在项目中经常使用Lombok,因此许多模型类都有:@SuppressWarnings("PMD.UnusedPrivateField")作为类级别的注释.

这很好用.

问题是,如果我不想再忽略一条规则,我会期望以下语法:@SuppressWarnings(value = {"PMD.UnusedPrivateField","PMD.SingularField"})这看起来像正确的语法,也是阅读PMD注释的实现.

但是,这似乎不起作用:现在没有规则被禁止.

pmd sonarqube

5
推荐指数
1
解决办法
7124
查看次数

从XML文档,XSLT和JAXB中删除元素

这个问题是我之前提出的问题的后续问题: 创建一个使用<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)

元素的顺序不固定.

java xml xslt xsd jaxb

4
推荐指数
1
解决办法
2300
查看次数

标签 统计

jaxb ×2

xsd ×2

java ×1

pmd ×1

sonarqube ×1

xml ×1

xslt ×1