{"id":14616,"date":"2025-04-11T17:02:07","date_gmt":"2025-04-11T08:02:07","guid":{"rendered":"https:\/\/www.sambuichi.jp\/?p=14616"},"modified":"2025-04-12T08:40:29","modified_gmt":"2025-04-11T23:40:29","slug":"14616","status":"publish","type":"post","link":"https:\/\/www.sambuichi.jp\/?p=14616&lang=en","title":{"rendered":"XBRL GL Taxonomy 2025: Dual-Support for Tuple and Structured CSV(Dimensional xBRL-CSV)"},"content":{"rendered":"<p>Views: 31<\/p><div id=\"header\">\n<h1>XBRL GL Taxonomy 2025: Dual-Support for Tuple and Dimensional xBRL-CSV<\/h1>\n<div class=\"details\">\n<span id=\"author\" class=\"author\">Author: ChatGPT with editor SAMBUICHI, Nobuyuki<\/span><br \/>\n<span id=\"revdate\">2025-04-13<\/span>\n<\/div>\n<\/div>\n<div id=\"content\">\n<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"quoteblock abstract\">\n<blockquote><p>\nThis document describes the preparation and verification process for the revised XBRL GL taxonomy that supports both traditional tuple-based taxonomy and modern xBRL-CSV dimensional format. The final output is packaged in the zip file <code>gl2025-04-12.zip<\/code>.\n<\/p><\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_overview\">1. Overview<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The revised taxonomy is generated through a structured process that involves parsing, transformation, and validation. Below is a summary of the workflow.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>This directory contains the revised XBRL GL taxonomy, supporting both the traditional palette (tuple-based) taxonomy and the modern xBRL-CSV dimensional taxonomy.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The updated taxonomy was produced through a structured workflow using a set of Python scripts. This workflow enables generation and validation of both schema and instance documents.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_workflow_steps\">2. Workflow Steps<\/h2>\n<div class=\"sectionbody\">\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>Copy the palette taxonomy from the 2016 PWD version.<\/p>\n<\/li>\n<li>\n<p>Analyse the copied taxonomy using <code>xBRLGL_ParseTaxonomy.py<\/code> to generate the Logical Hierarchical Model (LHM) CSV.<\/p>\n<\/li>\n<li>\n<p>Use <code>xBRLGL_TaxonomyGenerator.py<\/code> with the LHM CSV to generate two XSD schema files:<\/p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><code>gl-plt-all-2025-12-01.xsd<\/code>: Tuple-based traditional taxonomy<\/p>\n<\/li>\n<li>\n<p><code>gl-plt-oim-2025-12-01.xsd<\/code>: xBRL-CSV dimensional taxonomy<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/li>\n<li>\n<p>Copy and update instance documents in the <code>ids\/<\/code> directory to reference the new <code>gl-plt-all-2025-12-01.xsd<\/code>, and validate them with XMLSpy and Arelle.<\/p>\n<\/li>\n<li>\n<p>Run <code>xBRLGL_StructuredCSV.py<\/code> on updated instances to generate xBRL-CSV instances (CSV + JSON metadata).<\/p>\n<\/li>\n<li>\n<p>Validate the structured CSV files with Arelle&#8217;s OIM support.<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_directory_structure\">3. Directory structure<\/h2>\n<div class=\"sectionbody\">\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>gl2025-04-12\/\r\n\u251c\u2500\u2500 bus\/\r\n\u251c\u2500\u2500 cor\/\r\n\u251c\u2500\u2500 ehm\/\r\n\u251c\u2500\u2500 ids\/\r\n\u2502   \u251c\u2500\u2500 1-GL-Generic-simple-context.xml\r\n\u2502   \u251c\u2500\u2500 Vendor_Invoices.xml\r\n\u2502   \u2514\u2500\u2500 ...\r\n\u251c\u2500\u2500 muc\/\r\n\u251c\u2500\u2500 OIM\/\r\n\u2502   \u251c\u2500\u2500 1-GL-Generic-simple-context.csv\r\n\u2502   \u251c\u2500\u2500 1-GL-Generic-simple-context.json\r\n\u2502   \u251c\u2500\u2500 Vendor_Invoices.csv\r\n\u2502   \u251c\u2500\u2500 Vendor_Invoices.json\r\n\u2502   \u2514\u2500\u2500 ...\r\n\u251c\u2500\u2500 plt\/\r\n\u2502   \u251c\u2500\u2500 gl-plt-all-2025-12-01.xsd\r\n\u2502   \u251c\u2500\u2500 gl-plt-oim-2025-12-01.xsd\r\n\u2502   \u251c\u2500\u2500 gl-plt-def-2025-12-01.xsd\r\n\u2502   \u2514\u2500\u2500 ...\r\n\u251c\u2500\u2500 ...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_by_step_instructions\">4. Step-by-Step Instructions<\/h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_copy_the_palette_taxonomy_2016\">4.1. Copy the Palette Taxonomy (2016)<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Use the official 2016 PWD version of the XBRL GL taxonomy as the starting point.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<div class=\"title\">Viewing the xBRL-GL Taxonomy Presentation Linkbase with XMLSpy<\/div>\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/presentation.png\" alt=\"presentation\"><\/span><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_parse_the_taxonomy\">4.2. Parse the Taxonomy<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Use the following script:<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-txt\" data-lang=\"txt\"># xBRL-GL_ParseTaxonomy.py\r\n# Extracts the hierarchical model and metadata<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Output:<br \/>\n&#8211; <code>XBRL_GL_Structure.csv<\/code>: contains semantic structure and metadata<br \/>\n&#8211; Example<\/p>\n<\/div>\n<div class=\"paragraph\">\n<div class=\"title\">Logical hierarchical Model<\/div>\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/LHM.png\" alt=\"LHM\"><\/span><\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<col style=\"width: 5%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">sequence<\/th>\n<th class=\"tableblock halign-left valign-top\">level<\/th>\n<th class=\"tableblock halign-left valign-top\">type<\/th>\n<th class=\"tableblock halign-left valign-top\">identifier<\/th>\n<th class=\"tableblock halign-left valign-top\">name<\/th>\n<th class=\"tableblock halign-left valign-top\">datatype<\/th>\n<th class=\"tableblock halign-left valign-top\">multiplicity<\/th>\n<th class=\"tableblock halign-left valign-top\">domain_name<\/th>\n<th class=\"tableblock halign-left valign-top\">definition<\/th>\n<th class=\"tableblock halign-left valign-top\">module<\/th>\n<th class=\"tableblock halign-left valign-top\">table<\/th>\n<th class=\"tableblock halign-left valign-top\">class_term<\/th>\n<th class=\"tableblock halign-left valign-top\">id<\/th>\n<th class=\"tableblock halign-left valign-top\">path<\/th>\n<th class=\"tableblock halign-left valign-top\">semantic_path<\/th>\n<th class=\"tableblock halign-left valign-top\">abbreviation_path<\/th>\n<th class=\"tableblock halign-left valign-top\">label_local<\/th>\n<th class=\"tableblock halign-left valign-top\">definition_local<\/th>\n<th class=\"tableblock halign-left valign-top\">element<\/th>\n<th class=\"tableblock halign-left valign-top\">xpath<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">C<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Accounting Entries<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1..*<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Root for XBRL GL. No entry made here.<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">xBRL<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">$.Accounting Entries<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">AccntgEntrs<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u3010\u4f1a\u8a08\u4ed5\u8a33\u3011<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">XBRL GL\u306e\u30eb\u30fc\u30c8\u8981\u7d20\u3002 \u3053\u306e\u8981\u7d20\u306b\u306f\u30c7\u30fc\u30bf\u306f\u767b\u9332\u3055\u308c\u306a\u3044\u3002<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor:accountingEntries<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\/xbrli:xbrl\/gl-cor:accountingEntries<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">C<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Document Information<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Parent for descriptive information about the accountingEntries section in which it is contained.<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Document Information<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">$.Accounting Entries.Document Information<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">AccntgEntrs_DocmntInfrmn<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u3010\u6587\u66f8\u60c5\u5831\u3011<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u3053\u306e\u4f1a\u8a08\u4ed5\u8a33\u306b\u95a2\u3059\u308b\u60c5\u5831\u306e\u89aa\u30bf\u30b0\u3002<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor:documentInfo<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\/xbrli:xbrl\/gl-cor:accountingEntries\/gl-cor:documentInfo<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Document Type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">xbrli:tokenItemType<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">account: information to fill in a chart of accounts file. balance: the results of accumulation of a complete and validated list of entries for an account (or a list of account) in a specific period &#8211; sometimes called general ledger etc.<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Document Information<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">$.Accounting Entries.Document Information.Document Type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">AccntgEntrs_DocmntInfrmn_DocmntType<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u6587\u66f8\u7a2e\u5225<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30fb\u79d1\u76ee:\u79d1\u76ee\u4f53\u7cfb\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3002 \u30fb\u6b8b\u9ad8:\u7279\u5b9a\u306e\u671f\u9593\u306b\u3064\u3044\u3066\u3001\u52d8\u5b9a\u79d1\u76ee(\u307e\u305f\u306f\u52d8\u5b9a\u79d1\u76ee\u30ea\u30b9\u30c8)\u306e\u3001\u5b8c\u4e86\u3057\u691c\u8a3c\u3055\u308c\u305f\u4ed5\u8a33\u30ea\u30b9\u30c8\u306e\u7d2f\u7b97\u7d50\u679c\u3002\u6642\u306b\u7dcf\u52d8\u5b9a\u5143\u5e33\u3068\u547c\u3070\u308c\u308b\u3002\u4ed6<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">gl-cor:entriesType<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\/xbrli:xbrl\/gl-cor:accountingEntries\/gl-cor:documentInfo\/gl-cor:entriesType<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_generate_revised_taxonomies\">4.3. Generate Revised Taxonomies<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Use the generator script:<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-txt\" data-lang=\"txt\"># xBRLGL_TaxonomyGenerator.py\r\n# Generates:\r\n#  - gl-plt-all-2025-12-01.xsd (tuple-based)\r\n#  - gl-plt-oim-2025-12-01.xsd (dimensional xBRL-CSV)<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<div class=\"title\">Revised taxonomy folders<\/div>\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/Folder.png\" alt=\"Folder\"><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<div class=\"title\">xBRL-CSV dimension definition linkbase<\/div>\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/definition.png\" alt=\"definition\"><\/span><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_validate_schema_and_instance\">4.4. Validate Schema and Instance<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Sample instances in <code>ids\/<\/code> directory are updated to reference <code>gl-plt-all-2025-12-01.xsd<\/code><\/p>\n<\/li>\n<li>\n<p>Validated with:<\/p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Altova XMLSpy (XBRL aware)<\/p>\n<\/li>\n<li>\n<p>Arelle (open-source XBRL processor)<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>The following figure shows an example XBRL-GL instance document referencing the newly generated <code>gl-plt-all-2025-12-01.xsd<\/code> taxonomy. This document has been validated successfully using XMLSpy and Arelle.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/VendorInvoiceXML.png\" alt=\"Vendor Invoice Instance\" width=\"100%\">\n<\/div>\n<div class=\"title\">Figure 1. Vendor Invoice Instance<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>This instance demonstrates the use of the traditional tuple-based structure from the revised palette taxonomy. It includes elements like <code>gl-cor:entryHeader<\/code> and <code>gl-cor:entryDetail<\/code>, nested under <code>gl-cor:accountingEntries<\/code>. The new taxonomy ensures these elements are also compatible with the xBRL-CSV dimensional structure for enhanced usability and conversion.<\/p>\n<\/div>\n<div class=\"admonitionblock note\">\n<table>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">\nThe root schema reference in the instance document:\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;xbrli:xbrl\r\n  xmlns:xbrli=\"http:\/\/www.xbrl.org\/2003\/instance\"\r\n  xmlns:gl-cor=\"http:\/\/www.xbrl.org\/int\/gl\/cor\/2025-12-01\"\r\n  ...\r\n  xsi:schemaLocation=\"http:\/\/www.xbrl.org\/int\/gl\/plt\/2025-12-01 ..\/plt\/gl-plt-all-2025-12-01.xsd\"&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_convert_to_xbrl_csv\">4.5. Convert to xBRL-CSV<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Use:<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-txt\" data-lang=\"txt\"># xBRLGL_StructuredCSV.py\r\n# Converts XBRL GL instance to structured CSV + JSON metadata<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Command-line example:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-bash\" data-lang=\"bash\">python xBRLGL_StructuredCSV.py \\\r\n  -i gl\/ids\/Vendor_Invoices.xml \\\r\n  -n 2025-12-01 \\\r\n  -s XBRL_GL_Structure.csv \\\r\n  -o gl\/OIM\/Vendor_Invoices.csv \\\r\n  -e utf-8-sig -v -d<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Output:<br \/>\n&#8211; <code>Vendor_Invoices.csv<\/code><br \/>\n&#8211; <code>Vendor_Invoices.json<\/code><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_validate_xbrl_csv_instances\">4.6. Validate xBRL-CSV Instances<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Final CSV\/JSON pairs are validated using Arelle with xBRL-CSV plugin enabled.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>The following image shows a structured <code>xBRL-CSV<\/code> representation of a Vendor Invoice. This CSV was generated from the corresponding XBRL-GL instance document using the <code>xBRLGL_StructuredCSV.py<\/code> script.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/VendorInvoice.png\" alt=\"Vendor Invoice CSV\" width=\"100%\">\n<\/div>\n<div class=\"title\">Figure 2. Viewing the Vendor Invoice xBRL-CSV (Structured CSV) with Arelle<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>This <code>xBRL-CSV<\/code> instance includes dimensional values and associated properties extracted from the XBRL-GL tuples. Below is an excerpt of typical columns related to <code>entryHeader<\/code> and <code>entryDetail<\/code>:<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_scripts_overview\">5. Scripts Overview<\/h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_xbrl_gl_parsetaxonomy_py\">5.1. xBRL-GL_ParseTaxonomy.py<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Parses original <code>.xsd<\/code> schema files<\/p>\n<\/li>\n<li>\n<p>Generates semantic model (<code>LHM<\/code>) in CSV<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_xbrlgl_taxonomygenerator_py\">5.2. xBRLGL_TaxonomyGenerator.py<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Reads the <code>LHM CSV<\/code><\/p>\n<\/li>\n<li>\n<p>Produces both tuple-based and dimensional taxonomies<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_xbrlgl_structuredcsv_py\">5.3. xBRLGL_StructuredCSV.py<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Reads XBRL GL XML instance<\/p>\n<\/li>\n<li>\n<p>Generates structured <code>tidy<\/code> CSV + JSON metadata conforming to xBRL-CSV<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<div class=\"title\">Structured CSV (xBRL-CSV)<\/div>\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2025\/04\/Invoice.png\" alt=\"Structured CSV (xBRL-CSV)\" width=\"100%\"><\/span><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_run_with_parameter_bat\">5.4. run_with_parameter.bat<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Batch launcher for structured CSV conversion<\/p>\n<\/li>\n<li>\n<p>Accepts instance name and other args<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_test_run_bat\">5.5. test_run.bat<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Test version with hardcoded example instance<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_conclusion\">6. Conclusion<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>This dual-support taxonomy provides a flexible way to represent accounting data using both classic tuple and modern xBRL-CSV standards. All scripts and transformations are aligned with the ISO\/IEC and XBRL GL profiles and validated across multiple tools.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_download\">7. Download<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The final output, including the revised taxonomy and instance documents, is packaged in the following ZIP file:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1BovGrdiqSwXvqA5OYVT8M7MZnosMYi9z\/view?usp=sharing\"><code>gl2025-04-12.zip<\/code><\/a><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>This archive contains:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Revised XBRL GL schemas (<code>gl-plt-all-2025-12-01.xsd<\/code>, <code>gl-plt-oim-2025-12-01.xsd<\/code>, <code>gl-plt-def-2025-12-01.xsd<\/code>)<\/p>\n<\/li>\n<li>\n<p>Sample instance documents in <code>ids\/<\/code><\/p>\n<\/li>\n<li>\n<p>xBRL-CSV output files (CSV + JSON metadata) in <code>OIM\/<\/code><\/p>\n<\/li>\n<li>\n<p>Supporting structure and batch scripts<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"footer\">\n<div id=\"footer-text\">\nLast updated 2025-04-12 08:39:41 +0900\n<\/div>\n<\/div>\n<div id=\"toc\" class=\"toc2\">\n<div id=\"toctitle\">Table of Contents<\/div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_overview\">1. Overview<\/a><\/li>\n<li><a href=\"#_workflow_steps\">2. Workflow Steps<\/a><\/li>\n<li><a href=\"#_directory_structure\">3. Directory structure<\/a><\/li>\n<li><a href=\"#_step_by_step_instructions\">4. Step-by-Step Instructions<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_copy_the_palette_taxonomy_2016\">4.1. Copy the Palette Taxonomy (2016)<\/a><\/li>\n<li><a href=\"#_parse_the_taxonomy\">4.2. Parse the Taxonomy<\/a><\/li>\n<li><a href=\"#_generate_revised_taxonomies\">4.3. Generate Revised Taxonomies<\/a><\/li>\n<li><a href=\"#_validate_schema_and_instance\">4.4. Validate Schema and Instance<\/a><\/li>\n<li><a href=\"#_convert_to_xbrl_csv\">4.5. Convert to xBRL-CSV<\/a><\/li>\n<li><a href=\"#_validate_xbrl_csv_instances\">4.6. Validate xBRL-CSV Instances<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_scripts_overview\">5. Scripts Overview<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_xbrl_gl_parsetaxonomy_py\">5.1. xBRL-GL_ParseTaxonomy.py<\/a><\/li>\n<li><a href=\"#_xbrlgl_taxonomygenerator_py\">5.2. xBRLGL_TaxonomyGenerator.py<\/a><\/li>\n<li><a href=\"#_xbrlgl_structuredcsv_py\">5.3. xBRLGL_StructuredCSV.py<\/a><\/li>\n<li><a href=\"#_run_with_parameter_bat\">5.4. run_with_parameter.bat<\/a><\/li>\n<li><a href=\"#_test_run_bat\">5.5. test_run.bat<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_conclusion\">6. Conclusion<\/a><\/li>\n<li><a href=\"#_download\">7. Download<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Views: 31 XBRL GL Taxonomy 2025: Dual-Support for Tuple and Dimensional xBRL-CSV Author: ChatGPT with editor S [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":14563,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[76,17,66],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/14616"}],"collection":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14616"}],"version-history":[{"count":10,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/14616\/revisions"}],"predecessor-version":[{"id":14630,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/14616\/revisions\/14630"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/media\/14563"}],"wp:attachment":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}