xmllint学習 #7 helpを日本語化-5日目

2019年7月11日

xmllint テクノロジー プログラミング 特集

xmlはns(name space)を組み込んでちゃんと使いましょうという、w3cの勧告は、どのくらい重要なのかもわからずに、とにかくデータとしてのクオリティが担保できればいいと考えている僕は、邪道なのでしょうか? それでも、officeドキュメントからsvg、その他にも東証データや金融庁データまで、xmlは結構重要なデータ構造に使われています。 xmllintを使って、もっと便利に扱えるように日々精進しなくては・・・ そんな訳で、ヘルプ調査5日目に入ります。

--nsclean

remove redundant namespace declarations 余分な名前空間宣言を削除する $ xmllint sample2.xml --nsclean <?xml version="1.0" encoding="utf-8" standalone="yes"?> <hoge xmlns:hage="http://example.com/hage" xmlns:hora="http://example.com/hora"> <hage:a name="aaa" value="12345" a="1">DOG</hage:a> <hage:a name="bbb" value="56789" b="2">CAT</hage:a> </hoge> 使用していないns定義を削除してくれるのかと思ったら、そうではないみたい・・・orz

--testIO

test user I/O support ユーザーI / Oサポートをテストする xmllint sample2.xml --testIO <?xml version="1.0" encoding="utf-8" standalone="yes"?> <hoge xmlns:hage="http://example.com/hage" xmlns:hora="http://example.com/hora"> <hage:a name="aaa" value="12345" a="1">DOG</hage:a> <hage:a name="bbb" value="56789" b="2">CAT</hage:a> </hoge> 表示されればOutput成功という事でしょうか???

--catalogs

use SGML catalogs from $SGML_CATALOG_FILES otherwise XML Catalogs starting from file:///etc/xml/catalog are activated by default $ SGML_CATALOG_FILESからSGMLカタログを使用する
それ以外の場合は、から始まるXMLカタログ
file:///etc/xml/catalogはデフォルトで有効になっています xmllint sample2.xml --catalogs Variable $SGML_CATALOG_FILES not set <?xml version="1.0" encoding="utf-8" standalone="yes"?> <hoge xmlns:hage="http://example.com/hage" xmlns:hora="http://example.com/hora"> <hage:a name="aaa" value="12345" a="1">DOG</hage:a> <hage:a name="bbb" value="56789" b="2">CAT</hage:a> </hoge> "Variable $SGML_CATALOG_FILES not set"と出ているのは、"SGML_CATALOG_FILES"環境変数が存在しないからです。 カタログファイル変数にカタログファイルを登録しておくといいのかもしれませんが、めんどくさいので割愛します。

--nocatalogs

deactivate all catalogs すべてのカタログを無効にする

--auto

generate a small doc on the fly その場で小さなドキュメントを生成する xmllint --auto <?xml version="1.0"?> <info>abc</info> 何の意味があるかわからないですが、簡単なxmlデータを自動作成してくれます。 これをどう使うのでしょうか???

--xinclude

do XInclude processing XInclude処理をする XMLLINT-test <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <p xmlns:xi="http://www.w3.org/2001/XInclude"> <p><xi:include href="sample3.txt" parse="text"/></p> </p> $ xmllint sample3.xml --xinclude <?xml version="1.0" encoding="utf-8" standalone="yes"?> <p xmlns:xi="http://www.w3.org/2001/XInclude"> <p>XMLLINT-test</p> </p> 外部ファイルをincludeしてくれます。 インライン置換に使えそう

--noxincludenode

same but do not generate XInclude nodes 同じだがXIncludeノードを生成しない $ xmllint sample3.xml --noxincludenode <?xml version="1.0" encoding="utf-8" standalone="yes"?> <p xmlns:xi="http://www.w3.org/2001/XInclude"> <p>XMLLINT-test</p> </p> root@f5182eef3c9d:/var/www/html/la "--xinclude"と同じなので、説明は割愛。

--nofixup-base-uris

do not fixup xml:base uris xml:base urisを修正しないでください。 $ xmllint sample3.xml --nofixup-base-uris <?xml version="1.0" encoding="utf-8" standalone="yes"?> <p xmlns:xi="http://www.w3.org/2001/XInclude"> <p>XMLLINT-test</p> </p> あれ?includeされてる・・・これは・・・

--loaddtd

fetch external DTD 外部DTDを取得する $ xmllint sample3.xml --loaddtd <?xml version="1.0" encoding="utf-8" standalone="yes"?> <p xmlns:xi="http://www.w3.org/2001/XInclude"> <p><xi:include href="sample3.txt" parse="text"/></p> </p> DTDの強制ロードですが、この程度のxmlではあまり意味がなさそうです。

--dtdattr

loaddtd + populate the tree with inherited attributes loaddtd +継承した属性をツリーに追加します $ xmllint sample2.xml --dtdattr <?xml version="1.0" encoding="utf-8" standalone="yes"?> <hoge xmlns:hage="http://example.com/hage" xmlns:hora="http://example.com/hora"> <hage:a name="aaa" value="12345" a="1">DOG</hage:a> <hage:a name="bbb" value="56789" b="2">CAT</hage:a> </hoge> 継承用の属性データを作るのがめんどくさかったので、割愛しちゃいました・・・

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。