アプリ版:「スタンプのみでお礼する」機能のリリースについて

XSLTをいじる必要に駆られて、現在Java1.4+JAXP1.1を利用しています。
いままで、javax.xml.transformをimportしてメソッドを実行するだけで、「変換系に何を使っているのか」については全く気にしていなかったのですが、その実体は何なのでしょうか?
(XTとかXalanとか、単体の変換系がありますよね・・・?)
また、DOMパーサ、SAXパーサもJAXPで使えますが、各々のパーサや変換系を集めてパッケージにしたものがJAXPなんでしょうか。
さらに、勉強中にXMLパーサという単語が出てきて混乱しています。XMLパーサは、DOM・SAX・XSLT等とは違うのでしょうか?
(XMLパーサと名乗っているXercesは何に使うのでしょうか・・・)
DTDとの関連も含めて解説して頂けたら嬉しいです。

A 回答 (3件)

1.JAXPとは


 W3CのDOM仕様ではXML操作のAPIは定められていましたが、その手前の
 Documentオブジェクトを構築するところまでは定義されていなくて、
 処理系毎にばらばらでした。
 そこも含めて、統一したAPIを策定したのがJAXPです。
 ということで、JAXPを用いると、利用者は各処理系に何が使われているかをプログラムソース上では意識せずに記述できます。
2.XercesはXMLパーサの処理系実体です。

3.XMLパーサはXMLの内容を解析する処理を行います。
 解析には、DOM系APIとSAX系APIがあり、処理系には、Xerces等があります。
 XSLTプロセサはXML文書をスタイルシートに基づいて変換を行うもので、処理系には、Xalan等があります。
    • good
    • 0
この回答へのお礼

ということは、JAXPは処理系を集めて統一APIとして再定義したものなのですね。非常によくわかりました。ありがとうございます。

お礼日時:2003/07/21 16:53

こんにちは。

stardustと申します。

先に回答されている方の内容は的確に説明されていて素晴らしいと思います。
大いに参考になります。

さて、少しだけ補足しますと、
JAXPと言うのは、あくまでXML処理系にアクセスするためのインタフェースを提供するもので、実際に処理するにはXerces等のXMLパーサや、Xalan等のXSLTプロセッサが必要になります。
特に意識されていないかもしれませんが、JDK1.4を使っていると言うことは、おそらくJDK組込みのもので、XMLパーサとしては「Xerces」、XSLTプロセッサとしては「Xalan」を使用しているはずです。
(JDKのバージョンによって違いがあるかもしれませんが、ここで強調したいのはJAXPというインタフェースを通して、XMLパーサとXSLTプロセッサにアクセスしているということです。)

ちなみに、Xercesは「ザーシズ」、Xalanは「ザラン」と一般的に読むそうです。
    • good
    • 0
この回答へのお礼

補足、ありがとうございます。ということは、意識しないままにXercesやXalanを使っていたんですね。(別物かと思って、新規に入れようとしていました(^^;)
ということは、XML Schemaを適用したい場合などは、パーサであるXercesの機能を使えばいいのでしょうか(すみません、もう一度ドキュメントよく読んでみます)。

お礼日時:2003/07/21 16:58

stardustです。



ちょっと自信が無かったので回答を控えていたのですが、他の回答が出ていないようなので回答しておきます。
私の認識に誤りがあるかもしれませんのでご注意下さい。
調査の参考にして頂ければと思います。

DTDとは Document Type Definition の略で、文書の内容を定義するものです。
例えば、「履歴書」の文書で「資格」欄は資格の名称を文字列で記述する。「生年月日」欄は生年月日を日付で記述する。などの決まりを定義するような用途で使用します。

XML SchemaはDTDの記述をXMLの形式で記述でき、また更に複雑な定義をできるようにしたものです。
XML文書の定義自体をXMLで記述するわけです。

これらのDTDやXML Schemaに則っているか、XML文書の検証を行うには、Factory(DOMならばDocumentBuilderFactory、SAXならばSAXParserFactory)のsetValidating()メソッドで検証をするように指定して、Parserのインスタンスを生成すれば良いようです。

XSLTの場合は、、、
どうなるんでしょう?
すいませんが、XSLTを使用したことが無いので判りません。
    • good
    • 0
この回答へのお礼

書物を参考に、XercesのSAXParserFactoryを使ってパーサを生成し、検証を行うことができました。なるほど、あらかじめValidateするとか、XML Schemaを適用するとかをsetFeature等で指定しておき、Parseすることで検証が実行されるのですね。非常に参考になりました。ありがとうございます。

お礼日時:2003/07/22 18:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!