XML や XHTML のチェックに xmllint --valid を使う
libxml2 付属の xmllint を使って XML や XHTML のチェックをしようとすると、default ではいちいち dtd をリモートに読みに行ってしまう。そこで、 /etc/xml/catalog を作りローカルのファイルから dtd を読むようにした。 catalog に指定があると /etc/xml 以下のファイルなども読ませることができる。
まず、次から取ってきた DTD を /etc/xml/xhtml1-strict.dtd などとして置く。
>
●XHTML 1.0のDTD http://www.w3.org/TR/2002/REC-xhtml1-20020801/#dtds
entity sets(*.entファイル)も必要です。
●XHTML 1.1のFlat DTD http://www.w3.org/TR/xhtml11/DTD/xhtml11-flat.dtd
●XHTML Basic 1.0のFlat DTD http://www.w3.org/TR/xhtml-basic/xhtml-basic10-f.dtd
<
次のように catalog を設定した。
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<public publicId="-//W3C//DTD XHTML 1.1//EN" uri="/etc/xml/xhtml11-flat.dtd"/>
<public publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
uri="xhtml1-strict.dtd"/>
<public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
uri="xhtml1-transitional.dtd"/>
<public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN"
uri="xhtml1-frameset.dtd"/>
</catalog>
上は、ほとんど下記「参考」より引用しただけ。
ちなみに次のような alias があると便利かも。
alias xmlvalid='xmllint --noout --valid'
<b>参考</b>
《徒委記 ― XSLTでcatalog_fileを使う》
更新:06/01/16,06/01/28,06/02/16,06/02/27
初公開:2006年02月16日 03:37:15
最新版:2006年02月27日 22:08:53
Links:
徒委記 ― XSLTでcatalog_fileを使う: http://www.akatsukinishisu.net/wiki.cgi?XSLT%A4%C7catalog_file%A4%F2%BB%C8%A4%A6 (hbm)