Исключение Броска класса при попытке в неМаршалл xml?

let classNameHolder = ["avatar","orangeAvatar","purpleAvatar"];
<Card>
            <CardHeader
                avatar={
                    <Avatar id="av" aria-label="Recipe"
                        className={classNameHolder[Math.floor(Math.random() * 3)]}>{this.props.userName.charAt(0).toLocaleUpperCase()}
                    </Avatar>}
                title={this.props.userName} disableTypography={true}/>
            <CardActionArea disabled={this.state.images.length == 1 ? true : false}>
                <CardMedia
                    id={this.props.ownerId}
                    className={classes.media}
                    image={this.state.images[this.state.imageIndex]}
                    onClick={this.handleOnClick}
                />
            </CardActionArea>
        </Card>
51
задан Vidar 1 April 2009 в 21:00
поделиться

4 ответа

Делает FooClass имейте XmlRootElement аннотация? В противном случае попытка:

Source source = new StreamSource(inputStream);
JAXBElement<FooClass> root = unmarshaller.unmarshal(source, FooClass.class);
FooClass foo = root.getValue();

Это основано на Неофициальном Руководстве JAXB.

110
ответ дан beat 7 November 2019 в 09:45
поделиться

Вы - абсолютно верный FooClass, корневой элемент входного источника xml, Вы передали его? НеМаршалл возвратит объект корневого элемента, созданного xjc.

1
ответ дан Greg Noe 7 November 2019 в 09:45
поделиться

Я посмотрел бы на XML-файл и удостоверился бы, что это примерно, что Вы ожидаете видеть.

Я также временно изменил бы код на:

Object o = unmarshaller.unmarshal(inputStream);
System.out.println(o.getClass());

Если первый перестал работать затем, бросок класса происходит в методе немаршала, если он успешно выполняется затем, Вы видите фактический класс, который Вы возвращаете и затем выясняете, почему это не то, чем Вы ожидаете, что это будет.

3
ответ дан TofuBeer 7 November 2019 в 09:45
поделиться

Для более подробного объяснения прочитайте эту статью . Оказывается, ваш XSD должен быть правильно настроен, то есть должен существовать некоторый корневой элемент, охватывающий все остальные элементы.

XJC пытается поместить аннотацию @XmlRootElement в класс, который мы генерируем из сложный тип. Точное условие несколько уродливо, но основная идея состоит в том, что если мы можем статически гарантировать, что сложный тип не будет использоваться несколькими разными именами тегов, мы поместим @XmlRootElement .

9
ответ дан 7 November 2019 в 09:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: