アンテナハウス マイページを公開しました!

アンテナハウス マイページ ログイン画面

アンテナハウス マイページ ログイン画面

昨日 2020年9月28日より、ご購入いただいた製品のオンラインユーザー登録と、オンラインショップで購入時に必要な会員登録を統合し、「アンテナハウス マイページ」として、サービスを開始しました。

マイページではオンランショップとログイン処理を共通化し、両サービスをシームレスに利用できるようになりました。また、登録された製品のバージョンアップ購入や優待販売があるかをお知らせ表示して、直接該当の製品をオンラインショップでご購入いただけるようになります。

マイページ トップメニュー画面

マイページ トップメニュー画面

アンテナハウスのデスクトップ製品をご購入いただいて、まだ製品の登録を行っていないお客様は、ぜひ新しいマイページでご登録ください。

マイページの登録は無料で、製品をお持ちでない方もアカウントの作成ができます。

アカウントの作成をしておくことで、次にオンラインショップで購入したり、見積書のPDFを作成するときにスムーズに行なうことができます。
また、メールでの情報送信を希望される場合は、お得なセール情報などの配信やメルマガ限定の特価販売の情報などを受信できます。

製品をお持ちでない方も、この機会にぜひアカウントをご登録ください。




瞬簡PDF 作成 2024
ドラッグ&ドロップでPDF作成


瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換

e-na伊那谷 旅便り 第39回 秋のお出かけにスイーツはいかが

伊那谷の紅葉は10中旬から11月中旬が見頃です。
伊那市内では、高遠城址公園、春日公園などで秋の風情を楽しむことができます。
秋のお出かけのお供として、スイーツを紹介します。

ル・ノール・リヴィエール

お隣駒ケ根市の駒ケ根高原にある「ル・ノール・リヴィエール」は、北川製菓直営のオリジナルスイーツのお店です。
一番人気は「キャラメリゼバウム」で、
バームクーヘンの表面をバーナーで炙り、キャラメリゼした表面がとても香ばしいスイーツです。
テレビで紹介されたこともあり有名なので、今回の記事では紹介していません。
お店の隣に工場があり、工場見学もあるようです。

お店の外観です。

店内のアウトレットコーナーには、10種類ほど置かれており、1箱10個入りのようです。
この中から、2種類をご紹介します。

「朝食ソフトケーキ」

「ポンデドーナツ ココア味」

 

店内の冷蔵ケースより「幻のクリームパン」。
もちもちした生地と、濃厚なクリームが組み合わさった一品です。
お店の横に池とベンチがあるので、冷たいうちにいただきました。



「ル・ノール・リヴィエール」は、駒ヶ岳ロープウェイへ向かう道の途中にあります。
ロープウエイから見る、秋の紅葉は絶景です。ぜひ伊那谷を訪れてみてください。





瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!


HTML on Word
WebページをWordで作る!

電帳法スキャナ保存の「禁じ手」_「取引に至らなかった書類」について YouTubeミニセミナー第16弾

デジタル化に舵を切る為の最短コースである国税庁の「電子帳簿保存法」「スキャナ保存」、その「禁じ手」と「リスク」への考察をします。

電子帳簿保存法4条3項で規定されている「スキャナ保存」制度の保存要件は同法施行規則3条に細かく規定されていて、その要件を同法通達*1や通達趣旨説明並びに一問一答*2で補完されています。

今回のテーマは「取引に至らなかった書類について」です。本要件は注意が必要です。是非本セミナーで確認してください。

内容をギュッと5分に圧縮して、YouTubeでいつでも視聴できるミニセミナーにしました。
お好みのところのみ短時間での確認も可能です!!

皆様のお役に立てれば幸いです。
また、要望を頂ければ、その要望にマッチした、セミナーの制作を検討させていただ
きます。

  1. *1 電子帳簿保存法取扱通達の制定について|国税庁 https://www.nta.go.jp/law/tsutatsu/kobetsu/sonota/980528-4/index.htm
  2. *2 電子帳簿保存法Q&A(一問一答)|国税庁 https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/07index.htm

