2012-03-27 59 views
1

我有这个很大的疑问。 当我在.xsd模式中使用base64Binary并使用JaxB将其转换为Java类时,我得到的类型是byte []。是否有任何方式从.xsd架构生成java.awt.Image?

我想创建一个这样的模式,即从中生成的java类型是java.awt.Image。 这可能吗?

我想是这样的:

<element name="name" type="base64Binary" xmime:expected(entreTypes = "image/jpeg")/> 

结果是字节[]。

我知道了java.awt.Image中,如果我变成一个架构我得到的只是

<element name="name" type="base64Binary"/> 

但是有什么办法得到它java.awt.Image中走出的.xsd的?

回答

1

你可以改变你的元素声明中XML模式看起来像下面生成java.awt.Image类型:

<xsd:element name="name" 
    type="xsd:base64Binary" 
    xmime:expectedContentTypes="image/jpeg"/> 

更多信息

+0

是的,这是我一直在寻找。我知道这是可能的。 我试过了,但没有工作,我对内容类型有一些例外。现在我将阅读该博客帖子并尝试再次实施。现在至少我知道这是可能的:)谢谢 – sfrj 2012-03-28 11:06:54

0

实际上将存储在XML中的图像,以JPEG编码的图像?

您可以使用Toolkit.createImage(byte[])从JPEG数据创建java.awt.Image

或者,如果您需要BufferedImage,则可以将字节数组包装在ByteArrayInputStream中,并使用ImageIO.read(InputStream)来读取它。

+0

我明白,是的,但我的疑问是。如果有什么方法可以在JaxB编译模式时将转换成图像? – sfrj 2012-03-27 08:17:36

+0

jaxb编译器会对图像做什么? – Joni 2012-03-27 08:40:59

+1

什么都不是,我只是想知道模式中元素的语法应该如何,所以xjc编译器可以将它转换为java.awt.Image字段。我想知道这是否可能?因为我总是得到一个字节[]但我想要一个Image对象自动生成。 – sfrj 2012-03-27 09:06:14