ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのxml文書のvalidateがうまくいきません。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
javaのスキーマファクトリを使って読み込んだXML文書をValidateしようとしているんですがうまくいきません。
いつも下記のようなエラーが出ます。XSPYで試したんですが
うまくいきました。

cvc-elt.1: Cannot find the declaration of element 'tag1'.

//XML文書///////////////////////////////
<?xml version="1.0"?>
<tag1 >
hello world
</tag1>

//スキーマ///////////////////////////////
<?xml version="1.0" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tag1">
<xs:simpleType>
<xs:restriction base="xs:string" >
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

//java program to validate the xml document////////
// Parse an XML document into a DOM tree.
DocumentBuilder parser =
DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document
      = parser.parse(new File("c:\\myxmldoc.xml"));

// Create a SchemaFactory capable of understanding WXS schemas.
SchemaFactory factory
      = SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);

javax.xml.transform.Source schemaFile
      = new javax.xml.transform.stream.StreamSource(new File("c:\\XMLType2.xsd"));
Schema schema = factory.newSchema(schemaFile);

Validator validator = schema.newValidator();
validator.validate(new javax.xml.transform.dom.DOMSource(document));

} catch (ParserConfigurationException e) {
// exception handling
} catch (org.xml.sax.SAXException e) {
// exception handling - document not valid!
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
// exception handling
}

コメント(2)

僕の環境ではうまく動いているように思います。
グーグルさんに
"Cannot find the declaration of element"
を聞いたところ次のページを発見しました。

http://eclipsewiki.net/eclipse/?%A5%B3%A5%E1%A5%F3%A5%C8%2FEclipse%20Web%20Tools%20Platform

ネットワークにつながっていないかプロキシの設定が原因という回答がなされています。想像の域を出ませんが環境が原因であると思います。

正しいと思われるxmlファイルおよびxsdファイルで試してみたところ正常に動作したようでしたのでプログラム的には問題ないと思います。ちなみにファイルは下記のサイトから拝借しました。

http://www.atmarkit.co.jp/fjava/javatips/129java024.html
全然影響を及ぼすことじゃないかもしれませんが、<tag1 >のtag1の後に半角スペース入ってませんか?
タグの記述がまずいのでは?
違ったらすいませんw

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。