【 公開セミナー 一覧 】

  1. 第1回 「日本はデジタル化後進国か?!」
    https://youtu.be/aKctKhLRjOY
  2. 第2回 「電帳法」を優しく解説
    https://youtu.be/RbEZe00m0TA
  3. 第3回 「帳簿・書類」の7年保存がそもそも何故求められるのか?
    https://youtu.be/Ht68XGdFdnU
  4. 第4回 タイムスタンプって_なに?
    https://youtu.be/RqRbwlHvAfo
  5. 第5回 国税庁の「電子帳簿保存法」のページの見方
    https://youtu.be/pCUfL17KgEY
  6. 第6回 電帳法4制度の横断的概要学習!
    https://youtu.be/5HbsneGZAFQ
  7. 第7回 電帳法_電子取引の最新情報!
    https://youtu.be/cRT4Cw4-n70
  8. 第8回 電帳法_導入手順!
    https://youtu.be/a7lRuEusH1Q
  9. 第9回 電帳法対応のシステム・サービスのご説明
    https://youtu.be/742w23Xd4RQ
  10. 第10回 「ScanSave」のデモムービーシリーズ 基礎編_「多彩な入力機能」
    https://youtu.be/RCN1lXSU94Y
  11. 第11回 「ScanSave」のデモムービーシリーズ _「多彩な入力機能」_応用編
    https://youtu.be/3jXpPZVM4Ko
  12. 第12回 「ScanSave」のデモムービーシリーズ _まとめてタイムスタンプ
    https://youtu.be/klXAns3Mgc4
  13. 第13回 「ScanSave」のデモムービーシリーズ _エキスポート機能について
    https://youtu.be/MhREvX_kRBU
  14. 第14回 電帳法スキャナ保存の「禁じ手」_「業務サイクル越えの原本廃棄」
    https://youtu.be/HjM9jmgvE94
  15. 第15回__電帳法スキャナ保存の「禁じ手」_「一の入力単位」について
    https://youtu.be/a8VgiDaRLPU

筆者紹介
益田康夫
メールアドレス:masuda@antenna.co.jp
1984年に社会人になり、IT業界一筋ながら3回の転職を経て現在に至っています。
特に2008年のリーマンショック後の不況の影響を受けて、2010年6月末にリストラ退社して現本業のアンテナハウス株式会社 https://www.antenna.co.jp/ に入社しました。Sun MicrosystemsやOracleを中心にしたITインフラから、IAサーバとしてのCompaqやIBMなどや、文書管理システムやポータルシステムを販売していた前職と、現在のアンテナハウスでのPDF技術や電子ファイルの変換技術などを中心にした、e-ドキュメントソリューションを探求してノウハウを習得してきました。特に、2011年以降、個人で学習時間をひねり出して、文書情報管理士資格2級、1級、上級と最短記録でレベルアップさせ、更に国家資格の行政書士※、日商簿記3級を2015年までに取得しました。
※行政書士とは、https://www.gyosei.or.jp/information/ をご覧ください。




瞬簡PDF 書けまっせ 2024
PDFに文字が書ける! 入力欄を自動認識


瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!

e-na伊那谷 旅便り 第38回 信州伊那栗

長野県で栗といえば小布施町を思い浮かべる方が多いと思いますが、ここ数年で注目されている、上伊那郡飯島町を中心に栽培される「信州伊那栗」をご存知でしょうか。

その信州伊那栗を使った和洋菓子の開発・販売を行う信州里の菓工房へ、秋の味覚を味わいに行ってきました。

店内は、栗きんとんからパウンドケーキ、コンフィチュールまで、和洋を問わず栗の味わいを生かしたお菓子が勢揃い。
お土産としてはもちろんのこと、行事ごとのギフトや贈答用のお菓子としても最適です。

カフェも併設されており、ケーキコーナーのケーキをオーダーして頂くこともできます。
カフェ限定で、新栗収穫期しか味わえない人気メニューの「できたてモンブラン」は外せません。

