以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [求助]关于用JAVA通过xsd验证xml的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=76473)


--  作者:暮月游人
--  发布时间:8/23/2009 3:13:00 PM

--  [求助]关于用JAVA通过xsd验证xml的问题
老是报错 Error on line 2: cvc-elt.1: Cannot find the declaration of element 'school'.

以下是源代码

xml

<?xml version="1.0" encoding="UTF-8"?>
<school xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\eclipse3.4\school\school.xsd">
 <student>
  <name>22</name>
  <age>22</age>
  <gender>22</gender>
  <class>22</class>
 </student>
</school>


xsd

  <?xml version="1.0" encoding="UTF-8" ?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:element name="school">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="student">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="name" type="xs:string" id="name" />
  <xs:element name="age" type="xs:int" id="age" />
  <xs:element name="gender" type="xs:int" id="gender" />
  <xs:element name="class" type="xs:int" id="class" />
  </xs:sequence>
  <xs:attribute name="ID" type="xs:int" id="ID" />
  </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

java程序
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class XMLTest{
 String xml="school.xml";
 String schema="school.xsd";
 public void validate() {
  try{
   SAXBuilder saxBuilder = new SAXBuilder(true);
           saxBuilder.setValidation(true); 
           saxBuilder.setFeature("http://apache.org/xml/features/validation/schema", true);
   saxBuilder.setProperty(
    "http://apache.org/xml/properties/schema/"
    + "external-noNamespaceSchemaLocation",schema);
   Document jdomDoc = saxBuilder.build(new FileInputStream(new File(xml)));
   XMLOutputter xmlOutputter = new XMLOutputter();
   //xmlOutputter.setEncoding("gb2312");
   xmlOutputter.output(jdomDoc, System.out);
  }catch(Exception e){ System.out.println("验证失败:"+e); }
 }
 public static void main(String args[]){
  new XMLTest().validate();
 }
}


--  作者:hexun831012
--  发布时间:8/24/2009 7:13:00 PM

--  
jdom~~~
没玩过JAVA的XML
--  作者:xujian2009
--  发布时间:12/14/2009 2:22:00 PM

--  
java的xml验证,比较复杂啊。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms