種別[software] cocolog:10024353
セクションJRF のソフトウェア Tips
日時2006年02月16日 03:44:13
元URLhttp://jrf.cocolog-nifty.com/software/2006/02/post_9.html
タグ[Cygwin] [HTML/XML/CSS]

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&quot;&gt;
<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