美味しい瞬間を味わえるよう、オーダーを受けてから絞るので栗の味が濃厚ですが甘すぎず、中に入っているサクサクのメレンゲがアクセントで最高の逸品です。(毎年大好評につき販売期間を延長し2月末まで味わえるそうです。)

他にも、「栗のソフトクリーム」「シャインマスカットのタルト」「王様のチョコレート」を頂きました。

どれも素材の味が引き立っていてとても美味しかったです。

テラス席で、秋風を感じながらの至福のひと時を過ごせました。
通販サイトもありますので、「南の伊那栗」を堪能してみてはいかがでしょうか。





瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!


瞬簡PDF 書けまっせ 2024
PDFに文字が書ける! 入力欄を自動認識

「ScanSave」が第14回JIIMAベストプラクティス賞ダブル授賞!

アンテナハウス株式会社の推薦下記2事例が第14回 JIIMA ベストプラクティス賞
に受賞しました。

株式会社 武蔵野様
「OCR 活用によるダスキン伝票・経費精算領収書等のペーパーレス化実
現」
茨城県大同青果株式会社様
「2 年前の『スキャナ保存』本番後に目覚めた!バックオフィス業務丸ご
とペーパーレス化の実現!」

詳しくは、下記をご覧ください。
https://www.jiima.or.jp/wp-content/uploads/pdf/14th_bestpractice.pdf

「受賞された企業様がご利用されているアンテナハウス・クラウドサービスに
ついて」はこちらをご覧ください。
https://www.antenna.co.jp/scansave/ss-on-onesaas.html

【補足説明】

JIIMAとは:

公益社団法人 日本文書情報マネジメント協会(理事長 勝丸 泰志)

「ベストプラクティス賞」について:

日本文書情報マネジメント協会(略称;JIIMA)は、60 年にわたり文書情報マネジメントの普及啓発に努めている国内唯一の公認団体です。マイクロフィルムの普及からスタートした活動は時代の変遷とともに変化し、現在では「安心で社会生産性の高い電子文書情報社会の構築」を目指して、文書情報マネジメントを普及啓発する公益活動を続けております。その一環として 2007 年(平成 19 年)より先進的な文書情報マネジメントシステムを導入し、顕著な成果を出された企業・団体に対して『ベストプラクティス賞』を設け表彰しております。本年度の JIIMA ベストプラクティス賞は、審査委員会での厳正な審査の結果、下記
の 7 事例に授賞が決定し、JIIMA ホームページで公表すると共に、11 月 12 日(木)から開催予定のJIIMA 主催 『デジタルドキュメント 2020 ウェビナー』で授賞発表と、受賞記念講演を行います。




瞬簡PDF 作成 2024
ドラッグ&ドロップでPDF作成


アウトライナー
PDFを解析して しおり・目次を自動生成

秋のウェビナー厳選2回「ANA・AS様」「茨城県大同青果様」登壇! (アンテナハウス)【終了しました】

2020年10月21日追記:このウェビナーは終了しました。ご参加ありがとうございました。


この度の秋のウェビナーでは、ANAエアポートサービス株式会社様と茨城県大同青果株式会社様のプロジェクトリーダーにご登壇いただき、「ScanSave」の導入ユーザーの目線でたっぷり語って頂きます。

貴重な機会です。どうぞ下記よりお申し込みください。

10月15日『2年前の「スキャナ保存」本番後に目覚めた!
バックオフィス業務丸ごとペーパーレス化の実現!』

開催日時 13:15~14:30(本番開始
会場 Zoomウェビナー
概要 2018年に販売・仕入業務について、電子帳簿保存法へ対応し、JIIMA第12回ベストプラクティス賞を受賞された茨城県大同青果株式会社様の最新事例セミナーです。
一朝一夕はいかない各種申請業務の丸ごとペーパーレス化へ向けて、同社のこれまで
の取り組みと、これからの取り組みについて体験談などをお話しいただきます。

お申し込み

(2通りあります。ご都合の良い方法でお申し込みください)

  • こくちーず:
    https://www.kokuchpro.com/event/5107f88d273c87bcaa534a364d9a4e1b/【※終了しました】
  • Zoomウェビナー登録:
    https://zoom.us/webinar/register/7415991094349/WN_xNWs3g1QQ_CqFtXvQwF0eg【※終了しました】

 


10月16日『【2年越しの検討から本番開始!】
ANAエアポートサービス(株)様のスキャナ保存事例セミナー』

開催日時 13:15~14:30(本番開始
会場 Zoomウェビナー
概要 2018年夏から本格検討してきた電子帳簿保存法「スキャナ保存制度」で、「請求
書」「領収書」の本番運用を迎え、安定稼働に入られたANAエアポートサービ
ス株式会社 総務・企画部 経営管理課のキーマンに語っていただきます。

お申し込み

(2通りあります。ご都合の良い方法でお申し込みください)

  • こくちーず:
    https://www.kokuchpro.com/event/3939f2bb0a43c1118b28af1c37896fb0/【※終了しました】
  • Zoomウェビナー登録:
    https://zoom.us/webinar/register/1015991161002/WN_DWgbaTosS7q3A8YA9DnG8Q【※終了しました】

【オンラインセミナー、キャンペーン、製品等お問い合わせ】

担当 アンテナハウス株式会社
e-ドキュメントソリューショングループ(edoc_ah@antenna.co.jp
TEL 03-5829-9021




瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換


瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!

XProcの紹介

makeが良い、悪い」という話が一部で盛り上がっているのを見ました。
結局ツールなので、「用途に向いていなくても慣れなどを取る」か「学習が必要でも別のものを使う価値が見合う」かといった、状況に合わせた選択が必要になるでしょう。個人的にはファイルの絶対パスをハードコードするのは可能な限り避けてほしいですが。

ビルドツールにも様々な得手不得手があるものですが、XMLに特化したものもあります。そんな導入で、XProcの話題です。

XProc: An XML Pipeline LanguageはXML文書やその他の処理を記述するための言語です*1
W3CのページのAbstractには“Pipelines generally accept zero or more XML documents as input and produce zero or more XML documents as output.”とあります。ステップ処理として記述ができる、ファイル操作についてもある程度はできるなど他にもありますが、XSLTとは目的も書き味も結構違います。

2010年に1.0がW3C仕様として勧告された後、勧告としてはそれが最新の状態がまだ続いています。しかし、2020年8月19日にXProc 3.0の最終ドラフトが上がっており*2、期待が持てるようになってきました。Editor’s Draftは8月31日に更に更新されていますが。ちなみに2.0は諸般の事情で見送られています。

また、XMLPressから2020年4月に『XProc 3.0 Programmer Reference』(Erik Siegel)*3が刊行されています。W3CのXProc仕様のEditorであるNorman Tovey-Walsh氏による推薦文もついていますし、Erik Siegel氏も XProc 3.0 editorial teamのメンバーです。
XProc 3.0についてはドラフト版仕様とこの本を読むのが確実でしょう。

XProc 3.0でのもっとも大きな改良点はXSLT同様にXPath 3.1に対応したことだと思いますが、今回はXProcの雰囲気だけ紹介します。


<!-- 1. Pipeline document: -->
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" version="3.0">

  <!-- 2. Pipeline port declarations: -->
  <p:input port="source" primary="true" />
  <p:output port="result" primary="true" />
  <!-- 3. Convert document to HTML: -->
  <p:xslt>
    <p:with-input port="stylesheet" href="xsl/basic-conversion.xsl" />
  </p:xslt>
</p:declare-step>

上のコードは『XProc 3.0 Programmers Reference』*3「Getting started with XProc」にある例です。
<p:declare-step>がルート要素です。inputやoutputを省略できる<p:pipeline>も使用できますが、
2行程度では大して労力は変わらないですね。

XMLSchemaのネームスペースが宣言されているのは、XSLT同様asで型を明示できるからです。

書かれた処理を簡単に書けば、「入力をxsl/basic-conversion.xslのXSLTで処理し、出力へ渡す」ということになります。しかし、よくわからないプロパティportの存在がありますね。それぞれの指定で想像が付くかと思いますが、inputによる入力を処理対象(source)というportにつなぎ、with-inputによる入力は(XSLT)スタイルシートというportにつなぎ、このスタイルシートによってsourceを処理します。そしてresultというportにつながった出力へ結果を渡す、という流れです。こう書くと同語反復をしているように感じられるかと思いますが、それぞれのportにきたものをステップ処理していく流れが直観に近い記述で書けるということです。他のportとしては、スキーマの検証のスキーマを渡すためのschemaなどがあります。
<p:xslt><p:validate-with-xml-schema>はデフォルトのstepです。portは決まったstepと結びついていて、portに渡したものは結びついたstepが記述されていれば、そのstepで処理されます。デフォルトのstepとport、そして独自のstepと結びついた独自のportを記述していくことがXProcの基本となります。

*1 https://www.w3.org/TR/xproc/
*2 https://spec.xproc.org/lastcall-2020-08/head/xproc/
*3 https://xmlpress.net/publications/xproc-3-0/





瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換


アウトライナー
PDFを解析して しおり・目次を自動生成

e-na伊那谷 旅便り 第37回 ご当地ビール

9月となり、「実りの秋」ということで、近くのブドウ園にブドウ狩りにいこうかな?と調べてみますと、残念ながら、「コロナにより今秋は直売のみ営業」となっていました。
まだまだ色々なイベントや施設の自粛が続くようです。
もうしばらく家で楽しみましょう。

そんなわけで手の消毒にアルコールが手放せませんが、
飲む方のアルコールに何か地のものがないかな?と探してみました。
暑いときはやっぱりビールですね。

南信州ビール

南信州ビール
南信州ビールとは?
長野県第1号のクラフトビールで、中央アルプスの雪解け水を豊富に含んだ地下120mより汲み上げた地下水を使ったエール系ビールです。
気の里ビール

気の里ビール
気の里ビールとは?
ご存じの方も多いかと思いますが、一時期ブームになったパワースポット「伊那市長谷村・分杭峠」の地下水で醸造したビールです。
ここには私も何度かパワーを貰いに行ったことがあります。
分杭峠の氣場からの景色

分杭峠の氣場からの景色

機会がありましたら、分杭峠を訪れて、ビールや分杭峠の水をおみやげにいかがでしょうか。
(通販でもご購入いただけます)





瞬簡PDF 作成 2024
ドラッグ&ドロップでPDF作成


アウトライナー
PDFを解析して しおり・目次を自動生成

電帳法スキャナ保存の「禁じ手」_「一の入力単位」について YouTubeミニセミナー第15弾

デジタル化に舵を切る為の最短コースである国税庁の「電子帳簿保存法」「スキャナ保存」、その「禁じ手」と「リスク」への考察をします。

電子帳簿保存法4条3項で規定されている「スキャナ保存」制度の保存要件は同法施行規則3条に細かく規定されていて、その要件を同法通達*1や通達趣旨説明並びに一問一答*2で補完されています。

今回のテーマは「一(いち)の入力単位」です。本要件は特別注意が必要です。是非本セミナーで確認してください。

内容をギュッと7分に圧縮して、YouTubeでいつでも視聴できるミニセミナーにしました。
お好みのところのみ短時間での確認も可能です!!

  1. *1 電子帳簿保存法取扱通達の制定について|国税庁 https://www.nta.go.jp/law/tsutatsu/kobetsu/sonota/980528-4/index.htm
  2. *2 電子帳簿保存法Q&A(一問一答)|国税庁 https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/07index.htm

【 公開セミナー 一覧 】

  1. 第1回 「日本はデジタル化後進国か?!」
    https://youtu.be/aKctKhLRjOY
  2. 第2回 「電帳法」を優しく解説
    https://youtu.be/RbEZe00m0TA
  3. 第3回 「帳簿・書類」の7年保存がそもそも何故求められるのか?
    https://youtu.be/Ht68XGdFdnU
  4. 第4回 タイムスタンプって_なに?
    https://youtu.be/RqRbwlHvAfo
  5. 第5回 国税庁の「電子帳簿保存法」のページの見方
    https://youtu.be/pCUfL17KgEY
  6. 第6回 電帳法4制度の横断的概要学習!
    https://youtu.be/5HbsneGZAFQ
  7. 第7回 電帳法_電子取引の最新情報!
    https://youtu.be/cRT4Cw4-n70
  8. 第8回 電帳法_導入手順!
    https://youtu.be/a7lRuEusH1Q
  9. 第9回 電帳法対応のシステム・サービスのご説明
    https://youtu.be/742w23Xd4RQ
  10. 第10回 「ScanSave」のデモムービーシリーズ 基礎編_「多彩な入力機能」
    https://youtu.be/RCN1lXSU94Y
  11. 第11回 「ScanSave」のデモムービーシリーズ _「多彩な入力機能」_応用編
    https://youtu.be/3jXpPZVM4Ko
  12. 第12回 「ScanSave」のデモムービーシリーズ _まとめてタイムスタンプ
    https://youtu.be/klXAns3Mgc4
  13. 第13回 「ScanSave」のデモムービーシリーズ _エキスポート機能について
    https://youtu.be/MhREvX_kRBU
  14. 第14回 電帳法スキャナ保存の「禁じ手」_「業務サイクル越えの原本廃棄」
    https://youtu.be/HjM9jmgvE94

筆者紹介
益田康夫
メールアドレス:masuda@antenna.co.jp
1984年に社会人になり、IT業界一筋ながら3回の転職を経て現在に至っています。
特に2008年のリーマンショック後の不況の影響を受けて、2010年6月末にリストラ退社して現本業のアンテナハウス株式会社 https://www.antenna.co.jp/ に入社しました。Sun MicrosystemsやOracleを中心にしたITインフラから、IAサーバとしてのCompaqやIBMなどや、文書管理システムやポータルシステムを販売していた前職と、現在のアンテナハウスでのPDF技術や電子ファイルの変換技術などを中心にした、e-ドキュメントソリューションを探求してノウハウを習得してきました。特に、2011年以降、個人で学習時間をひねり出して、文書情報管理士資格2級、1級、上級と最短記録でレベルアップさせ、更に国家資格の行政書士※、日商簿記3級を2015年までに取得しました。
※行政書士とは、https://www.gyosei.or.jp/information/ をご覧ください。




瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!


瞬簡PDF 書けまっせ 2024
PDFに文字が書ける! 入力欄を自動認識

XSLT 3.0(XPath 3.1)JSONをXMLに変換せずに利用する

先週はXMLの形にしたJSONを、XMLにしないまま扱う方法について紹介します。CSLはでてきません。

XPath 3.1*1で名前にJSONが入る関数は4つです。

  • fn:parse-json($json-text as xs:string?, $options as map(*))
  • fn:json-doc($href as xs:string?, $options as map(*))
  • fn:json-to-xml($json-text as xs:string?, $options as map(*))
  • fn:xml-to-json($input as node()?, $options as map(*))

$optionsについては説明しません。JSONをテキストとして引数にとるのがfn:parse-json()fn:json-to-xml()
fn:json-doc()は外部JSONファイルを読み込むときなどに指定します。fn:unparsed-text()で取得したテキストをfn:parse-json()へ適用するのと
大体同じことを行います。今回取り上げるのはfn:parse-json()fn:json-doc()についてです。

mapとarray

関係する名前空間は次に挙げるものです。

  • fn=”http://www.w3.org/2005/xpath-functions”
  • map=”http://www.w3.org/2005/xpath-functions/map”
  • array=”http://www.w3.org/2005/xpath-functions/array”

XPath 3.1のmap構造とarray構造は一般的なプログラミング言語におけるそれとほぼ同じもので、JSONオブジェクトをそのままの形で格納できます。
先週登場したJSONを見てみましょう。

{
    "items": [
        {
            "id": "7646893/2E3MJB9A",
            "type": "book",
            "title": "スタイルシート開発の基礎",
            "publisher": "アンテナハウス株式会社",
            "publisher-place": "Tokyo",
            "event-place": "Tokyo",
            "ISBN": "978-4-900552-23-4",
            "language": "ja",
            "author": [
                {
                    "family": "アンテナハウス株式会社",
                    "given": ""
                }
            ],
            "issued": {
                "date-parts": [
                    [
                        2016,
                        5
                    ]
                ]
            }
        }
    ]
}

このJSONを外部ファイルとして取り込むには次のように記述します。

<xsl:param name="input" >'exported-data.json'</xsl:param>
...
<xsl:variable as="map(*)" name="jsonMap" select="fn:json-doc($input)"/>
<!-- または -->
<xsl:variable as="xs:string" name="json-text" select="fn:unparsed-text($input)"/>
<xsl:variable as="map(*)" name="jsonMap" select="parse-json($json-text)"/>

XMLに変換した先週と、mapやarrayを活用する今回はこの後がまったく異なります。

次の記述で、先頭のtitleを一息で取得します。

<xsl:value-of select="map:get(array:head(map:get($jsonMap, 'items')), 'title')" />

まず、最も外側のmapから、itemsのキーを持つ要素を取得します(map:get($jsonMap, 'items'))。
キーitemsの値はarray型です。このままmap:get()を行おうとしてもできませんから、arrayの先頭を取り出すarray:head()を使用しています。ところで上の記述はパイプ演算子を使えば次のように書けます。

<xsl:value-of select="map:get($jsonMap, 'items') => array:head() => map:get('title')" />

mapのarrayでは、map:find()を利用することで指定したキーの値を配列で得ることもできます。挙動の詳細はXPath 3.1*1かXSLT 3.0*2のページを確認してください。

typeの値が何種類かに決まっていて、その種類を元にif文の判定をしたいのであれば、次のように書けます。

     <xsl:variable as="map(*)" name="item" select="map:get($jsonMap, 'items') => array:head()" />
      <xsl:if test="map:get($item,  'type') =  'book' or 'proceedings'">
      <xsl:value-of select="map:get($item, 'type')" /> <!-- book -->
      </xsl:if>

もちろんXMLの構造に変換しても同じことはできますが、より一般的なプログラミング言語に近い形で扱えています。

mapやarrayとして扱うために、JSONテキストとして記述してパースしたり、select="map{"key":value}"のような書き方をする以外に、<xsl:map><map-entry>を使うことができます。

mapの操作はエントリの追加やキー指定での削除などの他、map:merge()によるmapの統合、map:for-each()によるmap要素単位での関数適用などが可能です。arrayの方はarray:fold-left()array:fold-right()の畳み込み関数や、array:for-each()でarrayの要素ごとに関数適用などなど、XML形式を扱うよりもすっきりした構文で記述が可能な関数が用意されています。

注意しなければならないこととして、mapであるかarrayであるかを間違えるとうまく値を取り出せません。$itemnodeでもないので、直接xml-to-json()は使えません。

仕様やSaxonのドキュメントとにらめっこをしながら紹介してきたXSLT 3.0とXPath 3.1のJSONの扱いですが、誤りなどありましたらご指摘ください。

*1 https://www.w3.org/TR/xpath-31/
*2 https://www.w3.org/TR/xslt-30/


参考資料





アウトライナー
PDFを解析して しおり・目次を自動生成


瞬簡PDF 書けまっせ 2024
PDFに文字が書ける! 入力欄を自動認識
Pages: Prev 1 2 3 ... 26 27 28 29 30 31 32 ... 229 230 231 Next