2012-03-27 3 views
1

У меня есть это большое сомнение. Когда я использую base64Binary в схеме .xsd и использую JaxB для преобразования его в класс Java, тип i get is byte [].Есть ли способ генерации java.awt.Image из схемы .xsd?

Я хочу создать такую ​​схему, из которой генерируется 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

0

Что будет храниться в XML, изображение, закодированное в формате JPEG?

Вы можете использовать Toolkit.createImage(byte[]) для создания java.awt.Image из данных JPEG.

Или, если вам нужен BufferedImage, вы можете обернуть массив байтов в ByteArrayInputStream и использовать ImageIO.read(InputStream), чтобы прочитать его.

+0

Я вижу, да, но я сомневаюсь. Если есть способ, который может сделать преобразованным в изображение, когда JaxB компилирует схему? – sfrj

+0

Что сделал бы компилятор jaxb с изображением? – Joni

+1

Ничего, я просто хочу знать, как должен выглядеть синтаксис элемента в схеме, поэтому компилятор xjc может преобразовать его в поле java.awt.Image. Мне интересно, возможно ли это? потому что я всегда получаю байт [], но хочу, чтобы объект изображения автоматически генерировался. – sfrj