JAXP$B$K$h$k(BDOM$B2r@O(B

revised: Oct./26th/03

JAXP$B$H(BDOM

JAXP (Java APIs for XML Processing)$B$O!"]2=$7$F!"(BXML$B%Q!<%5$N

$B$($P!"%"%W%j%1!<%7%g%s$N%3!<%I$rJQ99$9$k$3$H$J$/!"(BXML$B%Q!<%5$Njavax.xml.parsers$B$K4^$^$l$k$h$&$K$J$j!"(BJAXP$B$N(BAPI$B$N$_$G==J,9bEY$J%"%W%j%1!<%7%g%s$,@_7W!?3+H/$G$-$^$9!#(B

JAXP$B$G$O!"(BXML$B%Q!<%5$rD>@\(Bnew$B$9$k$N$G$O$J$/!"%U%!%/%H%j!]%/%i%9$GMQ0U$5$l$F$$$k$N$G!"6q>]%/%i%9$r@Z$jBX$($k$3$H$G!"0[$J$C$?%;%C%H$N%$%s%9%?%s%9$r@8@.$9$k$3$H$,$G$-$k$h$&$K$J$C$F$$$^$9!#$3$l$O!"%"%V%9%H%i%/%H!&%U%!%/%H%j$H8F$P$l$k%G%6%$%s%Q%?!<%s$KB'$C$?$b$N$G$9!#\:Y$+$i%3!<%I$,FHN)$7!"0[$J$kl9g$K$b!"@8@.$5$l$k%*%V%8%'%/%H$rMxMQ$7$F$$$k%/%i%$%"%s%H!&%/%i%9$N%3!<%I$rJQ99$9$kI,MW$,$J$/$J$j$^$9!#(B

JAXP$B$N35MW(B

$B%3!<%I$r8+$kA0$K!"6qBNE*$J

$B$^$:!"(BDOM$B%D%j!<$NA4BN$r8=$9(BDocument$B%$%s%9%?%s%9MQ$N%U%!%/%H%j!&%/%i%9$r@8@.$9$k$?$a$N%U%!%/%H%j!&%/%i%9$r!"(BDocumentBuilderFactory$B7?$G@8@.$7$^$9!#$3$N%*%V%8%'%/%H$b%U%!%/%H%j!&%a%=%C%I(BnewInstance()$B$G@8@.$7$^$9!#$3$N%U%!%/%H%j!&%a%=%C%I$G$O!"

  1. javax.xml.parsers.DocumentBuilderFactory$B%7%9%F%`!&%W%m%Q%F%#(B
  2. JRE$B%G%#%l%/%H%jFb$N%W%m%Q%F%#!&%U%!%$%k(B lib/jaxp.properties
  3. JAR$B%U%!%$%kFb$N(BMETA-INF/services/javax.xml.parsers.DocumentBuilderFactory$B%U%!%$%k(B
  4. $B%W%i%C%H%U%)!<%`$N%G%U%)%k%H$N(BDocumentBuilderFactory$B%$%s%9%?%s%9(B

$BNc$($P!"(BSDK 1.4$B$K$O!"(BXerces$B0JA0$K(BApache$B$G3+H/$5$l$F$$$?(BCrimson$B$H$$$&(BXML$B%Q!<%5$,4^$^$l$F$$$^$9!#$3$l$r%7%9%F%`!&%W%m%Q%F%#(Bjavax.xml.parsers.DocumentBuilderFactory$B$K$F!"-Dxxx=yyy"$B$r;H$C$F!"

Crimson$B$rL@<(E*$K;XDj(B

>java -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl DomParseDemo3 demo2.xml

Xerces$B$rL@<(E*$K;XDj(B

>java -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl DomParseDemo3 demo2.xml

$B@8@.$5$l$?(BDocumentBuilderFactory$B7?%*%V%8%'%/%H$KBP$7$F!"$5$^$6$^$JB0@-$r%;%C%H$G$-$^$9!#(BXerces$B$G$O%Q!<%58GM-$N(BURI$B$K$h$C$F%U%#!<%A%c!<$r%;%C%H$7$F$$$^$7$?$,!"(BJAXP$B$G$OB0@-8GM-$N%a%=%C%I$,MQ0U$5$l$F$$$^$9!#(BJAXP$B$GMQ0U$5$l$F$$$J$$!"(BXML$B%Q!<%5$NsetAttribute()$B$,MQ0U$5$l$F$$$^$9!#(BJAXP$B$G;XDj$G$-$kBeI=E*$JB0@-$rI=(B4$B$K5s$2$^$7$?!#(B

$BI=(B4. DocumentBuilderFactory$B$G;XE&$G$-$kB0@-(B
$B%a%=%C%I(Btrue$B$N0UL#(B$B>JN,;~CM(B
setValidating(boolean value)$BBEEv@-8!>Z$r9T$&(Bfalse
setNamespaceAware(boolean value)$BL>A06u4V$rG'<1$9$k(Bfalse
setIgnoringComments(boolean value)$B%3%a%s%H$rL5;k$9$k(Bfalse
setIgnoringElementContentWhitespace(boolean value)$BL5;k$G$-$k6uGr$rL5;k$9$k(Bfalse
setAttribute(String name,Object value)$B;XDj$7$?B0@-$KCM$r%;%C%H$9$k(Bn/a

DOM Document$B%$%s%9%?%s%9$O!"%U%!%/%H%j!&%/%i%9(BDocumentBuilder$B$K$h$C$F@8@.$7!"(BDocumentBuilder$B$O(BDocumentBuilderFactory$B$K$h$C$F@8@.$7$^$9!#@8@.$7$?(BDocumentBuilder$B$K$O(BErrorHandler$B$r%;%C%H$9$k$N$,IaDL$G$9!#(B

DocumentBuilder builder = factory.newDocumentBuilder();
builder.setErrorHandler(new MyHandler());
Document doc = builder.parse(arg[0]);

$BL>A06u4V$H(BXMLSchema$B$rG'<1$9$k$h$&$KB0@-$r%;%C%H$9$k$K$O

// $BL>A06u4V$rG'<1$9$k(B
factory.setNamespaceAware(true);
// XML Scehma$B$rG'<1$9$k(B
factory.setAttribute("http://apache.org/xml/features/validation/schema",new Boolean(true));

JAXP$B$N%5%s%W%k(B

$B%j%9%H(B10$B$O!"(B$B%j%9%H(B8$B$r(BJAXP$B$G5-=R$7$?$b$N$G$9!#(B

$B%j%9%H(B10. DomParseDemo4.java

import org.w3c.dom.*;
import org.apache.xerces.parsers.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
class DomParseDemo4 {
    public static void main(String[] args) {
        try {
            // DOM$B%Q!<%5MQ%U%!%/%H%j$N@8@.(B
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            // $BBEEv@-8!>Z$r9T$&(B
            factory.setValidating(true);
            // $BL>A06u4V$rG'<1$9$k(B
            factory.setNamespaceAware(true);
            // XML Scehma$B$rG'<1$9$k(B
            factory.setAttribute("http://apache.org/xml/features/validation/schema",true);
            // DOM Document$B%$%s%9%?%s%9MQ%U%!%/%H%j$N@8@.(B
            DocumentBuilder builder = factory.newDocumentBuilder();
            // $B%(%i!

$B%j%9%H(B12$B$O%j%9%H(B10$B$N$B%j%9%H(B4$B$NL>A06u4V$r;H$C$?(BXML$BJ8=q$r(Bdemo5.xml$B$H$7$F!"F1$8%G%#%l%/%H%j$K(BXML Schema$BJ8=q$G$"$k(B$B%j%9%H(B6$B$r(Baddress.xsd$B$H$7$FJ]B8$7$^$7$?!#$^$?!"(Bdemo5.xml$B$N:G=i$N(Bitem$BMWAG$G!"(Bsex$BB0@-$NCM$r(Bman$B$KJQ$($?$b$N(B($B%j%9%H(B11)$B$r8!>Z$9$k$H!"(BXML Schema$B$GL$Dj5A$NB0@-CM(Bman$B$,IT@5$G$"$k;]$,Js9p$5$l$^$9!#(B

$B%j%9%H(B11. demo6.xml

<?xml version="1.0" encoding="UTF-8"?>
<hlq:address xmlns:hlq="urn:address"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:address address.xsd">
    <hlq:item sex="man" custid="E21099">
        <hlq:name>$B?{0f!!3X(B</hlq:name>
...

$B%j%9%H(B17. JAXP$B$K$h$k(BDOM$BBEEv@-8!>Z7k2L(B

>javac DomParseDemo4.java
>java DomParseDemo4 demo5.xml
>java DomParseDemo4 demo6.xml
$B%(%i!<(B: 5$B9TL\(B
cvc-enumeration-valid: Value 'man' is not facet-valid with respect to enumeration '[male, female]'. It must be a value from the enumeration.
$B%(%i!<(B: 5$B9TL\(B
cvc-attribute.3: The value 'man' of attribute 'sex' on element 'hlq:item' is not valid with respect to its type, 'null'.
>


Copyright © 2003 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送