• #e-Tax
  • #XTX
  • #XML
  • #実装
  • #法人税
開発完了

XTX生成 実装可能性分析

結論: 実装可能

e-Tax XMLスキーマを解析した結果、XTX生成エンジンの実装は技術的に可能と判断。


1. スキーマ解析結果

1.1 ファイル構成

19XMLスキーマ/
├── general/          # 共通型定義
│   ├── General.xsd   # 基本データ型
│   ├── zeimoku.xsd   # 税目コード
│   └── zeimusho.xsd  # 税務署コード
├── hojin/            # 法人税(7,153ファイル)
│   ├── HOA110-*.xsd  # 別表1(各事業年度の所得)
│   ├── HOA120-*.xsd  # 別表2系
│   └── ...
├── shohi/            # 消費税
├── gensen/           # 源泉所得税
└── ...

1.2 スキーマの特徴

項目内容
名前空間http://xml.e-tax.nta.go.jp/XSD/hojin
エンコーディングUTF-8
要素命名規則AAA00010 のようなコード形式
項目名xsd:appinfo で日本語定義
バージョン管理属性 VR で管理

1.3 データ型(General.xsd)

型名説明内部型
kingaku金額xsd:long(15桁まで)
gaika外貨金額xsd:decimal
name名前xsd:string
address住所xsd:string
yymmdd日付年月日形式
kubun区分コード列挙型

2. 別表1(HOA110)の構造

<HOA110 VR="1.0" softNM="..." sakuseiNM="..." sakuseiDay="...">
  <AAA00000>  <!-- 納税者等部 -->
    <AAA00010>...</AAA00010>  <!-- 提出年月日 -->
    <AAA00020>...</AAA00020>  <!-- 提出先税務署 -->
    <AAA00070>...</AAA00070>  <!-- 法人名 -->
    ...
  </AAA00000>
  <AAB00000>  <!-- 法人税額の計算 -->
    <AAB00010>...</AAB00010>  <!-- 所得金額又は欠損金額 -->
    <AAB00020>...</AAB00020>  <!-- 法人税額 -->
    ...
  </AAB00000>
</HOA110>

主要項目マッピング

コード項目名別表での位置
AAA00010提出年月日ヘッダー
AAA00070法人名ヘッダー
AAB00010所得金額又は欠損金額(1)
AAB00020法人税額(2)
AAB00040差引法人税額(4)
AAB00170差引所得に対する法人税額(12)
AAB00190差引確定法人税額(14)

3. 実装アーキテクチャ

3.1 推奨構成

┌─────────────────────────────────────────────────────┐
│  入力層                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐          │
│  │ 会計ソフト │  │  CSV入力  │  │  手入力   │          │
│  │    API    │  │          │  │   UI    │          │
│  └─────┬────┘  └─────┬────┘  └─────┬────┘          │
│        └──────────────┼──────────────┘               │
│                       ▼                              │
│  ┌─────────────────────────────────────────────┐    │
│  │        統一入力データ構造(TypeScript型)     │    │
│  │   interface HoujinzeiInput {                │    │
│  │     company: CompanyInfo;                   │    │
│  │     fiscalYear: FiscalYear;                 │    │
│  │     financials: FinancialData;              │    │
│  │     taxAdjustments: TaxAdjustment[];        │    │
│  │   }                                         │    │
│  └─────────────────────┬───────────────────────┘    │
│                        ▼                             │
│  ┌─────────────────────────────────────────────┐    │
│  │           計算エンジン                        │    │
│  │   - 別表4: 所得金額計算                      │    │
│  │   - 別表5-1: 利益積立金額計算                 │    │
│  │   - 別表1: 法人税額計算                      │    │
│  └─────────────────────┬───────────────────────┘    │
│                        ▼                             │
│  ┌─────────────────────────────────────────────┐    │
│  │           出力生成                            │    │
│  │   ┌─────────┐  ┌─────────┐  ┌─────────┐     │    │
│  │   │ XTX生成  │  │ PDF生成  │  │ CSV出力  │     │    │
│  │   │(e-Tax用) │  │(印刷用)  │  │(確認用)  │     │    │
│  │   └─────────┘  └─────────┘  └─────────┘     │    │
│  └─────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────┘

3.2 XTX生成モジュール

// スキーマから自動生成する型定義
interface HOA110 {
  VR: "1.0";
  AAA00000: {  // 納税者等部
    AAA00010?: string;  // 提出年月日
    AAA00020?: ZeimushoCode;  // 提出先税務署
    AAA00070?: string;  // 法人名
    // ...
  };
  AAB00000: {  // 法人税額の計算
    AAB00010?: number;  // 所得金額又は欠損金額
    AAB00020?: number;  // 法人税額
    // ...
  };
}

// XTX生成関数
function generateXTX(data: HOA110): string {
  const builder = new XMLBuilder({
    declaration: { encoding: 'UTF-8', standalone: 'no' },
    format: true
  });
  return builder.build({ HOA110: data });
}

4. 実装工数見積もり

4.1 MVP(別表1, 4, 5-1, 5-2, 15)

タスク見積もり
XSDからTypeScript型生成ツール1週間
計算エンジン(5帳票)2週間
XTX生成モジュール1週間
バリデーション1週間
テスト・検証1週間
合計約6週間

4.2 制約事項

  1. 電子署名は含まない - e-Taxソフトで実施
  2. 送信機能は含まない - e-Taxソフト経由
  3. eLTAXは別途対応 - 仕様開示申請が必要

5. 次のアクション

  1. XSDパーサーの実装(TypeScript型自動生成)
  2. 別表4の計算ロジック実装
  3. 別表1の計算ロジック実装
  4. XTX生成モジュール実装
  5. e-Taxソフトでの読み込みテスト

参考: スキーマファイル格納場所

apps/web/content/2026-01-10/etax-specs/xsd/19XMLスキーマ/
├── hojin/HOA110-*.xsd  # 別表1
├── hojin/HOA140-*.xsd  # 別表4
├── hojin/HOA150-*.xsd  # 別表5
└── general/General.xsd # 共通型定義