1
<web:Add xmlns:web="http://my/web/">
<web:a>1</web:a>
<web:b>2</web:b>
</web:Add>
这里的XML消息是我的架构
<?xml version="1.0" encoding="utf-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" >
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="a" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="b" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
这里是我的代码
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
File f = new File("C:\\temp\\my.xsd");
Schema schema = factory.newSchema(f);
Validator validator = schema.newValidator();
Document requestDoc = getDocumentFromString(request,true);
validator.validate(new DOMSource(requestDoc));
为什么会出现这种失败 cvc-complex-type.2.4.a:找到以元素“web:a”开头的无效内容。预计会有'{a}'之一。
如果我修改的信息,并采取前缀OUL的元素像这样
<web:Add xmlns:web="http://my/web/">
<a>1</a>
<b>2</b>
</web:Add>
然后一切正常。为什么?这两个消息对于提供的模式都是有效的xml。 任何帮助表示赞赏
谢谢。就是这样!我添加了以下内容并修复了它elementFormDefault =“qualified” – 2012-01-18 23:29:23
很高兴为您提供帮助。按照惯例,通过单击左侧的复选标记“接受”您的问题的最佳答案。 – 2012-01-19 06:36:27