[ADOS] ADOS Developer's Site - XML Stadium
ADOS Company slogan - XML Total Solution

 #freeze
 RIGHT:(2005/06/01 溝口@アドス)
 
 目次
 
 #contents
 
 #br
 
 *概要 [#oe56fa46]
 *概要 [#jac75d84]
 
 Xerces2 Java Parserは[[Apache XML プロジェクト:http://xml.apache.org/]]で開発された、オープンソースのXMLパーサです。JavaプログラムのDOM APIを持つほか、XSDバリデーションの機能を持ちます。ここでは、簡単なXSDバリデーションのプログラムを用意し、コマンドラインでのXSDバリデーション実行方法を解説します。
 
 Xerces2 Java Parserの実行にはJDK or JRE 1.2以上相当が必要です。
 
 -Sun J2SE~
 http://java.sun.com/j2se/
 -Sun J2SE 1.4.2 download~
 http://java.sun.com/j2se/1.4.2/ja/download.html
 
 ここでは、Xerces2 Java Parser 2.6.2 / J2SE 1.4.2_08 / Windows2000 の環境を例に説明します。
 
 #br
 
 *Xerces2 Java Parserのダウンロードとインストール [#n495fb7d]
 *Xerces2 Java Parserのダウンロードとインストール [#yf73e08d]
 
 Xerces2 Java Parserプロジェクトのページは下記URLです。
 
 http://xml.apache.org/xerces2-j/
 
 #ref(m1.gif,center)
 
 このページからダウンロードページのミラーサイトを辿ることができます。([[ショートカット:http://www.meisei-u.ac.jp/mirror/apache/dist/xml/xerces-j/]])
 
 #ref(m2.gif,center)
 
 ミラーサイトから、Xerces-J-bin.2.6.2.zip または Xerces-J-bin.2.6.2.tar.gz をダウンロードします。このアーカイブには xercesImpl.jar ファイルおよび xml-apis.jar ファイルが含まれています。この2つのファイルを適当なフォルダへコピーします。ここで、このフォルダを&color(red){{XERCES_HOME}};とします。
 
 #br
 
 *バリデーションプログラムの用意 [#f2e8a89b]
 *バリデーションプログラムの用意 [#ae5acbf1]
 
 Xerces2にはコマンドラインで利用できるXSDバリデーションツールが付属していません。そのため、下記のプログラムを利用します。このプログラムのjarファイル(&ref(xsdvalid.jar);)を&color(red){{XERCES_HOME}};へコピーします。
 
 【ValidatingXMLDOMParser.java】
  /* This source comes from http://www.experts-exchange.com/Web/Web_Languages/XML/Q_21058568.html */
  import org.xml.sax.SAXException;
  import org.xml.sax.SAXParseException;
  import org.xml.sax.helpers.DefaultHandler;
  import org.apache.xerces.parsers.DOMParser;
  import org.apache.xerces.parsers.XMLParser;
  import java.io.File;
  import org.w3c.dom.Document;
  
  public class ValidatingXMLDOMParser {
    public void validateSchema(String SchemaUrl, String XmlDocumentUrl) {
      try {
        DOMParser domParser = new DOMParser();
        domParser.setFeature("http://xml.org/sax/features/validation",true);
        domParser.setFeature("http://apache.org/xml/features/validation/schema",true);
        domParser.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true);
        domParser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation"
           ,SchemaUrl);
  
        Validator handler=new Validator();
        domParser.setErrorHandler(handler);  
        domParser.parse(XmlDocumentUrl);
  
        if(!handler.validationError)
          System.out.println("XML Document is valid");
      }
      catch(java.io.IOException e) {
        System.out.println(e);
      }
      catch (SAXException e) {
        System.out.println(e);
      }
    }
   
    private class Validator extends DefaultHandler {
      public boolean  validationError = false;
      
      public void error(SAXParseException e) throws SAXException {
        validationError = true;
        System.out.println(e);
      }
      public void fatalError(SAXParseException e) throws SAXException {
        validationError = true;
        System.out.println(e);
      }
      public void warning(SAXParseException e) throws SAXException {
        validationError = true;
        System.out.println(e);
      }
    }
  
  
    public static void main(String[] argv) {
      String SchemaUrl=argv[0];
      String XmlDocumentUrl=argv[1];
      ValidatingXMLDOMParser validator=new ValidatingXMLDOMParser();
      validator.validateSchema(SchemaUrl, XmlDocumentUrl);
  
    }
  }
 
 このプログラムでは、&color(red){外部};の(XMLファイルにおいてxsi:noNamespaceSchemaLocation属性やxsi:schemaLocation属性で指定されていない)、かつ&color(red){対象名前空間の指定されていない};XSDファイルを利用します。
 
 #br
 
 *XSDファイルとXMLファイルの用意 [#w71d4e15]
 *XSDファイルとXMLファイルの用意 [#nd0fe8b1]
 
 XSDファイルを適当なフォルダへコピーします。ここで、XSDファイルのパスを&color(red){{XSD_PATH}};とします。(サンプル:&ref(sample.xsd);)
 
 XMLファイルを適当なフォルダへコピーします。ここで、XMLファイルのパスを&color(red){{XML_PATH}};とします。(不正なXMLのサンプル:&ref(sample.xml);)
 
 #br
 
 *XSDバリデーションの実行 [#kcf04164]
 *XSDバリデーションの実行 [#v9a3798c]
 
 以下のフォーマットでコマンドを実行します。下記2行は一行のコマンドとして記述します。
 
 > java -classpath &color(red){{XERCES_HOME}};\xercesImpl.jar;&color(red){{XERCES_HOME}};\xml-apis.jar;
 > &color(red){{XERCES_HOME}};\xsdvalid.jar  ValidatingXMLDOMParser &color(red){{XSD_PATH}};  &color(red){{XML_PATH}};
 
 
 具体的なコマンドの例
 
  java -classpath .\xercesImpl.jar;.\xml-apis.jar;.\xsdvalid.jar ValidatingXMLDOMParser sample.xsd sample.xml
 
 
 XMLファイルがXSDファイルに対して正常であれば、下記の文字列を出力します。
 
  XML Document is valid
 
 XMLファイルがXSDファイルに対して不正であれば、下記のようなエラーメッセージを出力します。
 
 【エラーメッセージ例】
  org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '1.1' is not a valid value for 'boolean'.
  org.xml.sax.SAXParseException: cvc-type.3.1.3: The value '1.1' of element 'cell'
  is not valid.
 
 #br
 
 ----
 -mV0Dy3  <a href="http://fvclrbwjbqaq.com/">fvclrbwjbqaq</a>, [url=http://cynwvnnydips.com/]cynwvnnydips[/url], [link=http://ijluplzmigfa.com/]ijluplzmigfa[/link], http://dnhcfyszebrx.com/ -- [[dghbts]] &new{2009-06-01 01:33:29 (月)};
 -http://www.youtube.com/EgilLeofwine#1 discount tramadol,   924421018238,   -- [[soma bay]] &new{2009-06-04 07:56:30 (木)};
 -http://www.youtube.com/EgilLeofwine#1 tramadol drug,   487,   -- [[accupril]] &new{2009-06-04 07:56:30 (木)};
 -http://www.youtube.com/TaunoWebster#1 accupril,   ewqmggzqyphw,   -- [[abilify]] &new{2009-06-04 07:56:31 (木)};
 -http://www.youtube.com/PerseusRodolfo#1 soft cialis,   qgpzvw,   -- [[viagra online]] &new{2009-06-04 07:56:32 (木)};
 -http://www.youtube.com/ColtonThemba#1 abana,   ajlzumdc,   -- [[celexa]] &new{2009-06-04 07:56:33 (木)};
 -http://www.youtube.com/ShunVeasna#1 acomplia,   :PPP,   -- [[soft viagra]] &new{2009-06-04 07:56:34 (木)};
 -http://www.youtube.com/LauritsYudel#1 effects zoloft,   wzbxblaf,   -- [[buy xenical]] &new{2009-06-04 07:56:35 (木)};
 -http://www.youtube.com/YngvarFabien#1 buy viagra,   xfzleqult,   -- [[zoloft]] &new{2009-06-04 07:56:36 (木)};
 -http://www.youtube.com/JeraldVojtgch#1 buy xenical,   =-(,   -- [[escitalopram]] &new{2009-06-04 07:56:36 (木)};
 -http://www.youtube.com/YngvarFabien#1 viagra online,   1883464340,   -- [[soft cialis]] &new{2009-06-04 07:56:37 (木)};
 -http://www.youtube.com/ShunVeasna#1 acomplia online,   906665807719,   -- [[cialis]] &new{2009-06-04 07:56:38 (木)};
 -http://www.youtube.com/RedChandlers#1 propecia online,   npwjm,   -- [[acutane]] &new{2009-06-04 07:56:39 (木)};
 -http://www.youtube.com/AlbinCorey#1 citalopram side effects,   4221994,   -- [[generic tadalafil]] &new{2009-06-04 07:56:40 (木)};
 -http://www.youtube.com/MikheilEstebe#1 levitra,   57882226,   -- [[acutane]] &new{2009-06-04 07:56:41 (木)};
 -http://www.youtube.com/TaunoWebster#1 accupril,   =-PPP,   -- [[abilify]] &new{2009-06-04 07:56:42 (木)};
 -http://www.youtube.com/PippinYvon#1 celexa,   tyqjevll,   -- [[tramadol]] &new{2009-06-04 07:56:42 (木)};
 -http://www.youtube.com/OrsinoImre#1 revatio,   :-DDD,   -- [[buy cialis]] &new{2009-06-04 07:56:43 (木)};
 -http://www.youtube.com/PippinYvon#1 celexa,   mqejngmm,   -- [[celexa]] &new{2009-06-04 07:56:44 (木)};
 -http://www.youtube.com/PerseusRodolfo#1 soft cialis,   :((,   -- [[revatio]] &new{2009-06-04 07:56:45 (木)};
 -http://www.youtube.com/BimaChristian#1 tramadol ultram,   pyuojj,   -- [[abilify]] &new{2009-06-04 07:56:46 (木)};
 -http://www.youtube.com/ColtonThemba#1 habana,   mufz,   -- [[accupril]] &new{2009-06-04 13:56:57 (木)};
 -http://www.youtube.com/DexterPhilberts#1 prozac,   ajdgkbxlkgkn,   -- [[propecia]] &new{2009-06-04 13:56:58 (木)};
 -http://www.youtube.com/SaleemConnla#1 abilify,   86560009,   -- [[phentrimine]] &new{2009-06-04 13:56:59 (木)};
 -http://www.youtube.com/MikheilEstebe#1 levita,   924774,   -- [[revatio]] &new{2009-06-04 13:57:00 (木)};
 -http://www.youtube.com/MikheilEstebe#1 levitra,   snsnb,   -- [[abilify]] &new{2009-06-04 13:57:04 (木)};
 -http://www.youtube.com/ColtonThemba#1 abana,   51291749,   -- [[abilify]] &new{2009-06-04 13:57:05 (木)};
 -http://www.youtube.com/LauritsYudel#1 effects zoloft,   jczi,   -- [[soft viagra]] &new{2009-06-04 13:57:06 (木)};
 -http://www.youtube.com/HarriJerrard#1 tamiflu,   22156803795,   -- [[cheap ultram]] &new{2009-06-04 13:57:06 (木)};
 -http://www.youtube.com/ShunVeasna#1 acomplia,   jlqmgsrkvol,   -- [[celexa]] &new{2009-06-04 13:57:10 (木)};
 -http://www.youtube.com/ColtonThemba#1 abana,   676198,   -- [[revatio]] &new{2009-06-04 13:57:11 (木)};
 -http://www.youtube.com/HarriJerrard#1 tamiflu,   266,   -- [[celexa]] &new{2009-06-04 13:57:12 (木)};
 -http://www.youtube.com/ColtonThemba#1 habana,   =-PP,   -- [[tamiflu]] &new{2009-06-04 13:57:13 (木)};
 -http://www.youtube.com/PontusHemming#1 phentrimine,   cdjf,   -- [[ultram online]] &new{2009-06-04 13:57:14 (木)};
 -http://www.youtube.com/MikheilEstebe#1 levita,   85287397864,   -- [[roaccutane]] &new{2009-06-04 13:57:15 (木)};
 -http://www.youtube.com/MikheilEstebe#1 levita,   fmrempd,   -- [[abilify]] &new{2009-06-04 13:57:16 (木)};
 -http://www.youtube.com/TaunoWebster#1 accupril,   0483,   -- [[buy xenical]] &new{2009-06-04 13:57:17 (木)};
 -http://www.youtube.com/DexterPhilberts#1 prosac,   apqsa,   -- [[cialis]] &new{2009-06-04 13:57:17 (木)};
 -http://www.youtube.com/PerseusRodolfo#1 generic tadalafil,   ncduzqklurqi,   -- [[accupril]] &new{2009-06-04 13:57:21 (木)};
 -http://www.youtube.com/DexterPhilberts#1 prosac,   3609,   -- [[soft cialis]] &new{2009-06-04 13:57:22 (木)};
 -http://www.youtube.com/LauritsYudel#1 generic zoloft,   cbev,   -- [[xenical]] &new{2009-06-04 13:57:23 (木)};
 -http://www.youtube.com/SheldonRobert#1 clomid success,   019428,  http://www.youtube.com/EwaldElias#1 cheap adipex,   freefj,  http://www.youtube.com/NoakAmerigo#1 celexa,   0717815,  http://www.youtube.com/InnokentiJob#1 avandia,   >:OO,  http://www.youtube.com/RajeshHernando#1 valacyclovir,   zzou,   -- [[anastrozole]] &new{2009-06-05 05:14:20 (金)};
 -http://www.youtube.com/KapilaTemitope#1 abilify,   %-P,  http://www.youtube.com/RuslanPatrizio#1 benadryl,   %[,  http://www.petitiononline.com/accutan/petition.html roaccutane,   >:OO,  http://www.youtube.com/ToreVadim#1 ciprofloxacin,   260371,  http://www.youtube.com/OzIestyn#1 cephalexin,   9683489,   -- [[abilify]] &new{2009-06-05 05:14:21 (金)};
 -http://www.youtube.com/HeshamBelenus#1 augmentin,   8[,  http://www.youtube.com/EwaldElias#1 adipex p,   rkdhcogl,  http://www.youtube.com/SusilaBakr#1 atenolol side effects,   8530,  http://www.youtube.com/InnokentiJob#1 avandia,   >:]],  http://www.youtube.com/ColtenEelis#1 anastrozole,   nrnqu,   -- [[benedryl]] &new{2009-06-05 05:14:21 (金)};
 -http://www.youtube.com/KapilaTemitope#1 abilify,   >:O,  http://www.youtube.com/RuslanPatrizio#1 benedryl,   %-],  http://www.youtube.com/GudmundIsrael#1 coumadin,   ovjqogbncqy,  http://www.youtube.com/InnokentiJob#1 avandia,   %-PPP,  http://www.youtube.com/DudelMin#1 biaxin,   73989829,   -- [[buy adipex]] &new{2009-06-05 05:14:22 (金)};
 -http://www.youtube.com/HeshamBelenus#1 augmentin,   :-DD,  http://www.youtube.com/GudmundIsrael#1 coumadin,   8-]]],  http://www.youtube.com/ToreVadim#1 cipro side effects,   oqdovhiz,  http://www.youtube.com/OzIestyn#1 cephalexin 500mg,   %]],  http://www.youtube.com/ColtenEelis#1 anastrozole,   802199217411,   -- [[buy clomid]] &new{2009-06-05 06:51:04 (金)};
 -http://www.youtube.com/HeshamBelenus#1 augmentin,   fhfrgecpgr,  http://www.youtube.com/EliezerTakis#1 alli,   gkw,  http://www.youtube.com/YuutoBartomeu#1 citalopram effects,   :-OOO,  http://www.youtube.com/DudelMin#1 bioxin,   %),  http://www.youtube.com/VernerKwasi#1 generic tadalafil,   wul,   -- [[augmentin]] &new{2009-06-05 06:51:05 (金)};
 -http://www.youtube.com/BalaTheocritus#1 arimidex,   8385785639,  http://www.youtube.com/KapilaTemitope#1 abilify,   iyfkzu,  http://www.youtube.com/SheldonRobert#1 clomid and,   99729941,  http://www.petitiononline.com/accutan/petition.html roaccutane,   5208,  http://www.youtube.com/OzIestyn#1 cephalexin,   996386517047,   -- [[abilify]] &new{2009-06-05 06:51:06 (金)};
 -http://www.youtube.com/BalaTheocritus#1 arimidex,   :-],  http://www.youtube.com/RuslanPatrizio#1 benadryl,   991699,  http://www.youtube.com/SheldonRobert#1 clomid and,   >:-)),  http://www.youtube.com/NoakAmerigo#1 celexa,   8-[[[,  http://www.youtube.com/ColtenEelis#1 anastrozole,   =-[[,   -- [[generic tadalafil]] &new{2009-06-05 06:51:07 (金)};
 
 #comment
 

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved.