VSCodeでXMLを使う
わかりやすい説明はこちらから
https://digitalnagasaki.hatenablog.com/entry/2020/02/14/031218
事前の作業
VSCode のダウンロード
Javaのインストール が必要
もしくはJavaインストール不要の拡張機能「Scholarly XML」をインストール(→VSCode で XML(Scholarly XML🚧編))
1. VSCodeの拡張機能「XML」をインストール
2. settings.jsonの編集
VSCodeの設定で「XML」を検索し、「XML configuration」を選択
settings.jsonに下記の内容を追記する。ホームディレクトリはJavaのインストールで確認する。
code:setting.json
{
...(前略)...
macOSの場合
"xml.java.home": "/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home",
"java.home": "/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home"
Windowsの場合
"xml.java.home": "C:\\Program Files\\Java\\jdk-13.0.1.jdk"
パスの最後の "\\bin\\***.exe" の部分は取る
}
(Windowsの場合「\」の文字を二重にする)
3. VSCodeの再起動
Oxygenっぽく使うために
TEIスキーマ読み込み
簡単にやる
code:xml
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://tei-c.org/Vault/P5/current/xml/tei/custom/schema/xsd/tei_all.xsd">
...内容...
</TEI>
カスタマイズ(日本語版、など)
Romaでスキーマを生成(上述の拡張はW3C XML Schema形式しか対応していない)
ファイル一式をどこかに置く
(a) TEIタグのxsi:schemaLocation属性の内容を生成したスキーマに合わせて変更
code:txt
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 生成したスキーマの場所/document.xsd"
※スキーマへのパスは相対でも可(XMLのあるフォルダは「.」とする)
Romaから落とした場合はおそらくZIPに入っている中のdocument.xsdが本体
(b) XML Catalog(xsi:schemaLocationに直書きしないでローカルのXSDで上書きする)
→ TEIの記述をいじらずにスキーマを交換できる
以下のようなXMLを作成してTEIファイルと同じフォルダに保存
code:catalog.xml
<?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">
<system
systemId="https://tei-c.org/Vault/P5/current/xml/tei/custom/schema/xsd/tei_all.xsd"
uri="スキーマの場所/document.xsd"/>
</catalog>
ただし [スキーマの場所]はRomaで生成したファイル一式を置いた場所
VSCodeのsetting.jsonに以下を追記
code:settings.json
"xml.catalogs": "catalog.xml"
TEI準拠のサジェスト、補完、ドキュメント参照、バリデーションが効くhttps://gyazo.com/cf0e5da60dee14c7d5fd358d0b6fbfc2
XML Tools ( https://marketplace.visualstudio.com/items?itemName=DotJoshJohnson.xml )
XMLを整形
ツリーアウトライン
XPath検索
htmltagwrap ( https://marketplace.visualstudio.com/items?itemName=bradgashler.htmltagwrap )
「タグで囲む」機能
VSCodeではCtrl+Eは使われている、デフォルトはAlt+W
Auto Rename Tag ( https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag )
タグ名変更に終了タグも追従
❗ * 2020-03 現在、やや機能に問題あり → "SimonSiefke" 氏の修正版を推奨(操作性は若干違う)(参考URL)
xslt-transform ( https://marketplace.visualstudio.com/items?itemName=SvenAGN.xslt-transform )
XSLT変換
Saxonパーサーが必要(HEが無料版)
setting.jsonに追記
code:json
"xslt.processor": "Saxonをダウンロードした場所\\saxon9he.jar"
コマンドパレットから"Run Transformation"→XSLを選択→出力→適切なファイル形式で保存
ショートカット設定可(デフォルト:なし)、ただしCtrl+Shift+Tは使われている
整形
右クリック→ドキュメントをフォーマット
XML拡張かXML Tools拡張かを選べる(初回)、なお設定はsettings.jsonに記憶される
ユーザースニペット
メニューの「ファイル→基本設定→ユーザー スニペット→XML」で開くファイルに放り込む
TEI Allのひな型もどき
code:json
"TEI P5 All": {
"prefix": "teiall",
"body": [
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
"<TEI xmlns=\"http://www.tei-c.org/ns/1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.tei-c.org/ns/1.0 https://tei-c.org/Vault/P5/current/xml/tei/custom/schema/xsd/tei_all.xsd\">",
" <teiHeader>",
" <fileDesc>",
" <titleStmt>",
" <title>${1:Title}</title>",
" </titleStmt>",
" <publicationStmt>",
" <p>${2:Publication Information}</p>",
" </publicationStmt>",
" <sourceDesc>",
" <p>${3:Information about the source}</p>",
" </sourceDesc>",
" </fileDesc>",
" </teiHeader>",
" <text>",
" <body>",
" <p>${4:Some text here.}</p>",
" </body>",
" </text>",
"</TEI>"
],
"description": "Oxygen-like TEI (P5) All Boilerplate"
}
#人文情報学研究2