小编use*_*213的帖子

无法将类型编组为元素,因为它缺少自动生成的类的@XmlRootElement注释

我需要针对我的模式验证Class对象,在该模式中我提供了正则表达式来验证自动生成的JAXB类的字段.当我尝试验证我的类对象时,我得到以下错误:

无法编组类型"xyz"作为元素,因为它缺少@XmlRootElement注释

这是我用来验证自动生成的类对象的代码:

jc = JAXBContext.newInstance(obj.getClass());
source = new JAXBSource(jc, obj);
Schema schema = schemaInjector.getSchema();
Validator validator = schema.newValidator();
validator.validate(source);
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以解决这个问题吗?

java schema jaxb java-ee

39
推荐指数
3
解决办法
7万
查看次数

cvc-complex-type.2.4.a:从元素'ProcessDesc'开始发现无效内容.ProcessName之一

我通过Validator类验证我的jaxb对象.下面是我用来验证jaxb对象的代码.但在验证它时,我收到了这个错误.

jc = JAXBContext.newInstance(obj.getClass());
source = new JAXBSource(jc, obj);
Schema schema = schemaInjector.getSchema();
Validator validator = schema.newValidator();
validator.validate(source);
Run Code Online (Sandbox Code Playgroud)

ERROR(SAXParseException):cvc-complex-type.2.4.a:从元素'ProcessDesc'开始发现无效内容.ProcessName之一

我不明白我在xsd中做错了什么导致了这个错误.我的xsd文件中定义的元素在下面,我收到了一个错误.

<xs:schema xmlns:cc="http://www.ms.com/cm.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ms.com/cm.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="Process">
<xs:sequence>
<xs:element name="ProcessId" type="xs:int" />
<xs:element name="ProcessName" type="xs:string" />
<xs:element name="ProcessDesc" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.谢谢.

xml schema xsd jaxb

14
推荐指数
2
解决办法
8万
查看次数

标签 统计

jaxb ×2

schema ×2

java ×1

java-ee ×1

xml ×1

xsd ×1