revised: Oct./26th/03
SAX$B!J(BSimple API for XML$B!K$b(BDOM$B$HF1MM$NF/$-$r$9$k(BXML$B%Q!<%5MQ$N(BAPI$B$G$9!#(B
SAX$B$O!"%a!<%j%s%0%j%9%H(BXML-DEV$B$N%3%i%\%l!<%7%g%s$K$h$jCB@8$7!"9q:]E*$JI8=`2=CDBN$K$h$k;EMM$G$O$J$$$K$b4X$o$i$:!"%G%U%!%/%H!&%9%?%s%@!<%I!J;ve$NI8=`!"6H3&I8=`!K$H$J$C$F$$$k(BAPI$B$G$9!#(BJava$BMQ$N%$%Y%s%H6nF07?$N7ZNL$J(BAPI$B$G$"$j!"%i%s%@%`%"%/%;%9$d9=B$$NJQ99$H$$$C$?MW7o$K$O DOM$B$N>l9g$O!"2r@O$7$?7k2L$r@EE*$JLZ9=B$$GJV$7$^$7$?!#MWAG$dFbMF$O!"(BDOM$B%D%j!<$N3F%N!<%I$H$7$F07$o$l$^$9!#0lJ}!"(BSAX$B$O!"%$%Y%s%H6nF07?$N(BAPI$B$G!"2r@O7k2L$K$h$j!"J8=q$N3+;O!"MWAG$N3+;O$J$I$N%$%Y%s%H$r@8@.$7!"%"%W%j%1!<%7%g%s$O%$%Y%s%H$r
$B0lJ}!"(BSAX$B$O%a%b%j$N>CHqNL$,>/$J$/9bB.$G$9!#(BDOM$B$O@EE*$J9=B$$rJ];}$9$k$N$G!"9=B$$KBP$9$kJQ99$dJ#?tJ8=q4V$r$^$?$0A`:n$J$I$GJXMx$G$9$,!"(BDOM$B%D%j!<$r@EE*$K%a%b%j>e$KJ];}$9$k$?$a!"5pBg$J(BXML$BJ8=q$N>l9g$O%a%b%j$r05Gw$7$+$M$^$;$s!#(BSAX$B$O!"5pBg$J(BXML$BJ8=q$KBP$9$k=hM}$d!"9=B$$rJQ$($J$$>l9g$J$I$KJXMx$G$9!#(B $B%$%Y%s%H6nF07?$H$$$C$F$b!"%$%a!<%8$,$o$-$:$i$$;W$$$^$9$,!" $B%j%9%H(B1$B$O!"!V(BJAXP$B$K$h$k(BDOM$B2r@O(B$B!W$G>R2p$7$?!"BEEv@-8!>Z$r9T$&(BDOM$B%Q!<%5$G$"$k(B$B%j%9%H(B10$B$r(BSAX$B$rMQ$$$F $B%/%i%9(BSAXParseDemo$B$O(BSAX$B%Q!<%5$r;H$&%a%$%s$N%/%i%9$G$9!#(BSAX$B%Q!<%5$K$O!"%$%s%?%U%'!<%9(Borg.xml.sax.XMLReader$B$r2p$7$F%"%/%;%9$7$^$9!#$=$N $B%/%i%9(BMySAXHandler$B$O!"%X%k%Q!5$7$F$*$j!"%$%Y%s%H$r
$B%j%9%H(B1. DOM$B%"%W%j%1!<%7%g%s(B$B%j%9%H(B10 ( $B%j%9%H(B2. SAX$B$K$h$k DOM$B$N>l9g$HF1$8$/!"(BSAX$B$b(BJAXP$B$G5-=R$9$k$3$H$b$G$-$^$9!#%j%9%H(B19$B$O!"(B$B%j%9%H(B1$B$N%/%i%9(B $B%j%9%H(B3. JAXP$B$K$h$k(BSAX ( $B%j%9%H(B3$B$r%3%s%Q%$%k$7$F(B demo6.xml $B$r2r@O$9$k$H!"(B$B%j%9%H(B1$B$NSAX$B$K$h$kBEEv@-8!>Z(B
createXMLReader(String className)
$B$N0z?t(Borg.xml.sax.driver
$B$NCM(BMETA-INF/services/org.xml.sax.driver
SAXParseDemo.java
import org.w3c.dom.*;
import org.apache.xerces.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
class SAXParseDemo {
public static void main(String[] args) {
try {
// SAX$B%Q!<%5$N@8@.(B
XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
// $B%U%#!<%A%c!<$N@_Dj(B
parser.setFeature("http://xml.org/sax/features/validation",true);
parser.setFeature("http://apache.org/xml/features/validation/schema",true);
parser.setFeature("http://xml.org/sax/features/namespaces",true);
// $B%O%s%I%i$N@8@.(B
DefaultHandler handler = new MySAXHandler();
// $B%O%s%I%i$NEPO?(B
parser.setContentHandler(handler);
parser.setDTDHandler(handler);
parser.setErrorHandler(handler);
// $B2r@O(B
parser.parse(args[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MySAXHandler extends DefaultHandler {
// ContentHandler$B$N
DomParseDemo4.java
)$B$HF1MM$K!"(B$B%j%9%H(B1 (SAXParseDemo.java
)$B$G!"(B$B%j%9%H(B11 (demo6.xml
)$B$r=hM}$9$k$H!"%j%9%H(B2$B$N$h$&$K$J$j$^$9!#(B
>javac SAXParseDemo.java
>java SAXParseDemo demo6.xml
startDocument()
startElement()
namespace=urn:address
local name=address
qualified name=hlq:address
attribute name=schemaLocation
attribute qualified name=xsi:schemaLocation
attribute value=urn:address address.xsd
characters()
$B%(%i!<(B: 5$B9TL\(B
cvc-enumeration-valid: Value 'man' is not facet-valid with respect to enumeratio
n '[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'.
startElement()
namespace=urn:address
local name=item
qualified name=hlq:item
attribute name=sex
attribute qualified name=sex
attribute value=man
attribute name=custid
attribute qualified name=custid
attribute value=E21099
characters()
startElement()
namespace=urn:address
local name=name
qualified name=hlq:name
characters()$B?{0f!!3X(B
endElement()
characters()
startElement()
namespace=urn:address
local name=access
qualified name=hlq:access
attribute name=kind
attribute qualified name=kind
attribute value=email
characters()
endElement()
characters()
...
C:\java\xml>
JAXP$B$K$h$k(BSAX$B2r@O(B
SAXParseDemo
$B$r!"(BJAXP$B$N(BAPI$B$G5-=R$7$?$b$N$G$9!#(BSAXParseDemo2.java
)
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
class SAXParseDemo2 {
public static void main(String[] args) {
try {
// SAX$B%Q!<%5$N%U%!%/%H%j!<$N@8@.(B
SAXParserFactory factory = SAXParserFactory.newInstance();
// $B%U%#!<%A%c!<$N@_Dj(B
factory.setValidating(true);
factory.setNamespaceAware(true);
factory.setFeature("http://apache.org/xml/features/validation/schema",true);
// SAX$B%Q!<%5$N@8@.(B
SAXParser parser = factory.newSAXParser();
// $B%O%s%I%i$N@8@.(B
DefaultHandler handler = new MySAXHandler();
// $B2r@O(B
parser.parse(args[0],handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Copyright © 2003 SUGAI, Manabu. All Rights Reserved.
SEO
[PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送