小编Rah*_*kur的帖子

如何在使用jaxb生成pojos时处理xsd中具有相同名称的元素和属性?

我有一个xsd,其中包含:

<xs:complexType>
  <xs:sequence minOccurs="0">
    <xs:element ref="HereIsTheProblem"/>
    <xs:element ref="blaBla"/>
  </xs:sequence>
  <xs:attribute name="something" type="xs:string" use="required">
    <xs:annotation/>
  </xs:attribute>
  <xs:attribute name="somethingElse" type="xs:string">
    <xs:annotation/>
  </xs:attribute>
  <xs:attribute name="HereIsTheProblem" type="xs:string">
    <xs:annotation/>
  </xs:attribute>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用jaxb解析模式以生成java类时,它失败了:

[ERROR] Element "{http://something.somemorething.com/etc/}HereIsTheProblem" shows up in more than one properties.
Run Code Online (Sandbox Code Playgroud)

如何在不对架构进行任何修改的情况下解决此问题?

PS:我的jaxb版本是2.1.13

java xsd jaxb

6
推荐指数
1
解决办法
4530
查看次数

ImageView vs ImageButton vs Button

在我的布局中,我有一些图像是按钮背景(没有文字).我很困惑我应该怎么做.有几种方法可以实现这一目标 -

  1. 按键
  2. 的ImageButton
  3. ImageView的

就个人而言,我更喜欢ImageView,所以我可以适当地缩放图像,然后设置onClickListener.

我错过了什么或者我的方法存在性能问题吗?每个人的利弊都会有很大帮助.

感谢和问候

[R

performance android android-layout

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

错误:在xs:choice的情况下,无法通过xjc解析架构

我想使用jaxb从模式生成java类,但是我从xjc得到一个解析错误.我有2个元素包装在一个选择中,然后其中一个元素在选择后再次重复:

<xs:element name="A">
  <xs:complexType>
    <xs:choice>
      <xs:sequence maxOccurs="unbounded">
        <xs:element ref="X"/>
        <xs:element ref="Y"/>
      </xs:sequence>
      <xs:element ref="Y"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

jaxb投掷:

[ERROR] Element "{*something*}Y" shows up in more than one properties.
 line *something* of file:/*something*.xsd
Run Code Online (Sandbox Code Playgroud)

PS:我的jaxb版本是2.1.13

java xsd jaxb

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

使用JAXB解组XML时出现ClassCastException

我已经使用xjcxsd 生成了java类,其中根元素是A类型的AType.

jaxb生成的根元素是AType&没有A生成类.

当我尝试解组对应于该xsd的xml并强制转换JaxbElement时,它会抛出一个强制转换异常:

片段:

JAXBContext jaxbContext = JAXBContext.newInstance(Class.forName("AType"));
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
AType aType = (AType) unmarshaller.unmarshal(new ByteArrayInputStream(xmlString.getBytes()));

例外:

java.lang.ClassCastException: javax.xml.bind.JAXBElement

其他案例的相同代码正确执行并成功反序列化.

我怎样才能找到unmarshal()给我什么类型的对象?我不知道在这种情况下出了什么问题,我已经尝试打印出那些字段,jaxbElement但它不是很有用!

java xml xsd jaxb unmarshalling

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

标签 统计

java ×3

jaxb ×3

xsd ×3

android ×1

android-layout ×1

performance ×1

unmarshalling ×1

xml ×1