我需要针对我的模式验证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)
还有其他方法可以解决这个问题吗?
我通过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)
请帮我解决这个问题.谢谢.