powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Переопределить тип элемента при генерации классов jaxb
1 сообщений из 1, страница 1 из 1
Переопределить тип элемента при генерации классов jaxb
    #39457745
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться как переопределить тип элемента.
Дана XSD схема. Кусочек примерно такой:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="WINDOWS-1251" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:sch="http://purl.oclc.org/dsdl/schematron" 
xmlns:usch="http://www.unisoftware.ru/schematron-extensions" xmlns:xs="http://www.w3.org/2001/XMLSchema">                                    
 <xs:element name="Akciz">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:choice>
                                  <xs:element maxOccurs="19" minOccurs="1" name="SumAkciz"/>								  
                                  <xs:element maxOccurs="10" minOccurs="1" name="BezAkciz"/>								  
                                </xs:choice>
                              </xs:sequence>
                            </xs:complexType>
 </xs:element>
 </xs:schema>



Генерю классы:

Код: plaintext
xjc try.xsd -b binding.xjb -p com.test -d src\ -target 2.0 -encoding windows-1251 -extension

Т.к. тип в схеме не указан, то формирeется коллекция из Object. Например для второго элемента:
Код: java
1.
2.
3.
4.
5.
6.
public List<Object> getBezAkciz() {
        if (bezAkciz == null) {
            bezAkciz = new ArrayList<Object>();
        }
        return this.bezAkciz;
    }



Проблема, что при маршалинге формирется XML, а в Тэге указывается тип:
Код: xml
1.
xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"



Мне нужно:
1. Либо не указывать тип при формировании XML
2. Либо указать тип для BezAkciz элемента с помощью внешнего биндинга, чтобы получить типизированный список/

С биндингом вообще запутался:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<jxb:bindings version="1.0" 
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
  jxb:extensionBindingPrefixes="xjc">
    <jxb:bindings schemaLocation="try.xsd" node="/xs:schema">
        
		<jxb:bindings node="//xs:element[@name='BezAkciz']">
            <!--<jxb:property name="Shapes"/>-->
			<jxb:javaType name="java.lang.String" />
        </jxb:bindings>
    
	</jxb:bindings>
	
</jxb:bindings>



Помогите советом.

Заранее спасибо.
P.S. Схему XSD менять нельзя
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Переопределить тип элемента при генерации классов jaxb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]