{"id":6984,"date":"2022-08-27T16:20:03","date_gmt":"2022-08-27T07:20:03","guid":{"rendered":"https:\/\/www.sambuichi.jp\/?p=6984"},"modified":"2022-09-28T11:41:48","modified_gmt":"2022-09-28T02:41:48","slug":"tidy-data-csv%e3%81%a7%e8%a1%a8%e7%8f%be%e3%81%99%e3%82%8b%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e3%82%a4%e3%83%b3%e3%83%9c%e3%82%a4%e3%82%b9%ef%bc%88jp-pint-0-9-3%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.sambuichi.jp\/?p=6984","title":{"rendered":"\u30a2\u30d7\u30ea\u9023\u643a\u306e\u305f\u3081\u306e\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u3068Tidy data\uff08\u6574\u7136\u3068\u3057\u305f\u30c7\u30fc\u30bf\uff09\u306e\u5909\u63db\u30d7\u30ed\u30b0\u30e9\u30e0"},"content":{"rendered":"<p>Views: 98<\/p><style>\n    \/*! Asciidoctor default stylesheet | MIT License | https:\/\/asciidoctor.org *\/\n    \/* Uncomment the following line when using as a custom stylesheet *\/\n    @import \"https:\/\/fonts.googleapis.com\/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700\";\n    html {\n        font-family: sans-serif;\n        -webkit-text-size-adjust: 100%\n    }<\/p>\n<p>    a {\n        background: none\n    }<\/p>\n<p>    a:focus {\n        outline: thin dotted\n    }<\/p>\n<p>    a:active,\n    a:hover {\n        outline: 0\n    }<\/p>\n<p>    h1 {\n        font-size: 2em;\n        margin: .67em 0\n    }<\/p>\n<p>    b,\n    strong {\n        font-weight: bold\n    }<\/p>\n<p>    abbr {\n        font-size: .9em\n    }<\/p>\n<p>    abbr[title] {\n        cursor: help;\n        border-bottom: 1px dotted #dddddf;\n        text-decoration: none\n    }<\/p>\n<p>    dfn {\n        font-style: italic\n    }<\/p>\n<p>    hr {\n        height: 0\n    }<\/p>\n<p>    mark {\n        background: #ff0;\n        color: #000\n    }<\/p>\n<p>    code,\n    kbd,\n    pre,\n    samp {\n        font-family: monospace;\n        font-size: 1em\n    }<\/p>\n<p>    pre {\n        white-space: pre-wrap\n    }<\/p>\n<p>    q {\n        quotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\"\n    }<\/p>\n<p>    small {\n        font-size: 80%\n    }<\/p>\n<p>    sub,\n    sup {\n        font-size: 75%;\n        line-height: 0;\n        position: relative;\n        vertical-align: baseline\n    }<\/p>\n<p>    sup {\n        top: -.5em\n    }<\/p>\n<p>    sub {\n        bottom: -.25em\n    }<\/p>\n<p>    img {\n        border: 0\n    }<\/p>\n<p>    svg:not(:root) {\n        overflow: hidden\n    }<\/p>\n<p>    figure {\n        margin: 0\n    }<\/p>\n<p>    audio,\n    video {\n        display: inline-block\n    }<\/p>\n<p>    audio:not([controls]) {\n        display: none;\n        height: 0\n    }<\/p>\n<p>    fieldset {\n        border: 1px solid silver;\n        margin: 0 2px;\n        padding: .35em .625em .75em\n    }<\/p>\n<p>    legend {\n        border: 0;\n        padding: 0\n    }<\/p>\n<p>    button,\n    input,\n    select,\n    textarea {\n        font-family: inherit;\n        font-size: 100%;\n        margin: 0\n    }<\/p>\n<p>    button,\n    input {\n        line-height: normal\n    }<\/p>\n<p>    button,\n    select {\n        text-transform: none\n    }<\/p>\n<p>    button,\n    html input[type=button],\n    input[type=reset],\n    input[type=submit] {\n        -webkit-appearance: button;\n        cursor: pointer\n    }<\/p>\n<p>    button[disabled],\n    html input[disabled] {\n        cursor: default\n    }<\/p>\n<p>    input[type=checkbox],\n    input[type=radio] {\n        padding: 0\n    }<\/p>\n<p>    button::-moz-focus-inner,\n    input::-moz-focus-inner {\n        border: 0;\n        padding: 0\n    }<\/p>\n<p>    textarea {\n        overflow: auto;\n        vertical-align: top\n    }<\/p>\n<p>    table {\n        border-collapse: collapse;\n        border-spacing: 0\n    }<\/p>\n<p>    *,\n    ::before,\n    ::after {\n        box-sizing: border-box\n    }<\/p>\n<p>    html,\n    body {\n        font-size: 100%\n    }<\/p>\n<p>    body {\n        background: #fff;\n        color: rgba(0, 0, 0, .8);\n        padding: 0;\n        margin: 0;\n        font-family: \"Noto Serif\", \"DejaVu Serif\", serif;\n        line-height: 1;\n        position: relative;\n        cursor: auto;\n        -moz-tab-size: 4;\n        -o-tab-size: 4;\n        tab-size: 4;\n        word-wrap: anywhere;\n        -moz-osx-font-smoothing: grayscale;\n        -webkit-font-smoothing: antialiased\n    }<\/p>\n<p>    a:hover {\n        cursor: pointer\n    }<\/p>\n<p>    img,\n    object,\n    embed {\n        max-width: 100%;\n        height: auto\n    }<\/p>\n<p>    object,\n    embed {\n        height: 100%\n    }<\/p>\n<p>    img {\n        -ms-interpolation-mode: bicubic\n    }<\/p>\n<p>    .left {\n        float: left !important\n    }<\/p>\n<p>    .right {\n        float: right !important\n    }<\/p>\n<p>    .text-left {\n        text-align: left !important\n    }<\/p>\n<p>    .text-right {\n        text-align: right !important\n    }<\/p>\n<p>    .text-center {\n        text-align: center !important\n    }<\/p>\n<p>    .text-justify {\n        text-align: justify !important\n    }<\/p>\n<p>    .hide {\n        display: none\n    }<\/p>\n<p>    img,\n    object,\n    svg {\n        display: inline-block;\n        vertical-align: middle\n    }<\/p>\n<p>    textarea {\n        height: auto;\n        min-height: 50px\n    }<\/p>\n<p>    select {\n        width: 100%\n    }<\/p>\n<p>    .subheader,\n    .admonitionblock td.content>.title,\n    .audioblock>.title,\n    .exampleblock>.title,\n    .imageblock>.title,\n    .listingblock>.title,\n    .literalblock>.title,\n    .stemblock>.title,\n    .openblock>.title,\n    .paragraph>.title,\n    .quoteblock>.title,\n    table.tableblock>.title,\n    .verseblock>.title,\n    .videoblock>.title,\n    .dlist>.title,\n    .olist>.title,\n    .ulist>.title,\n    .qlist>.title,\n    .hdlist>.title {\n        line-height: 1.45;\n        color: #7a2518;\n        font-weight: 400;\n        margin-top: 0;\n        margin-bottom: .25em\n    }<\/p>\n<p>    div,\n    dl,\n    dt,\n    dd,\n    ul,\n    ol,\n    li,\n    h1,\n    h2,\n    h3,\n    #toctitle,\n    .sidebarblock>.content>.title,\n    h4,\n    h5,\n    h6,\n    pre,\n    form,\n    p,\n    blockquote,\n    th,\n    td {\n        margin: 0;\n        padding: 0\n    }<\/p>\n<p>    a {\n        color: #2156a5;\n        text-decoration: underline;\n        line-height: inherit\n    }<\/p>\n<p>    a:hover,\n    a:focus {\n        color: #1d4b8f\n    }<\/p>\n<p>    a img {\n        border: 0\n    }<\/p>\n<p>    p {\n        line-height: 1.6;\n        margin-bottom: 1.25em;\n        text-rendering: optimizeLegibility\n    }<\/p>\n<p>    p aside {\n        font-size: .875em;\n        line-height: 1.35;\n        font-style: italic\n    }<\/p>\n<p>    h1,\n    h2,\n    h3,\n    #toctitle,\n    .sidebarblock>.content>.title,\n    h4,\n    h5,\n    h6 {\n        font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n        font-weight: 300;\n        font-style: normal;\n        color: #ba3925;\n        text-rendering: optimizeLegibility;\n        margin-top: 1em;\n        margin-bottom: .5em;\n        line-height: 1.0125em\n    }<\/p>\n<p>    h1 small,\n    h2 small,\n    h3 small,\n    #toctitle small,\n    .sidebarblock>.content>.title small,\n    h4 small,\n    h5 small,\n    h6 small {\n        font-size: 60%;\n        color: #e99b8f;\n        line-height: 0\n    }<\/p>\n<p>    h1 {\n        font-size: 2.125em\n    }<\/p>\n<p>    h2 {\n        font-size: 1.6875em\n    }<\/p>\n<p>    h3,\n    #toctitle,\n    .sidebarblock>.content>.title {\n        font-size: 1.375em\n    }<\/p>\n<p>    h4,\n    h5 {\n        font-size: 1.125em\n    }<\/p>\n<p>    h6 {\n        font-size: 1em\n    }<\/p>\n<p>    hr {\n        border: solid #dddddf;\n        border-width: 1px 0 0;\n        clear: both;\n        margin: 1.25em 0 1.1875em\n    }<\/p>\n<p>    em,\n    i {\n        font-style: italic;\n        line-height: inherit\n    }<\/p>\n<p>    strong,\n    b {\n        font-weight: bold;\n        line-height: inherit\n    }<\/p>\n<p>    small {\n        font-size: 60%;\n        line-height: inherit\n    }<\/p>\n<p>    code {\n        font-family: \"Droid Sans Mono\", \"DejaVu Sans Mono\", monospace;\n        font-weight: 400;\n        color: rgba(0, 0, 0, .9)\n    }<\/p>\n<p>    ul,\n    ol,\n    dl {\n        line-height: 1.6;\n        margin-bottom: 1.25em;\n        list-style-position: outside;\n        font-family: inherit\n    }<\/p>\n<p>    ul,\n    ol {\n        margin-left: 1.5em\n    }<\/p>\n<p>    ul li ul,\n    ul li ol {\n        margin-left: 1.25em;\n        margin-bottom: 0\n    }<\/p>\n<p>    ul.square li ul,\n    ul.circle li ul,\n    ul.disc li ul {\n        list-style: inherit\n    }<\/p>\n<p>    ul.square {\n        list-style-type: square\n    }<\/p>\n<p>    ul.circle {\n        list-style-type: circle\n    }<\/p>\n<p>    ul.disc {\n        list-style-type: disc\n    }<\/p>\n<p>    ol li ul,\n    ol li ol {\n        margin-left: 1.25em;\n        margin-bottom: 0\n    }<\/p>\n<p>    dl dt {\n        margin-bottom: .3125em;\n        font-weight: bold\n    }<\/p>\n<p>    dl dd {\n        margin-bottom: 1.25em\n    }<\/p>\n<p>    blockquote {\n        margin: 0 0 1.25em;\n        padding: .5625em 1.25em 0 1.1875em;\n        border-left: 1px solid #ddd\n    }<\/p>\n<p>    blockquote,\n    blockquote p {\n        line-height: 1.6;\n        color: rgba(0, 0, 0, .85)\n    }<\/p>\n<p>    @media screen and (min-width:768px) {<\/p>\n<p>        h1,\n        h2,\n        h3,\n        #toctitle,\n        .sidebarblock>.content>.title,\n        h4,\n        h5,\n        h6 {\n            line-height: 1.2\n        }<\/p>\n<p>        h1 {\n            font-size: 2.75em\n        }<\/p>\n<p>        h2 {\n            font-size: 2.3125em\n        }<\/p>\n<p>        h3,\n        #toctitle,\n        .sidebarblock>.content>.title {\n            font-size: 1.6875em\n        }<\/p>\n<p>        h4 {\n            font-size: 1.4375em\n        }\n    }<\/p>\n<p>    table {\n        background: #fff;\n        margin-bottom: 1.25em;\n        border: 1px solid #dedede;\n        word-wrap: normal\n    }<\/p>\n<p>    table thead,\n    table tfoot {\n        background: #f7f8f7\n    }<\/p>\n<p>    table thead tr th,\n    table thead tr td,\n    table tfoot tr th,\n    table tfoot tr td {\n        \/*padding: .5em .625em .625em;*\/\n        font-size: inherit;\n        color: rgba(0, 0, 0, .8);\n        text-align: left\n    }<\/p>\n<p>    table tr th,\n    table tr td {\n        \/*padding: .5625em .625em;*\/\n        font-size: inherit;\n        color: rgba(0, 0, 0, .8)\n    }<\/p>\n<p>    table tr.even,\n    table tr.alt {\n        background: #f8f8f7\n    }<\/p>\n<p>    table thead tr th,\n    table tfoot tr th,\n    table tbody tr td,\n    table tr td,\n    table tfoot tr td {\n        line-height: 1.6\n    }<\/p>\n<p>    h1,\n    h2,\n    h3,\n    #toctitle,\n    .sidebarblock>.content>.title,\n    h4,\n    h5,\n    h6 {\n        line-height: 1.2;\n        word-spacing: -.05em\n    }<\/p>\n<p>    h1 strong,\n    h2 strong,\n    h3 strong,\n    #toctitle strong,\n    .sidebarblock>.content>.title strong,\n    h4 strong,\n    h5 strong,\n    h6 strong {\n        font-weight: 400\n    }<\/p>\n<p>    .center {\n        margin-left: auto;\n        margin-right: auto\n    }<\/p>\n<p>    .stretch {\n        width: 100%\n    }<\/p>\n<p>    .clearfix::before,\n    .clearfix::after,\n    .float-group::before,\n    .float-group::after {\n        content: \" \";\n        display: table\n    }<\/p>\n<p>    .clearfix::after,\n    .float-group::after {\n        clear: both\n    }<\/p>\n<p>    :not(pre).nobreak {\n        word-wrap: normal\n    }<\/p>\n<p>    :not(pre).nowrap {\n        white-space: nowrap\n    }<\/p>\n<p>    :not(pre).pre-wrap {\n        white-space: pre-wrap\n    }<\/p>\n<p>    :not(pre):not([class^=L])>code {\n        font-size: .9375em;\n        font-style: normal !important;\n        letter-spacing: 0;\n        padding: .1em .5ex;\n        word-spacing: -.15em;\n        background: #f7f7f8;\n        border-radius: 4px;\n        line-height: 1.45;\n        text-rendering: optimizeSpeed\n    }<\/p>\n<p>    pre {\n        color: rgba(0, 0, 0, .9);\n        font-family: \"Droid Sans Mono\", \"DejaVu Sans Mono\", monospace;\n        line-height: 1.45;\n        text-rendering: optimizeSpeed\n    }<\/p>\n<p>    pre code,\n    pre pre {\n        color: inherit;\n        font-size: inherit;\n        line-height: inherit\n    }<\/p>\n<p>    pre>code {\n        display: block\n    }<\/p>\n<p>    pre.nowrap,\n    pre.nowrap pre {\n        white-space: pre;\n        word-wrap: normal\n    }<\/p>\n<p>    em em {\n        font-style: normal\n    }<\/p>\n<p>    strong strong {\n        font-weight: 400\n    }<\/p>\n<p>    .keyseq {\n        color: rgba(51, 51, 51, .8)\n    }<\/p>\n<p>    kbd {\n        font-family: \"Droid Sans Mono\", \"DejaVu Sans Mono\", monospace;\n        display: inline-block;\n        color: rgba(0, 0, 0, .8);\n        font-size: .65em;\n        line-height: 1.45;\n        background: #f7f7f7;\n        border: 1px solid #ccc;\n        border-radius: 3px;\n        box-shadow: 0 1px 0 rgba(0, 0, 0, .2), inset 0 0 0 .1em #fff;\n        margin: 0 .15em;\n        padding: .2em .5em;\n        vertical-align: middle;\n        position: relative;\n        top: -.1em;\n        white-space: nowrap\n    }<\/p>\n<p>    .keyseq kbd:first-child {\n        margin-left: 0\n    }<\/p>\n<p>    .keyseq kbd:last-child {\n        margin-right: 0\n    }<\/p>\n<p>    .menuseq,\n    .menuref {\n        color: #000\n    }<\/p>\n<p>    .menuseq b:not(.caret),\n    .menuref {\n        font-weight: inherit\n    }<\/p>\n<p>    .menuseq {\n        word-spacing: -.02em\n    }<\/p>\n<p>    .menuseq b.caret {\n        font-size: 1.25em;\n        line-height: .8\n    }<\/p>\n<p>    .menuseq i.caret {\n        font-weight: bold;\n        text-align: center;\n        width: .45em\n    }<\/p>\n<p>    b.button::before,\n    b.button::after {\n        position: relative;\n        top: -1px;\n        font-weight: 400\n    }<\/p>\n<p>    b.button::before {\n        content: \"[\";\n        padding: 0 3px 0 2px\n    }<\/p>\n<p>    b.button::after {\n        content: \"]\";\n        padding: 0 2px 0 3px\n    }<\/p>\n<p>    p a>code:hover {\n        color: rgba(0, 0, 0, .9)\n    }<\/p>\n<p>    #header,\n    #content,\n    #footnotes,\n    #footer {\n        width: 100%;\n        margin: 0 auto;\n        max-width: 62.5em;\n        *zoom: 1;\n        position: relative;\n        padding-left: .9375em;\n        padding-right: .9375em\n    }<\/p>\n<p>    #header::before,\n    #header::after,\n    #content::before,\n    #content::after,\n    #footnotes::before,\n    #footnotes::after,\n    #footer::before,\n    #footer::after {\n        content: \" \";\n        display: table\n    }<\/p>\n<p>    #header::after,\n    #content::after,\n    #footnotes::after,\n    #footer::after {\n        clear: both\n    }<\/p>\n<p>    #content {\n        margin-top: 1.25em\n    }<\/p>\n<p>    #content::before {\n        content: none\n    }<\/p>\n<p>    #header>h1:first-child {\n        color: rgba(0, 0, 0, .85);\n        margin-top: 2.25rem;\n        margin-bottom: 0\n    }<\/p>\n<p>    #header>h1:first-child+#toc {\n        margin-top: 8px;\n        border-top: 1px solid #dddddf\n    }<\/p>\n<p>    #header>h1:only-child,\n    body.toc2 #header>h1:nth-last-child(2) {\n        border-bottom: 1px solid #dddddf;\n        padding-bottom: 8px\n    }<\/p>\n<p>    #header .details {\n        border-bottom: 1px solid #dddddf;\n        line-height: 1.45;\n        padding-top: .25em;\n        padding-bottom: .25em;\n        padding-left: .25em;\n        color: rgba(0, 0, 0, .6);\n        display: flex;\n        flex-flow: row wrap\n    }<\/p>\n<p>    #header .details span:first-child {\n        margin-left: -.125em\n    }<\/p>\n<p>    #header .details span.email a {\n        color: rgba(0, 0, 0, .85)\n    }<\/p>\n<p>    #header .details br {\n        display: none\n    }<\/p>\n<p>    #header .details br+span::before {\n        content: \"\\00a0\\2013\\00a0\"\n    }<\/p>\n<p>    #header .details br+span.author::before {\n        content: \"\\00a0\\22c5\\00a0\";\n        color: rgba(0, 0, 0, .85)\n    }<\/p>\n<p>    #header .details br+span#revremark::before {\n        content: \"\\00a0|\\00a0\"\n    }<\/p>\n<p>    #header #revnumber {\n        text-transform: capitalize\n    }<\/p>\n<p>    #header #revnumber::after {\n        content: \"\\00a0\"\n    }<\/p>\n<p>    #content>h1:first-child:not([class]) {\n        color: rgba(0, 0, 0, .85);\n        border-bottom: 1px solid #dddddf;\n        padding-bottom: 8px;\n        margin-top: 0;\n        padding-top: 1rem;\n        margin-bottom: 1.25rem\n    }<\/p>\n<p>    #toc {\n        border-bottom: 1px solid #e7e7e9;\n        padding-bottom: .5em\n    }<\/p>\n<p>    #toc>ul {\n        margin-left: .125em\n    }<\/p>\n<p>    #toc ul.sectlevel0>li>a {\n        font-style: italic\n    }<\/p>\n<p>    #toc ul.sectlevel0 ul.sectlevel1 {\n        margin: .5em 0\n    }<\/p>\n<p>    #toc ul {\n        font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n        list-style-type: none\n    }<\/p>\n<p>    #toc li {\n        line-height: 1.3334;\n        margin-top: .3334em\n    }<\/p>\n<p>    #toc a {\n        text-decoration: none\n    }<\/p>\n<p>    #toc a:active {\n        text-decoration: underline\n    }<\/p>\n<p>    #toctitle {\n        color: #7a2518;\n        font-size: 1.2em\n    }<\/p>\n<p>    @media screen and (min-width:768px) {\n        #toctitle {\n            font-size: 1.375em\n        }<\/p>\n<p>        body.toc2 {\n            padding-left: 15em;\n            padding-right: 0\n        }<\/p>\n<p>        #toc.toc2 {\n            margin-top: 0 !important;\n            background: #f8f8f7;\n            position: fixed;\n            width: 15em;\n            left: 0;\n            top: 0;\n            border-right: 1px solid #e7e7e9;\n            border-top-width: 0 !important;\n            border-bottom-width: 0 !important;\n            z-index: 1000;\n            padding: 1.25em 1em;\n            height: 100%;\n            overflow: auto\n        }<\/p>\n<p>        #toc.toc2 #toctitle {\n            margin-top: 0;\n            margin-bottom: .8rem;\n            font-size: 1.2em\n        }<\/p>\n<p>        #toc.toc2>ul {\n            font-size: .9em;\n            margin-bottom: 0\n        }<\/p>\n<p>        #toc.toc2 ul ul {\n            margin-left: 0;\n            padding-left: 1em\n        }<\/p>\n<p>        #toc.toc2 ul.sectlevel0 ul.sectlevel1 {\n            padding-left: 0;\n            margin-top: .5em;\n            margin-bottom: .5em\n        }<\/p>\n<p>        body.toc2.toc-right {\n            padding-left: 0;\n            padding-right: 15em\n        }<\/p>\n<p>        body.toc2.toc-right #toc.toc2 {\n            border-right-width: 0;\n            border-left: 1px solid #e7e7e9;\n            left: auto;\n            right: 0\n        }\n    }<\/p>\n<p>    @media screen and (min-width:1280px) {\n        body.toc2 {\n            padding-left: 20em;\n            padding-right: 0\n        }<\/p>\n<p>        #toc.toc2 {\n            width: 20em\n        }<\/p>\n<p>        #toc.toc2 #toctitle {\n            font-size: 1.375em\n        }<\/p>\n<p>        #toc.toc2>ul {\n            font-size: .95em\n        }<\/p>\n<p>        #toc.toc2 ul ul {\n            padding-left: 1.25em\n        }<\/p>\n<p>        body.toc2.toc-right {\n            padding-left: 0;\n            padding-right: 20em\n        }\n    }<\/p>\n<p>    #content #toc {\n        border: 1px solid #e0e0dc;\n        margin-bottom: 1.25em;\n        padding: 1.25em;\n        background: #f8f8f7;\n        border-radius: 4px\n    }<\/p>\n<p>    #content #toc>:first-child {\n        margin-top: 0\n    }<\/p>\n<p>    #content #toc>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    #footer {\n        max-width: none;\n        background: rgba(0, 0, 0, .8);\n        padding: 1.25em\n    }<\/p>\n<p>    #footer-text {\n        color: hsla(0, 0%, 100%, .8);\n        line-height: 1.44\n    }<\/p>\n<p>    #content {\n        margin-bottom: .625em\n    }<\/p>\n<p>    .sect1 {\n        padding-bottom: .625em\n    }<\/p>\n<p>    @media screen and (min-width:768px) {\n        #content {\n            margin-bottom: 1.25em\n        }<\/p>\n<p>        .sect1 {\n            padding-bottom: 1.25em\n        }\n    }<\/p>\n<p>    .sect1:last-child {\n        padding-bottom: 0\n    }<\/p>\n<p>    .sect1+.sect1 {\n        border-top: 1px solid #e7e7e9\n    }<\/p>\n<p>    #content h1>a.anchor,\n    h2>a.anchor,\n    h3>a.anchor,\n    #toctitle>a.anchor,\n    .sidebarblock>.content>.title>a.anchor,\n    h4>a.anchor,\n    h5>a.anchor,\n    h6>a.anchor {\n        position: absolute;\n        z-index: 1001;\n        width: 1.5ex;\n        margin-left: -1.5ex;\n        display: block;\n        text-decoration: none !important;\n        visibility: hidden;\n        text-align: center;\n        font-weight: 400\n    }<\/p>\n<p>    #content h1>a.anchor::before,\n    h2>a.anchor::before,\n    h3>a.anchor::before,\n    #toctitle>a.anchor::before,\n    .sidebarblock>.content>.title>a.anchor::before,\n    h4>a.anchor::before,\n    h5>a.anchor::before,\n    h6>a.anchor::before {\n        content: \"\\00A7\";\n        font-size: .85em;\n        display: block;\n        padding-top: .1em\n    }<\/p>\n<p>    #content h1:hover>a.anchor,\n    #content h1>a.anchor:hover,\n    h2:hover>a.anchor,\n    h2>a.anchor:hover,\n    h3:hover>a.anchor,\n    #toctitle:hover>a.anchor,\n    .sidebarblock>.content>.title:hover>a.anchor,\n    h3>a.anchor:hover,\n    #toctitle>a.anchor:hover,\n    .sidebarblock>.content>.title>a.anchor:hover,\n    h4:hover>a.anchor,\n    h4>a.anchor:hover,\n    h5:hover>a.anchor,\n    h5>a.anchor:hover,\n    h6:hover>a.anchor,\n    h6>a.anchor:hover {\n        visibility: visible\n    }<\/p>\n<p>    #content h1>a.link,\n    h2>a.link,\n    h3>a.link,\n    #toctitle>a.link,\n    .sidebarblock>.content>.title>a.link,\n    h4>a.link,\n    h5>a.link,\n    h6>a.link {\n        color: #ba3925;\n        text-decoration: none\n    }<\/p>\n<p>    #content h1>a.link:hover,\n    h2>a.link:hover,\n    h3>a.link:hover,\n    #toctitle>a.link:hover,\n    .sidebarblock>.content>.title>a.link:hover,\n    h4>a.link:hover,\n    h5>a.link:hover,\n    h6>a.link:hover {\n        color: #a53221\n    }<\/p>\n<p>    details,\n    .audioblock,\n    .imageblock,\n    .literalblock,\n    .listingblock,\n    .stemblock,\n    .videoblock {\n        margin-bottom: 1.25em\n    }<\/p>\n<p>    details {\n        margin-left: 1.25rem\n    }<\/p>\n<p>    details>summary {\n        cursor: pointer;\n        display: block;\n        position: relative;\n        line-height: 1.6;\n        margin-bottom: .625rem;\n        outline: none;\n        -webkit-tap-highlight-color: transparent\n    }<\/p>\n<p>    details>summary::-webkit-details-marker {\n        display: none\n    }<\/p>\n<p>    details>summary::before {\n        content: \"\";\n        border: solid transparent;\n        border-left: solid;\n        border-width: .3em 0 .3em .5em;\n        position: absolute;\n        top: .5em;\n        left: -1.25rem;\n        transform: translateX(15%)\n    }<\/p>\n<p>    details[open]>summary::before {\n        border: solid transparent;\n        border-top: solid;\n        border-width: .5em .3em 0;\n        transform: translateY(15%)\n    }<\/p>\n<p>    details>summary::after {\n        content: \"\";\n        width: 1.25rem;\n        height: 1em;\n        position: absolute;\n        top: .3em;\n        left: -1.25rem\n    }<\/p>\n<p>    .admonitionblock td.content>.title,\n    .audioblock>.title,\n    .exampleblock>.title,\n    .imageblock>.title,\n    .listingblock>.title,\n    .literalblock>.title,\n    .stemblock>.title,\n    .openblock>.title,\n    .paragraph>.title,\n    .quoteblock>.title,\n    table.tableblock>.title,\n    .verseblock>.title,\n    .videoblock>.title,\n    .dlist>.title,\n    .olist>.title,\n    .ulist>.title,\n    .qlist>.title,\n    .hdlist>.title {\n        text-rendering: optimizeLegibility;\n        text-align: left;\n        font-family: \"Noto Serif\", \"DejaVu Serif\", serif;\n        font-size: 1rem;\n        font-style: italic\n    }<\/p>\n<p>    table.tableblock.fit-content>caption.title {\n        white-space: nowrap;\n        width: 0\n    }<\/p>\n<p>    .paragraph.lead>p,\n    #preamble>.sectionbody>[class=paragraph]:first-of-type p {\n        font-size: 1.21875em;\n        line-height: 1.6;\n        color: rgba(0, 0, 0, .85)\n    }<\/p>\n<p>    .admonitionblock>table {\n        border-collapse: separate;\n        border: 0;\n        background: none;\n        width: 100%\n    }<\/p>\n<p>    .admonitionblock>table td.icon {\n        text-align: center;\n        width: 80px\n    }<\/p>\n<p>    .admonitionblock>table td.icon img {\n        max-width: none\n    }<\/p>\n<p>    .admonitionblock>table td.icon .title {\n        font-weight: bold;\n        font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n        text-transform: uppercase\n    }<\/p>\n<p>    .admonitionblock>table td.content {\n        padding-left: 1.125em;\n        padding-right: 1.25em;\n        border-left: 1px solid #dddddf;\n        color: rgba(0, 0, 0, .6);\n        word-wrap: anywhere\n    }<\/p>\n<p>    .admonitionblock>table td.content>:last-child>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    .exampleblock>.content {\n        border: 1px solid #e6e6e6;\n        margin-bottom: 1.25em;\n        padding: 1.25em;\n        background: #fff;\n        border-radius: 4px\n    }<\/p>\n<p>    .exampleblock>.content>:first-child {\n        margin-top: 0\n    }<\/p>\n<p>    .exampleblock>.content>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    .sidebarblock {\n        border: 1px solid #dbdbd6;\n        margin-bottom: 1.25em;\n        padding: 1.25em;\n        background: #f3f3f2;\n        border-radius: 4px\n    }<\/p>\n<p>    .sidebarblock>:first-child {\n        margin-top: 0\n    }<\/p>\n<p>    .sidebarblock>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    .sidebarblock>.content>.title {\n        color: #7a2518;\n        margin-top: 0;\n        text-align: center\n    }<\/p>\n<p>    .exampleblock>.content>:last-child>:last-child,\n    .exampleblock>.content .olist>ol>li:last-child>:last-child,\n    .exampleblock>.content .ulist>ul>li:last-child>:last-child,\n    .exampleblock>.content .qlist>ol>li:last-child>:last-child,\n    .sidebarblock>.content>:last-child>:last-child,\n    .sidebarblock>.content .olist>ol>li:last-child>:last-child,\n    .sidebarblock>.content .ulist>ul>li:last-child>:last-child,\n    .sidebarblock>.content .qlist>ol>li:last-child>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    .literalblock pre,\n    .listingblock>.content>pre {\n        border-radius: 4px;\n        overflow-x: auto;\n        padding: 1em;\n        font-size: .8125em\n    }<\/p>\n<p>    @media screen and (min-width:768px) {<\/p>\n<p>        .literalblock pre,\n        .listingblock>.content>pre {\n            font-size: .90625em\n        }\n    }<\/p>\n<p>    @media screen and (min-width:1280px) {<\/p>\n<p>        .literalblock pre,\n        .listingblock>.content>pre {\n            font-size: 1em\n        }\n    }<\/p>\n<p>    .literalblock pre,\n    .listingblock>.content>pre:not(.highlight),\n    .listingblock>.content>pre[class=highlight],\n    .listingblock>.content>pre[class^=\"highlight \"] {\n        background: #f7f7f8\n    }<\/p>\n<p>    .literalblock.output pre {\n        color: #f7f7f8;\n        background: rgba(0, 0, 0, .9)\n    }<\/p>\n<p>    .listingblock>.content {\n        position: relative\n    }<\/p>\n<p>    .listingblock code[data-lang]::before {\n        display: none;\n        content: attr(data-lang);\n        position: absolute;\n        font-size: .75em;\n        top: .425rem;\n        right: .5rem;\n        line-height: 1;\n        text-transform: uppercase;\n        color: inherit;\n        opacity: .5\n    }<\/p>\n<p>    .listingblock:hover code[data-lang]::before {\n        display: block\n    }<\/p>\n<p>    .listingblock.terminal pre .command::before {\n        content: attr(data-prompt);\n        padding-right: .5em;\n        color: inherit;\n        opacity: .5\n    }<\/p>\n<p>    .listingblock.terminal pre .command:not([data-prompt])::before {\n        content: \"$\"\n    }<\/p>\n<p>    .listingblock pre.highlightjs {\n        padding: 0\n    }<\/p>\n<p>    .listingblock pre.highlightjs>code {\n        padding: 1em;\n        border-radius: 4px\n    }<\/p>\n<p>    .listingblock pre.prettyprint {\n        border-width: 0\n    }<\/p>\n<p>    .prettyprint {\n        background: #f7f7f8\n    }<\/p>\n<p>    pre.prettyprint .linenums {\n        line-height: 1.45;\n        margin-left: 2em\n    }<\/p>\n<p>    pre.prettyprint li {\n        background: none;\n        list-style-type: inherit;\n        padding-left: 0\n    }<\/p>\n<p>    pre.prettyprint li code[data-lang]::before {\n        opacity: 1\n    }<\/p>\n<p>    pre.prettyprint li:not(:first-child) code[data-lang]::before {\n        display: none\n    }<\/p>\n<p>    table.linenotable {\n        border-collapse: separate;\n        border: 0;\n        margin-bottom: 0;\n        background: none\n    }<\/p>\n<p>    table.linenotable td[class] {\n        color: inherit;\n        vertical-align: top;\n        padding: 0;\n        line-height: inherit;\n        white-space: normal\n    }<\/p>\n<p>    table.linenotable td.code {\n        padding-left: .75em\n    }<\/p>\n<p>    table.linenotable td.linenos,\n    pre.pygments .linenos {\n        border-right: 1px solid;\n        opacity: .35;\n        padding-right: .5em;\n        -webkit-user-select: none;\n        -moz-user-select: none;\n        -ms-user-select: none;\n        user-select: none\n    }<\/p>\n<p>    pre.pygments span.linenos {\n        display: inline-block;\n        margin-right: .75em\n    }<\/p>\n<p>    .quoteblock {\n        margin: 0 1em 1.25em 1.5em;\n        display: table\n    }<\/p>\n<p>    .quoteblock:not(.excerpt)>.title {\n        margin-left: -1.5em;\n        margin-bottom: .75em\n    }<\/p>\n<p>    .quoteblock blockquote,\n    .quoteblock p {\n        color: rgba(0, 0, 0, .85);\n        font-size: 1.15rem;\n        line-height: 1.75;\n        word-spacing: .1em;\n        letter-spacing: 0;\n        font-style: italic;\n        text-align: justify\n    }<\/p>\n<p>    .quoteblock blockquote {\n        margin: 0;\n        padding: 0;\n        border: 0\n    }<\/p>\n<p>    .quoteblock blockquote::before {\n        content: \"\\201c\";\n        float: left;\n        font-size: 2.75em;\n        font-weight: bold;\n        line-height: .6em;\n        margin-left: -.6em;\n        color: #7a2518;\n        text-shadow: 0 1px 2px rgba(0, 0, 0, .1)\n    }<\/p>\n<p>    .quoteblock blockquote>.paragraph:last-child p {\n        margin-bottom: 0\n    }<\/p>\n<p>    .quoteblock .attribution {\n        margin-top: .75em;\n        margin-right: .5ex;\n        text-align: right\n    }<\/p>\n<p>    .verseblock {\n        margin: 0 1em 1.25em\n    }<\/p>\n<p>    .verseblock pre {\n        font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n        font-size: 1.15rem;\n        color: rgba(0, 0, 0, .85);\n        font-weight: 300;\n        text-rendering: optimizeLegibility\n    }<\/p>\n<p>    .verseblock pre strong {\n        font-weight: 400\n    }<\/p>\n<p>    .verseblock .attribution {\n        margin-top: 1.25rem;\n        margin-left: .5ex\n    }<\/p>\n<p>    .quoteblock .attribution,\n    .verseblock .attribution {\n        font-size: .9375em;\n        line-height: 1.45;\n        font-style: italic\n    }<\/p>\n<p>    .quoteblock .attribution br,\n    .verseblock .attribution br {\n        display: none\n    }<\/p>\n<p>    .quoteblock .attribution cite,\n    .verseblock .attribution cite {\n        display: block;\n        letter-spacing: -.025em;\n        color: rgba(0, 0, 0, .6)\n    }<\/p>\n<p>    .quoteblock.abstract blockquote::before,\n    .quoteblock.excerpt blockquote::before,\n    .quoteblock .quoteblock blockquote::before {\n        display: none\n    }<\/p>\n<p>    .quoteblock.abstract blockquote,\n    .quoteblock.abstract p,\n    .quoteblock.excerpt blockquote,\n    .quoteblock.excerpt p,\n    .quoteblock .quoteblock blockquote,\n    .quoteblock .quoteblock p {\n        line-height: 1.6;\n        word-spacing: 0\n    }<\/p>\n<p>    .quoteblock.abstract {\n        margin: 0 1em 1.25em;\n        display: block\n    }<\/p>\n<p>    .quoteblock.abstract>.title {\n        margin: 0 0 .375em;\n        font-size: 1.15em;\n        text-align: center\n    }<\/p>\n<p>    .quoteblock.excerpt>blockquote,\n    .quoteblock .quoteblock {\n        padding: 0 0 .25em 1em;\n        border-left: .25em solid #dddddf\n    }<\/p>\n<p>    .quoteblock.excerpt,\n    .quoteblock .quoteblock {\n        margin-left: 0\n    }<\/p>\n<p>    .quoteblock.excerpt blockquote,\n    .quoteblock.excerpt p,\n    .quoteblock .quoteblock blockquote,\n    .quoteblock .quoteblock p {\n        color: inherit;\n        font-size: 1.0625rem\n    }<\/p>\n<p>    .quoteblock.excerpt .attribution,\n    .quoteblock .quoteblock .attribution {\n        color: inherit;\n        font-size: .85rem;\n        text-align: left;\n        margin-right: 0\n    }<\/p>\n<p>    p.tableblock:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    td.tableblock>.content {\n        \/*margin-bottom: 1.25em;*\/\n        word-wrap: anywhere\n    }\n\/*\n    td.tableblock>.content>:last-child {\n        margin-bottom: -1.25em\n    }\n*\/\n    table.tableblock,\n    th.tableblock,\n    td.tableblock {\n        border: 0 solid #dedede\n    }<\/p>\n<p>    table.grid-all>*>tr>* {\n        border-width: 1px\n    }<\/p>\n<p>    table.grid-cols>*>tr>* {\n        border-width: 0 1px\n    }<\/p>\n<p>    table.grid-rows>*>tr>* {\n        border-width: 1px 0\n    }<\/p>\n<p>    table.frame-all {\n        border-width: 1px\n    }<\/p>\n<p>    table.frame-ends {\n        border-width: 1px 0\n    }<\/p>\n<p>    table.frame-sides {\n        border-width: 0 1px\n    }<\/p>\n<p>    table.frame-none>colgroup+*>:first-child>*,\n    table.frame-sides>colgroup+*>:first-child>* {\n        border-top-width: 0\n    }<\/p>\n<p>    table.frame-none>:last-child>:last-child>*,\n    table.frame-sides>:last-child>:last-child>* {\n        border-bottom-width: 0\n    }<\/p>\n<p>    table.frame-none>*>tr>:first-child,\n    table.frame-ends>*>tr>:first-child {\n        border-left-width: 0\n    }<\/p>\n<p>    table.frame-none>*>tr>:last-child,\n    table.frame-ends>*>tr>:last-child {\n        border-right-width: 0\n    }<\/p>\n<p>    table.stripes-all>*>tr,\n    table.stripes-odd>*>tr:nth-of-type(odd),\n    table.stripes-even>*>tr:nth-of-type(even),\n    table.stripes-hover>*>tr:hover {\n        background: #f8f8f7\n    }<\/p>\n<p>    th.halign-left,\n    td.halign-left {\n        text-align: left\n    }<\/p>\n<p>    th.halign-right,\n    td.halign-right {\n        text-align: right\n    }<\/p>\n<p>    th.halign-center,\n    td.halign-center {\n        text-align: center\n    }<\/p>\n<p>    th.valign-top,\n    td.valign-top {\n        vertical-align: top\n    }<\/p>\n<p>    th.valign-bottom,\n    td.valign-bottom {\n        vertical-align: bottom\n    }<\/p>\n<p>    th.valign-middle,\n    td.valign-middle {\n        vertical-align: middle\n    }<\/p>\n<p>    table thead th,\n    table tfoot th {\n        font-weight: bold\n    }<\/p>\n<p>    tbody tr th {\n        background: #f7f8f7\n    }<\/p>\n<p>    tbody tr th,\n    tbody tr th p,\n    tfoot tr th,\n    tfoot tr th p {\n        color: rgba(0, 0, 0, .8);\n        font-weight: bold\n    }<\/p>\n<p>    p.tableblock>code:only-child {\n        background: none;\n        padding: 0\n    }<\/p>\n<p>    p.tableblock {\n        font-size: 0.8em\n    }<\/p>\n<p>    ol {\n        margin-left: 1.75em\n    }<\/p>\n<p>    ul li ol {\n        margin-left: 1.5em\n    }<\/p>\n<p>    dl dd {\n        margin-left: 1.125em\n    }<\/p>\n<p>    dl dd:last-child,\n    dl dd:last-child>:last-child {\n        margin-bottom: 0\n    }<\/p>\n<p>    li p,\n    ul dd,\n    ol dd,\n    .olist .olist,\n    .ulist .ulist,\n    .ulist .olist,\n    .olist .ulist {\n        margin-bottom: .625em\n    }<\/p>\n<p>    ul.checklist,\n    ul.none,\n    ol.none,\n    ul.no-bullet,\n    ol.no-bullet,\n    ol.unnumbered,\n    ul.unstyled,\n    ol.unstyled {\n        list-style-type: none\n    }<\/p>\n<p>    ul.no-bullet,\n    ol.no-bullet,\n    ol.unnumbered {\n        margin-left: .625em\n    }<\/p>\n<p>    ul.unstyled,\n    ol.unstyled {\n        margin-left: 0\n    }<\/p>\n<p>    li>p:empty:only-child::before {\n        content: \"\";\n        display: inline-block\n    }<\/p>\n<p>    ul.checklist>li>p:first-child {\n        margin-left: -1em\n    }<\/p>\n<p>    ul.checklist>li>p:first-child>.fa-square-o:first-child,\n    ul.checklist>li>p:first-child>.fa-check-square-o:first-child {\n        width: 1.25em;\n        font-size: .8em;\n        position: relative;\n        bottom: .125em\n    }<\/p>\n<p>    ul.checklist>li>p:first-child>input[type=checkbox]:first-child {\n        margin-right: .25em\n    }<\/p>\n<p>    ul.inline {\n        display: flex;\n        flex-flow: row wrap;\n        list-style: none;\n        margin: 0 0 .625em -1.25em\n    }<\/p>\n<p>    ul.inline>li {\n        margin-left: 1.25em\n    }<\/p>\n<p>    .unstyled dl dt {\n        font-weight: 400;\n        font-style: normal\n    }<\/p>\n<p>    ol.arabic {\n        list-style-type: decimal\n    }<\/p>\n<p>    ol.decimal {\n        list-style-type: decimal-leading-zero\n    }<\/p>\n<p>    ol.loweralpha {\n        list-style-type: lower-alpha\n    }<\/p>\n<p>    ol.upperalpha {\n        list-style-type: upper-alpha\n    }<\/p>\n<p>    ol.lowerroman {\n        list-style-type: lower-roman\n    }<\/p>\n<p>    ol.upperroman {\n        list-style-type: upper-roman\n    }<\/p>\n<p>    ol.lowergreek {\n        list-style-type: lower-greek\n    }<\/p>\n<p>    .hdlist>table,\n    .colist>table {\n        border: 0;\n        background: none\n    }<\/p>\n<p>    .hdlist>table>tbody>tr,\n    .colist>table>tbody>tr {\n        background: none\n    }<\/p>\n<p>    td.hdlist1,\n    td.hdlist2 {\n        vertical-align: top;\n        padding: 0 .625em\n    }<\/p>\n<p>    td.hdlist1 {\n        font-weight: bold;\n        padding-bottom: 1.25em\n    }<\/p>\n<p>    td.hdlist2 {\n        word-wrap: anywhere\n    }<\/p>\n<p>    .literalblock+.colist,\n    .listingblock+.colist {\n        margin-top: -.5em\n    }<\/p>\n<p>    .colist td:not([class]):first-child {\n        padding: .4em .75em 0;\n        line-height: 1;\n        vertical-align: top\n    }<\/p>\n<p>    .colist td:not([class]):first-child img {\n        max-width: none\n    }<\/p>\n<p>    .colist td:not([class]):last-child {\n        padding: .25em 0\n    }<\/p>\n<p>    .thumb,\n    .th {\n        line-height: 0;\n        display: inline-block;\n        border: 4px solid #fff;\n        box-shadow: 0 0 0 1px #ddd\n    }<\/p>\n<p>    .imageblock.left {\n        margin: .25em .625em 1.25em 0\n    }<\/p>\n<p>    .imageblock.right {\n        margin: .25em 0 1.25em .625em\n    }<\/p>\n<p>    .imageblock>.title {\n        margin-bottom: 0\n    }<\/p>\n<p>    .imageblock.thumb,\n    .imageblock.th {\n        border-width: 6px\n    }<\/p>\n<p>    .imageblock.thumb>.title,\n    .imageblock.th>.title {\n        padding: 0 .125em\n    }<\/p>\n<p>    .image.left,\n    .image.right {\n        margin-top: .25em;\n        margin-bottom: .25em;\n        display: inline-block;\n        line-height: 0\n    }<\/p>\n<p>    .image.left {\n        margin-right: .625em\n    }<\/p>\n<p>    .image.right {\n        margin-left: .625em\n    }<\/p>\n<p>    a.image {\n        text-decoration: none;\n        display: inline-block\n    }<\/p>\n<p>    a.image object {\n        pointer-events: none\n    }<\/p>\n<p>    sup.footnote,\n    sup.footnoteref {\n        font-size: .875em;\n        position: static;\n        vertical-align: super\n    }<\/p>\n<p>    sup.footnote a,\n    sup.footnoteref a {\n        text-decoration: none\n    }<\/p>\n<p>    sup.footnote a:active,\n    sup.footnoteref a:active {\n        text-decoration: underline\n    }<\/p>\n<p>    #footnotes {\n        padding-top: .75em;\n        padding-bottom: .75em;\n        margin-bottom: .625em\n    }<\/p>\n<p>    #footnotes hr {\n        width: 20%;\n        min-width: 6.25em;\n        margin: -.25em 0 .75em;\n        border-width: 1px 0 0\n    }<\/p>\n<p>    #footnotes .footnote {\n        padding: 0 .375em 0 .225em;\n        line-height: 1.3334;\n        font-size: .875em;\n        margin-left: 1.2em;\n        margin-bottom: .2em\n    }<\/p>\n<p>    #footnotes .footnote a:first-of-type {\n        font-weight: bold;\n        text-decoration: none;\n        margin-left: -1.05em\n    }<\/p>\n<p>    #footnotes .footnote:last-of-type {\n        margin-bottom: 0\n    }<\/p>\n<p>    #content #footnotes {\n        margin-top: -.625em;\n        margin-bottom: 0;\n        padding: .75em 0\n    }<\/p>\n<p>    div.unbreakable {\n        page-break-inside: avoid\n    }<\/p>\n<p>    .big {\n        font-size: larger\n    }<\/p>\n<p>    .small {\n        font-size: smaller\n    }<\/p>\n<p>    .underline {\n        text-decoration: underline\n    }<\/p>\n<p>    .overline {\n        text-decoration: overline\n    }<\/p>\n<p>    .line-through {\n        text-decoration: line-through\n    }<\/p>\n<p>    .aqua {\n        color: #00bfbf\n    }<\/p>\n<p>    .aqua-background {\n        background: #00fafa\n    }<\/p>\n<p>    .black {\n        color: #000\n    }<\/p>\n<p>    .black-background {\n        background: #000\n    }<\/p>\n<p>    .blue {\n        color: #0000bf\n    }<\/p>\n<p>    .blue-background {\n        background: #0000fa\n    }<\/p>\n<p>    .fuchsia {\n        color: #bf00bf\n    }<\/p>\n<p>    .fuchsia-background {\n        background: #fa00fa\n    }<\/p>\n<p>    .gray {\n        color: #606060\n    }<\/p>\n<p>    .gray-background {\n        background: #7d7d7d\n    }<\/p>\n<p>    .green {\n        color: #006000\n    }<\/p>\n<p>    .green-background {\n        background: #007d00\n    }<\/p>\n<p>    .lime {\n        color: #00bf00\n    }<\/p>\n<p>    .lime-background {\n        background: #00fa00\n    }<\/p>\n<p>    .maroon {\n        color: #600000\n    }<\/p>\n<p>    .maroon-background {\n        background: #7d0000\n    }<\/p>\n<p>    .navy {\n        color: #000060\n    }<\/p>\n<p>    .navy-background {\n        background: #00007d\n    }<\/p>\n<p>    .olive {\n        color: #606000\n    }<\/p>\n<p>    .olive-background {\n        background: #7d7d00\n    }<\/p>\n<p>    .purple {\n        color: #600060\n    }<\/p>\n<p>    .purple-background {\n        background: #7d007d\n    }<\/p>\n<p>    .red {\n        color: #bf0000\n    }<\/p>\n<p>    .red-background {\n        background: #fa0000\n    }<\/p>\n<p>    .silver {\n        color: #909090\n    }<\/p>\n<p>    .silver-background {\n        background: #bcbcbc\n    }<\/p>\n<p>    .teal {\n        color: #006060\n    }<\/p>\n<p>    .teal-background {\n        background: #007d7d\n    }<\/p>\n<p>    .white {\n        color: #bfbfbf\n    }<\/p>\n<p>    .white-background {\n        background: #fafafa\n    }<\/p>\n<p>    .yellow {\n        color: #bfbf00\n    }<\/p>\n<p>    .yellow-background {\n        background: #fafa00\n    }<\/p>\n<p>    span.icon>.fa {\n        cursor: default\n    }<\/p>\n<p>    a span.icon>.fa {\n        cursor: inherit\n    }<\/p>\n<p>    .admonitionblock td.icon [class^=\"fa icon-\"] {\n        font-size: 2.5em;\n        text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);\n        cursor: default\n    }<\/p>\n<p>    .admonitionblock td.icon .icon-note::before {\n        content: \"\\f05a\";\n        color: #19407c\n    }<\/p>\n<p>    .admonitionblock td.icon .icon-tip::before {\n        content: \"\\f0eb\";\n        text-shadow: 1px 1px 2px rgba(155, 155, 0, .8);\n        color: #111\n    }<\/p>\n<p>    .admonitionblock td.icon .icon-warning::before {\n        content: \"\\f071\";\n        color: #bf6900\n    }<\/p>\n<p>    .admonitionblock td.icon .icon-caution::before {\n        content: \"\\f06d\";\n        color: #bf3400\n    }<\/p>\n<p>    .admonitionblock td.icon .icon-important::before {\n        content: \"\\f06a\";\n        color: #bf0000\n    }<\/p>\n<p>    .conum[data-value] {\n        display: inline-block;\n        color: #fff !important;\n        background: rgba(0, 0, 0, .8);\n        border-radius: 50%;\n        text-align: center;\n        font-size: .75em;\n        width: 1.67em;\n        height: 1.67em;\n        line-height: 1.67em;\n        font-family: \"Open Sans\", \"DejaVu Sans\", sans-serif;\n        font-style: normal;\n        font-weight: bold\n    }<\/p>\n<p>    .conum[data-value] * {\n        color: #fff !important\n    }<\/p>\n<p>    .conum[data-value]+b {\n        display: none\n    }<\/p>\n<p>    .conum[data-value]::after {\n        content: attr(data-value)\n    }<\/p>\n<p>    pre .conum[data-value] {\n        position: relative;\n        top: -.125em\n    }<\/p>\n<p>    b.conum * {\n        color: inherit !important\n    }<\/p>\n<p>    .conum:not([data-value]):empty {\n        display: none\n    }<\/p>\n<p>    dt,\n    th.tableblock,\n    td.content,\n    div.footnote {\n        text-rendering: optimizeLegibility\n    }<\/p>\n<p>    h1,\n    h2,\n    p,\n    td.content,\n    span.alt,\n    summary {\n        letter-spacing: -.01em\n    }<\/p>\n<p>    p strong,\n    td.content strong,\n    div.footnote strong {\n        letter-spacing: -.005em\n    }<\/p>\n<p>    p,\n    blockquote,\n    dt,\n    td.content,\n    span.alt,\n    summary {\n        font-size: 1.0625rem\n    }<\/p>\n<p>    p {\n        margin-bottom: 1.25rem\n    }<\/p>\n<p>    .sidebarblock p,\n    .sidebarblock dt,\n    .sidebarblock td.content {\n        font-size: 1em\n    }\n    p.tableblock {\n        font-size: 0.8em\n    }\n    .exampleblock>.content {\n        background: #fffef7;\n        border-color: #e0e0dc;\n        box-shadow: 0 1px 4px #e0e0dc\n    }<\/p>\n<p>    .print-only {\n        display: none !important\n    }<\/p>\n<p>    @page {\n        margin: 1.25cm .75cm\n    }<\/p>\n<p>    @media print {\n        * {\n            box-shadow: none !important;\n            text-shadow: none !important\n        }<\/p>\n<p>        html {\n            font-size: 80%\n        }<\/p>\n<p>        a {\n            color: inherit !important;\n            text-decoration: underline !important\n        }<\/p>\n<p>        a.bare,\n        a[href^=\"#\"],\n        a[href^=\"mailto:\"] {\n            text-decoration: none !important\n        }<\/p>\n<p>        a[href^=\"http:\"]:not(.bare)::after,\n        a[href^=\"https:\"]:not(.bare)::after {\n            content: \"(\" attr(href) \")\";\n            display: inline-block;\n            font-size: .875em;\n            padding-left: .25em\n        }<\/p>\n<p>        abbr[title] {\n            border-bottom: 1px dotted\n        }<\/p>\n<p>        abbr[title]::after {\n            content: \" (\" attr(title) \")\"\n        }<\/p>\n<p>        pre,\n        blockquote,\n        tr,\n        img,\n        object,\n        svg {\n            page-break-inside: avoid\n        }<\/p>\n<p>        thead {\n            display: table-header-group\n        }<\/p>\n<p>        svg {\n            max-width: 100%\n        }<\/p>\n<p>        p,\n        blockquote,\n        dt,\n        td.content {\n            font-size: 1em;\n            orphans: 3;\n            widows: 3\n        }<\/p>\n<p>        h2,\n        h3,\n        #toctitle,\n        .sidebarblock>.content>.title {\n            page-break-after: avoid\n        }<\/p>\n<p>        #header,\n        #content,\n        #footnotes,\n        #footer {\n            max-width: none\n        }<\/p>\n<p>        #toc,\n        .sidebarblock,\n        .exampleblock>.content {\n            background: none !important\n        }<\/p>\n<p>        #toc {\n            border-bottom: 1px solid #dddddf !important;\n            padding-bottom: 0 !important\n        }<\/p>\n<p>        body.book #header {\n            text-align: center\n        }<\/p>\n<p>        body.book #header>h1:first-child {\n            border: 0 !important;\n            margin: 2.5em 0 1em\n        }<\/p>\n<p>        body.book #header .details {\n            border: 0 !important;\n            display: block;\n            padding: 0 !important\n        }<\/p>\n<p>        body.book #header .details span:first-child {\n            margin-left: 0 !important\n        }<\/p>\n<p>        body.book #header .details br {\n            display: block\n        }<\/p>\n<p>        body.book #header .details br+span::before {\n            content: none !important\n        }<\/p>\n<p>        body.book #toc {\n            border: 0 !important;\n            text-align: left !important;\n            padding: 0 !important;\n            margin: 0 !important\n        }<\/p>\n<p>        body.book #toc,\n        body.book #preamble,\n        body.book h1.sect0,\n        body.book .sect1>h2 {\n            page-break-before: always\n        }<\/p>\n<p>        .listingblock code[data-lang]::before {\n            display: block\n        }<\/p>\n<p>        #footer {\n            padding: 0 .9375em\n        }<\/p>\n<p>        .hide-on-print {\n            display: none !important\n        }<\/p>\n<p>        .print-only {\n            display: block !important\n        }<\/p>\n<p>        .hide-for-print {\n            display: none !important\n        }<\/p>\n<p>        .show-for-print {\n            display: inherit !important\n        }\n    }<\/p>\n<p>    @media amzn-kf8,\n    print {\n        #header>h1:first-child {\n            margin-top: 1.25rem\n        }<\/p>\n<p>        .sect1 {\n            padding: 0 !important\n        }<\/p>\n<p>        .sect1+.sect1 {\n            border: 0\n        }<\/p>\n<p>        #footer {\n            background: none\n        }<\/p>\n<p>        #footer-text {\n            color: rgba(0, 0, 0, .6);\n            font-size: .9em\n        }\n    }<\/p>\n<p>    @media amzn-kf8 {<\/p>\n<p>        #header,\n        #content,\n        #footnotes,\n        #footer {\n            padding: 0\n        }\n    }\n<\/style>\n<div id=\"content\">\n<div class=\"paragraph data-line-1\">\n<p>&#8220;\u30c7\u30b8\u30bf\u30eb\u4f1a\u8a08\u5e33\u7c3f\u306e Tidy data (\u6574\u7136\u3068\u3057\u305f\u30c7\u30fc\u30bf)\u30a2\u30d7\u30ed\u30fc\u30c1&#8221;\u3000<a href=\"https:\/\/www.sambuichi.jp\/?p=6615\"><i class=\"fa fa-external-link\" aria-hidden=\"true\"><\/i><\/a>\u3067\u7d39\u4ecb\u3057\u305fTidy data\u3092\u4f7f\u7528\u3059\u308b\u3068XML\u3068\u4e92\u63db\u6027\u306e\u3042\u308bCSV\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u53ef\u80fd\u3067\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u3001UBL 2.1\u306eXML\u6587\u66f8\u3092Tidy data\u5f62\u5f0f\u306eCSV\u30d5\u30a1\u30a4\u30eb\u3068\u76f8\u4e92\u5909\u63db\u3059\u308bPython\u30d7\u30ed\u30b0\u30e9\u30e0\u3082\u7d39\u4ecb\u3057\u307e\u3059\u3002<br \/>\n\u4f7f\u7528\u3057\u3066\u3044\u308b\u81ea\u4f5c\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u3064\u3044\u3066\u306f\u3001&#8221;JP PINT 0.9.3 \u30b9\u30ad\u30fc\u30de\u30c8\u30ed\u30f3\u30d5\u30a1\u30a4\u30eb\u306e\u89e3\u6790\u30d7\u30ed\u30b0\u30e9\u30e0&#8221; <a href=\"https:\/\/www.sambuichi.jp\/?p=6948\"><i class=\"fa fa-external-link\" aria-hidden=\"true\"><\/i><\/a>\u306e&#8221;XML\u3068Python dict\u306e\u30c7\u30fc\u30bf\u5909\u63db\u30e9\u30a4\u30d6\u30e9\u30ea&#8221;\u3092\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002dic2etree\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u3001 stackoverflow converting xml to dictionary using elementtree <a href=\"https:\/\/stackoverflow.com\/questions\/7684333\/converting-xml-to-dictionary-using-elementtree\"><i class=\"fa fa-external-link\" aria-hidden=\"true\"><\/i><\/a>\u3092\u53c2\u8003\u306b\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<br \/>\nCSV\u306f\u3001Tidy data\u8868\u73fe\u3092\u4f7f\u7528\u3059\u308b\u3068\u69cb\u9020\u3092\u542b\u3081\u305f\u30c7\u30fc\u30bf\u3092\u4e00\u679a\u306e\u30b7\u30fc\u30c8\u3067\u8868\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\n\u30ea\u30ec\u30fc\u30b7\u30e7\u30ca\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u5f62\u5f0f\u306b\u3068\u3089\u308f\u308c\u306a\u3044Tidy data\u5f62\u5f0f\u306f\u3001\u3059\u3079\u3066\u306e\u30c7\u30fc\u30bf\u3092\u30e1\u30e2\u30ea\u4e0a\u3067\u51e6\u7406\u3059\u308b\u969b\u306b\u3082\u52b9\u679c\u7684\u306a\u5f62\u5f0f\u3067\u3059\u3002\n        <\/p>\n<\/p><\/div>\n<div class=\"sect1 data-line-4\">\n<h2 id=\"_jp_pint_0_9_3\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u306etidy_data\u8868\u73fe\">JP PINT 0.9.3\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u306eTidy data\u8868\u73fe<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-5\">\n<p>JP PINT 0.9.3\u306eDownload resources\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u306e\u4f8b\u3092Tidy data\u5f62\u5f0f\u306b\u3057\u305f\u3082\u306e\u3092<a href=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Example.xlsx\">Example.xlsx<\/a>\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002<br \/>\n\u4eca\u56de\u7d39\u4ecb\u3059\u308bJapan PINT Invoice UBL Example1-minimum.xml\u306f\u3001UBL 2.1\u306e\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u3067\u3059\u3002<br \/>\n\u304c\u3001\u3088\u304f\u898b\u308b\u3068\u8a18\u8f09\u3055\u308c\u305f\u91d1\u984d\u306b\u8aa4\u308a\u304c\u3042\u308a\u307e\u3059\u3002\u30a8\u30e9\u30fc\u7b87\u6240\u306b\u3064\u3044\u3066\u306f\u6700\u5f8c\u306b\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\n                <\/p>\n<\/p><\/div>\n<div class=\"listingblock data-line-7\">\n<div class=\"content\">\n<pre class=\"highlight height-set:true decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\"\r\n  xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\"\r\n  xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"\r\n  xmlns:ccts=\"urn:un:unece:uncefact:documentation:2\"\r\n  xmlns:ext=\"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2\"\r\n  xmlns:qdt=\"urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2\"\r\n  xmlns:udt=\"urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2\"\r\n  xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"\r\n  xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:schemaLocation=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\r\n  http:\/\/docs.oasis-open.org\/ubl\/os-UBL-2.1\/xsd\/maindoc\/UBL-Invoice-2.1.xsd\"&gt;\r\n  &lt;!-- Japan common commercial invoice, example1-minimum --&gt;\r\n  &lt;cbc:UBLVersionID&gt;2.1&lt;\/cbc:UBLVersionID&gt;\r\n  &lt;cbc:CustomizationID&gt;urn:fdc:peppol:jp:billing:3.0&lt;\/cbc:CustomizationID&gt; &lt;!--IBT-024 - Specification identifier --&gt;\r\n  &lt;cbc:ProfileID&gt;urn:fdc:peppol.eu:2017:poacc:billing:01:1.0&lt;\/cbc:ProfileID&gt; &lt;!--IBT-023 - Business process type --&gt;\r\n  &lt;cbc:ID&gt;156&lt;\/cbc:ID&gt; &lt;!--IBT-001 - Invoice number --&gt;\r\n  &lt;cbc:IssueDate&gt;2023-10-24&lt;\/cbc:IssueDate&gt; &lt;!--IBT-002 - Invoice issue date --&gt;\r\n  &lt;cbc:InvoiceTypeCode&gt;380&lt;\/cbc:InvoiceTypeCode&gt; &lt;!--IBT-003 - Invoice type code --&gt;\r\n  &lt;cbc:DocumentCurrencyCode&gt;JPY&lt;\/cbc:DocumentCurrencyCode&gt; &lt;!--IBT-005 - Invoice currency code --&gt;\r\n  &lt;cac:InvoicePeriod&gt; &lt;!--IBG-14 - INVOICING PERIOD --&gt;\r\n    &lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!--IBT-073 - Invoicing period start date --&gt;\r\n    &lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!--IBT-074 - Invoicing period end date --&gt;\r\n  &lt;\/cac:InvoicePeriod&gt;\r\n  &lt;cac:AccountingSupplierParty&gt; &lt;!--IBG-04 - SELLER --&gt;\r\n    &lt;cac:Party&gt;\r\n      &lt;cbc:EndpointID schemeID=\"0188\"&gt;1234567890123&lt;\/cbc:EndpointID&gt; &lt;!--IBT-034 - Seller electronic address, IBT-034-1 - Scheme identifier --&gt;\r\n      &lt;cac:PostalAddress&gt; &lt;!--IBG-05 - SELLER POSTAL ADDRESS --&gt;\r\n        &lt;cac:Country&gt;\r\n          &lt;cbc:IdentificationCode&gt;JP&lt;\/cbc:IdentificationCode&gt; &lt;!--IBT-040 - Seller country code --&gt;\r\n        &lt;\/cac:Country&gt;\r\n      &lt;\/cac:PostalAddress&gt;\r\n      &lt;cac:PartyTaxScheme&gt;\r\n        &lt;cbc:CompanyID&gt;T1234567890123&lt;\/cbc:CompanyID&gt; &lt;!--IBT-031 - Seller TAX identifier --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-031, qualifier --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:PartyTaxScheme&gt;\r\n      &lt;cac:PartyLegalEntity&gt;\r\n        &lt;cbc:RegistrationName&gt;\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u5546\u4e8b&lt;\/cbc:RegistrationName&gt; &lt;!--IBT-027 - Seller name --&gt;\r\n      &lt;\/cac:PartyLegalEntity&gt;\r\n    &lt;\/cac:Party&gt;\r\n  &lt;\/cac:AccountingSupplierParty&gt;\r\n  &lt;cac:AccountingCustomerParty&gt; &lt;!--IBG-07 - BUYER --&gt;\r\n    &lt;cac:Party&gt;\r\n      &lt;cbc:EndpointID schemeID=\"0188\"&gt;3210987654321&lt;\/cbc:EndpointID&gt; &lt;!--IBT-049 - Buyer electronic address, IBT-049-1 - Scheme identifier --&gt;\r\n      &lt;cac:PostalAddress&gt; &lt;!--IBG-08 - BUYER POSTAL ADDRESS --&gt;\r\n        &lt;cac:Country&gt;\r\n          &lt;cbc:IdentificationCode&gt;JP&lt;\/cbc:IdentificationCode&gt; &lt;!--IBT-055 - Buyer country code --&gt;\r\n        &lt;\/cac:Country&gt;\r\n      &lt;\/cac:PostalAddress&gt;\r\n      &lt;cac:PartyLegalEntity&gt;\r\n        &lt;cbc:RegistrationName&gt;\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u7269\u7523&lt;\/cbc:RegistrationName&gt; &lt;!--IBT-044 - Buyer name --&gt;\r\n      &lt;\/cac:PartyLegalEntity&gt;\r\n    &lt;\/cac:Party&gt;\r\n  &lt;\/cac:AccountingCustomerParty&gt;\r\n  &lt;cac:TaxTotal&gt;\r\n    &lt;cbc:TaxAmount currencyID=\"JPY\"&gt; &lt;!--26000--&gt;20000&lt;\/cbc:TaxAmount&gt; &lt;!--IBT-110 - Invoice total TAX amount --&gt;\r\n    &lt;cac:TaxSubtotal&gt; &lt;!--IBG-23 - TAX BREAKDOWN --&gt;\r\n      &lt;cbc:TaxableAmount currencyID=\"JPY\"&gt; &lt;!--260000--&gt;200000&lt;\/cbc:TaxableAmount&gt; &lt;!--IBT-116 - TAX category taxable amount --&gt;\r\n      &lt;cbc:TaxAmount currencyID=\"JPY\"&gt; &lt;!--26000--&gt;20000&lt;\/cbc:TaxAmount&gt; &lt;!--IBT-117 - TAX category tax amount --&gt;\r\n      &lt;cac:TaxCategory&gt;\r\n        &lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!--IBT-118 - TAX category code --&gt;\r\n        &lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!--IBT-119 - TAX category rate --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-118, qualifier --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:TaxCategory&gt;\r\n    &lt;\/cac:TaxSubtotal&gt;\r\n    &lt;cac:TaxSubtotal&gt; &lt;!--IBG-23 - TAX BREAKDOWN --&gt;\r\n      &lt;cbc:TaxableAmount currencyID=\"JPY\"&gt;3490&lt;\/cbc:TaxableAmount&gt; &lt;!--IBT-116 - TAX category taxable amount --&gt;\r\n      &lt;cbc:TaxAmount currencyID=\"JPY\"&gt;0&lt;\/cbc:TaxAmount&gt; &lt;!--IBT-117 - TAX category tax amount --&gt;\r\n      &lt;cac:TaxCategory&gt;\r\n        &lt;cbc:ID&gt;E&lt;\/cbc:ID&gt; &lt;!--IBT-118 - TAX category code --&gt;\r\n        &lt;cbc:Percent&gt;0&lt;\/cbc:Percent&gt; &lt;!--IBT-119 - TAX category rate --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-118, qualifier --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:TaxCategory&gt;\r\n    &lt;\/cac:TaxSubtotal&gt;\r\n  &lt;\/cac:TaxTotal&gt;\r\n  &lt;cac:LegalMonetaryTotal&gt; &lt;!--IBG-22 - DOCUMENT TOTALS --&gt;\r\n    &lt;cbc:LineExtensionAmount currencyID=\"JPY\"&gt;255990&lt;\/cbc:LineExtensionAmount&gt; &lt;!--IBT-106 - Sum of Invoice line net amount --&gt;\r\n    &lt;cbc:TaxExclusiveAmount currencyID=\"JPY\"&gt;255990&lt;\/cbc:TaxExclusiveAmount&gt; &lt;!--IBT-109 - Invoice total amount without TAX --&gt;\r\n    &lt;cbc:TaxInclusiveAmount currencyID=\"JPY\"&gt;281990&lt;\/cbc:TaxInclusiveAmount&gt; &lt;!--IBT-112 - Invoice total amount with TAX --&gt;\r\n    &lt;cbc:AllowanceTotalAmount currencyID=\"JPY\"&gt;0&lt;\/cbc:AllowanceTotalAmount&gt; &lt;!--IBT-107 - Sum of allowances on document level --&gt;\r\n    &lt;cbc:ChargeTotalAmount currencyID=\"JPY\"&gt;0&lt;\/cbc:ChargeTotalAmount&gt; &lt;!--IBT-108 - Sum of charges on document level --&gt;\r\n    &lt;cbc:PrepaidAmount currencyID=\"JPY\"&gt;0&lt;\/cbc:PrepaidAmount&gt; &lt;!--IBT-113 - Paid amount --&gt;\r\n    &lt;cbc:PayableRoundingAmount currencyID=\"JPY\"&gt;0&lt;\/cbc:PayableRoundingAmount&gt; &lt;!--IBT-114 - Rounding amount --&gt;\r\n    &lt;cbc:PayableAmount currencyID=\"JPY\"&gt;281990&lt;\/cbc:PayableAmount&gt; &lt;!--IBT-115 - Amount due for payment --&gt;\r\n  &lt;\/cac:LegalMonetaryTotal&gt;\r\n  &lt;cac:InvoiceLine&gt; &lt;!--IBG-25 - INVOICE LINE --&gt;\r\n    &lt;cbc:ID&gt;1&lt;\/cbc:ID&gt; &lt;!--IBT-126 - Invoice line identifier --&gt;\r\n    &lt;cbc:InvoicedQuantity unitCode=\"H87\"&gt;5&lt;\/cbc:InvoicedQuantity&gt; &lt;!--IBT-129 - Invoiced quantity, IBT-130 - Invoiced quantity unit of measure code --&gt;\r\n    &lt;cbc:LineExtensionAmount currencyID=\"JPY\"&gt;250000&lt;\/cbc:LineExtensionAmount&gt; &lt;!--IBT-131 - Invoice line net amount --&gt;\r\n    &lt;cac:InvoicePeriod&gt; &lt;!--IBG-26 - INVOICE LINE PERIOD --&gt;\r\n      &lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!--IBT-134 - Invoice line period start date --&gt;\r\n      &lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!--IBT-135 - Invoice line period end date --&gt;\r\n    &lt;\/cac:InvoicePeriod&gt;\r\n    &lt;cac:Item&gt; &lt;!--IBG-31 - ITEM INFORMATION --&gt;\r\n      &lt;cbc:Name&gt;\u30c7\u30b9\u30af\u30c1\u30a7\u30a2&lt;\/cbc:Name&gt; &lt;!--IBT-153 - Item name --&gt;\r\n      &lt;cac:ClassifiedTaxCategory&gt; &lt;!--IBG-30 - LINE TAX INFORMATION --&gt;\r\n        &lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!--IBT-151 - Invoiced item TAX category code --&gt;\r\n        &lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!--IBT-152 - Invoiced item TAX rate --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-167 - Tax Scheme --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:ClassifiedTaxCategory&gt;\r\n    &lt;\/cac:Item&gt;\r\n    &lt;cac:Price&gt; &lt;!--IBG-29 - PRICE DETAILS --&gt;\r\n      &lt;cbc:PriceAmount currencyID=\"JPY\"&gt;50000&lt;\/cbc:PriceAmount&gt; &lt;!--IBT-146 - Item net price --&gt;\r\n      &lt;cbc:BaseQuantity unitCode=\"H87\"&gt;1&lt;\/cbc:BaseQuantity&gt; &lt;!--IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code --&gt;\r\n    &lt;\/cac:Price&gt;\r\n  &lt;\/cac:InvoiceLine&gt;\r\n  &lt;cac:InvoiceLine&gt; &lt;!--IBG-25 - INVOICE LINE --&gt;\r\n    &lt;cbc:ID&gt;2&lt;\/cbc:ID&gt; &lt;!--IBT-126 - Invoice line identifier --&gt;\r\n    &lt;cbc:InvoicedQuantity unitCode=\"H87\"&gt;5&lt;\/cbc:InvoicedQuantity&gt; &lt;!--IBT-130 - Invoiced quantity unit of measure code, IBT-129 - Invoiced quantity --&gt;\r\n    &lt;cbc:LineExtensionAmount currencyID=\"JPY\"&gt;2500&lt;\/cbc:LineExtensionAmount&gt; &lt;!--IBT-131 - Invoice line net amount --&gt;\r\n    &lt;cac:InvoicePeriod&gt; &lt;!--IBG-26 - INVOICE LINE PERIOD --&gt;\r\n      &lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!--IBT-134 - Invoice line period start date --&gt;\r\n      &lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!--IBT-135 - Invoice line period end date --&gt;\r\n    &lt;\/cac:InvoicePeriod&gt;\r\n    &lt;cac:Item&gt; &lt;!--IBG-31 - ITEM INFORMATION --&gt;\r\n      &lt;cbc:Name&gt;\u30b3\u30d4\u30fc\u7528\u7d19\uff08A4\uff09&lt;\/cbc:Name&gt; &lt;!--IBT-153 - Item name --&gt;\r\n      &lt;cac:ClassifiedTaxCategory&gt; &lt;!--IBG-30 - LINE TAX INFORMATION --&gt;\r\n        &lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!--IBT-151 - Invoiced item TAX category code --&gt;\r\n        &lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!--IBT-152 - Invoiced item TAX rate --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-167 - Tax Scheme --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:ClassifiedTaxCategory&gt; &lt;!--IBG-32 - ITEM ATTRIBUTES --&gt;\r\n    &lt;\/cac:Item&gt;\r\n    &lt;cac:Price&gt; &lt;!--IBG-29 - PRICE DETAILS --&gt;\r\n      &lt;cbc:PriceAmount currencyID=\"JPY\"&gt;500&lt;\/cbc:PriceAmount&gt; &lt;!--IBT-146 - Item net price --&gt;\r\n      &lt;cbc:BaseQuantity unitCode=\"H87\"&gt;1&lt;\/cbc:BaseQuantity&gt; &lt;!--IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code --&gt;\r\n    &lt;\/cac:Price&gt;\r\n  &lt;\/cac:InvoiceLine&gt;\r\n  &lt;cac:InvoiceLine&gt; &lt;!--IBG-25 - INVOICE LINE --&gt;\r\n    &lt;cbc:ID&gt;3&lt;\/cbc:ID&gt; &lt;!--IBT-126 - Invoice line identifier --&gt;\r\n    &lt;cbc:InvoicedQuantity unitCode=\"H87\"&gt;10&lt;\/cbc:InvoicedQuantity&gt; &lt;!--IBT-130 - Invoiced quantity unit of measure code, IBT-129 - Invoiced quantity --&gt;\r\n    &lt;cbc:LineExtensionAmount currencyID=\"JPY\"&gt;3490&lt;\/cbc:LineExtensionAmount&gt; &lt;!--IBT-131 - Invoice line net amount --&gt;\r\n    &lt;cac:InvoicePeriod&gt; &lt;!--IBG-26 - INVOICE LINE PERIOD --&gt;\r\n      &lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!--IBT-134 - Invoice line period start date --&gt;\r\n      &lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!--IBT-135 - Invoice line period end date --&gt;\r\n    &lt;\/cac:InvoicePeriod&gt;\r\n    &lt;cac:Item&gt; &lt;!--IBG-31 - ITEM INFORMATION --&gt;\r\n      &lt;cbc:Name&gt;\u691c\u5b9a\u6e08\u6559\u79d1\u66f8(\u7b97\u6570)&lt;\/cbc:Name&gt; &lt;!--IBT-153 - Item name --&gt;\r\n      &lt;cac:ClassifiedTaxCategory&gt; &lt;!--IBG-30 - LINE TAX INFORMATION --&gt;\r\n        &lt;cbc:ID&gt;E&lt;\/cbc:ID&gt; &lt;!--IBT-151 - Invoiced item TAX category code --&gt;\r\n        &lt;cbc:Percent&gt;0&lt;\/cbc:Percent&gt; &lt;!--IBT-152 - Invoiced item TAX rate --&gt;\r\n        &lt;cac:TaxScheme&gt;\r\n          &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!--IBT-167 - Tax Scheme --&gt;\r\n        &lt;\/cac:TaxScheme&gt;\r\n      &lt;\/cac:ClassifiedTaxCategory&gt;\r\n    &lt;\/cac:Item&gt;\r\n    &lt;cac:Price&gt; &lt;!--IBG-29 - PRICE DETAILS --&gt;\r\n      &lt;cbc:PriceAmount currencyID=\"JPY\"&gt;349&lt;\/cbc:PriceAmount&gt; &lt;!--IBT-146 - Item net price --&gt;\r\n      &lt;cbc:BaseQuantity unitCode=\"H87\"&gt;1&lt;\/cbc:BaseQuantity&gt; &lt;!--IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code --&gt;\r\n    &lt;\/cac:Price&gt;\r\n  &lt;\/cac:InvoiceLine&gt;\r\n&lt;\/Invoice&gt;<\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"paragraph data-line-170\">\n<p>\u3053\u306eUBL2.1\u3067\u5b9a\u7fa9\u3055\u308c\u305fXML\u6587\u66f8\u306b\u5bfe\u5fdc\u3057\u305fTidy data\u5f62\u5f0f\u306e\u8868\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n<\/p><\/div>\n<p><a  href=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2.png\" data-rel=\"lightbox-gallery-0\" data-rl_title=\"Tidy data1\" data-rl_caption=\"\" title=\"Tidy data1\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2.png\" alt=\"\" width=\"1897\" height=\"140\" class=\"alignnone size-full wp-image-7047\" srcset=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2.png 1897w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2-300x22.png 300w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2-1024x76.png 1024w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2-768x57.png 768w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Tidy-data1-2-1536x113.png 1536w\" sizes=\"(max-width: 1897px) 100vw, 1897px\" \/><\/a><\/p>\n<table class=\"tableblock frame-all grid-all stretch data-line-172\">\n<colgroup>\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1739%;\">\n<col style=\"width: 2.1745%;\">\n                <\/colgroup>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">G00<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">G23<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">G25<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-001<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-002<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-003<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-005<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-023<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-024<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-027<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-031<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-034<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-034-1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-040<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-044<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-049<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-049-1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-055<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-073<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-074<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-106<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-107<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-108<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-109<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-110<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-112<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-113<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-114<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-115<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-116<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-117<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-118<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-119<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-126<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-129<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-130<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-131<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-134<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-135<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-146<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-149<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-150<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-151<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-152<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-167<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-153<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/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\">156<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-24<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">380<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JPY<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">urn:fdc:peppol.eu:2017:poacc:billing:01:1.0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">urn:fdc:peppol:jp:billing:3.0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u5546\u4e8b<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">T1234567890123<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1234567890123<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0188<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u7269\u7523<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3210987654321<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0188<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">255990<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">255990<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">20000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">281990<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">281990<\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S10<\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">200000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">20000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/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\"><\/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\"><\/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\"><\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">E0<\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3490<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">E<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/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\"><\/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\"><\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\">\n<p class=\"tableblock\">5<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">250000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">50000<\/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\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30c7\u30b9\u30af\u30c1\u30a7\u30a2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">5<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2500<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">500<\/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\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b3\u30d4\u30fc\u7528\u7d19\uff08A4\uff09<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\"><\/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\">3<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3490<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">349<\/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\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">E<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u691c\u5b9a\u6e08\u6559\u79d1\u66f8(\u7b97\u6570)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph data-line-182\">\n<p>G00\u306f\u3001\u30a4\u30f3\u30dc\u30a4\u30b9\u306b\u5bfe\u5fdc\u3057\u3066\u304a\u308a\u30a4\u30f3\u30dc\u30a4\u30b9\u756a\u53f7156\u3092\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\nG23\u306f\u3001TAX BREAKDOWN\u306b\u5bfe\u5fdc\u3057\u3066\u6a19\u6e96\u7a0e\u7387(S)\u306e\uff11\uff10\uff05\u3092S10\u3001\u975e\u8ab2\u7a0e(E)\u306e\uff10\uff05\u3092E0\u3068\u533a\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\nG25\u306b\u306f\u3001\u660e\u7d30\u884c\u306e\u756a\u53f7\u304c1,2,3\u3068\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305d\u308c\u4ee5\u964d\u306e\u6b04\u306b\u306f\u3001\u9805\u76ee\u306b\u5bfe\u5fdc\u3059\u308b\u5024\u3092\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\n                <\/p>\n<\/p><\/div>\n<div class=\"paragraph data-line-184\">\n<p>\u76ee\u8996\u78ba\u8a8d\u306e\u305f\u3081\u306b\u3001\u7e26\u3068\u6a2a\u3092\u8ee2\u7f6e\u3057\u305f\u8868\u3092\u6b21\u306b\u3057\u307e\u3057\u307e\u3059\u3002<br \/>\n\u3053\u3061\u3089\u306e\u307b\u3046\u304c\u4eba\u306b\u306f\u5206\u304b\u308a\u3084\u3059\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u51e6\u7406\u306b\u306f\u4e0a\u306eTidy data\u5f62\u5f0f\u304c\u6700\u9069\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u4ed6\u306eDownload resources\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9\u306e\u4f8b\u3082\u4f75\u305b\u3066<a href=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Example.xlsx\">Example.xlsx<\/a>\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u306e\u3067\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002\n            <\/div>\n<table class=\"tableblock frame-all grid-all stretch data-line-187\">\n<colgroup>\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n<col style=\"width: 10%;\">\n                <\/colgroup>\n<tbody>\n<tr>\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\"><\/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\">ibg-23<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-23<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-25<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-25<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-25<\/p>\n<\/td>\n<\/tr>\n<tr>\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\"><\/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\">TAX BREAKDOWN<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX BREAKDOWN<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICE LINE<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICE LINE<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICE LINE<\/p>\n<\/td>\n<\/tr>\n<tr>\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\"><\/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\">0<\/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\">0<\/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\">2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-001<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice number<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">156<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-002<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice issue date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-24<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-003<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice type code<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">380<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-005<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice currency code<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JPY<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-023<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Business process type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">urn:fdc:peppol.eu:2017:poacc:billing:01:1.0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-024<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specification identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">urn:fdc:peppol:jp:billing:3.0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-04<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">SELLER<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-027<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Seller name<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u5546\u4e8b<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-031<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Seller TAX identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">T1234567890123<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-034<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Seller electronic address<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1234567890123<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-034-1<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Scheme identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0188<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-05<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">SELLER POSTAL ADDRESS<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-040<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Seller country code<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-07<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">BUYER<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-044<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Buyer name<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u682a\u5f0f\u4f1a\u793e \u3007\u3007\u7269\u7523<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-049<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Buyer electronic address<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3210987654321<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-049-1<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Scheme identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0188<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-08<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">BUYER POSTAL ADDRESS<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-055<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Buyer country code<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-13<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">DELIVERY 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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-14<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICING PERIOD<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-073<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoicing period start date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-074<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoicing period end date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-22<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">DOCUMENT TOTALS<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-106<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Sum of Invoice line net amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">255990<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-107<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Sum of allowances on document level<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-108<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Sum of charges on document level<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-109<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice total amount without TAX<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">255990<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-110<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice total TAX amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">20000<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-112<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice total amount with TAX<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">281990<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-113<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Paid amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-114<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Rounding amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-115<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Amount due for payment<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">281990<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-23<\/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\">1..n<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX BREAKDOWN<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-116<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX category taxable amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">200000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3490<\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-117<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX category tax amount<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">20000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-118<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX category code<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">E<\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-119<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TAX category rate<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-25<\/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\">1..n<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICE LINE<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-126<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice line identifier<\/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\"><\/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\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-129<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoiced quantity<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">5<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">5<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-130<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoiced quantity unit of measure code<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-131<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice line net amount<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">250000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2500<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">3490<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-26<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INVOICE LINE PERIOD<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-134<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice line period start date<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-135<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoice line period end date<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2023-10-18<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-29<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">PRICE DETAILS<\/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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-146<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Item net price<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">50000<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">500<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">349<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-149<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Item price base quantity<\/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\"><\/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\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-150<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Item price base quantity unit of measure code<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">H87<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-30<\/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\">1..n<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">LINE TAX 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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-151<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoiced item TAX category code<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">S<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">E<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-152<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Invoiced item TAX rate<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-167<\/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\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Tax Scheme<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">VAT<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibg-31<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ITEM 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\"><\/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\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ibt-153<\/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\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Item name<\/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\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30c7\u30b9\u30af\u30c1\u30a7\u30a2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b3\u30d4\u30fc\u7528\u7d19\uff08A4\uff09<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u691c\u5b9a\u6e08\u6559\u79d1\u66f8(\u7b97\u6570)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/p><\/div>\n<div class=\"sect1 data-line-249\">\n<h2 id=\"_\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9xml\u6587\u66f8\u304b\u3089tidy_data\u5f62\u5f0f\u306ecsv\u3092\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\">\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9XML\u6587\u66f8\u304b\u3089Tidy data\u5f62\u5f0f\u306eCSV\u3092\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-250\">\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u51e6\u7406\u306e\u6d41\u308c\u306f\u3001\u6b21\u306e\u9806\u5e8f\u3067\u3059\u3002<br \/>\n                    1. JP PINT 0.9.3\u306e\u5b9a\u7fa9\u8868(Excel)\u304b\u3089PINT\u5909\u63db\u8f9e\u66f8\u30c7\u30fc\u30bf\u3092\u4f5c\u6210\u3057\u3066\u304a\u304f\u3002<br \/>\n                    2. Element Tree\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066XML\u6587\u66f8\u3092\u8aad\u307f\u8fbc\u307f\u3001Element Tree\u30c7\u30fc\u30bf\u5f62\u5f0f\u306b\u5c55\u958b\u3059\u308b\u3002<br \/>\n                    3. PINT\u5909\u63db\u8f9e\u66f8\u30c7\u30fc\u30bf\u3092Semantic\u30bd\u30fc\u30c8\u756a\u53f7\u9806\u306b\u8aad\u307f\u8fbc\u307f\u3001\u9805\u76ee\u3054\u3068\u306b\u5b9a\u7fa9\u3055\u308c\u305fXPath\u3092\u4f7f\u3063\u3066Element Tree\u306e\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u8a72\u5f53\u30c7\u30fc\u30bf\u306e\u5024\u3092\u53d6\u5f97\u3059\u308b\u3002<br \/>\n                    4. \u30c7\u30fc\u30bf\u306e\u5024\u3092Tidy data\u5f62\u5f0f\u306ePython\u306e\u8f9e\u66f8\u30c7\u30fc\u30bf\u306b\u767b\u9332\u3059\u308b\u3002<br \/>\n                    5. Tidy data\u5f62\u5f0f\u306ePython\u306e\u8f9e\u66f8\u30c7\u30fc\u30bf\u3092\u8ee2\u7f6e\u5f62\u5f0f\u306eCSV\u3068\u3057\u3066\u51fa\u529b\u3059\u308b\u3002<br \/>\n                    6. Tidy data\u5f62\u5f0f\u306ePython\u306e\u8f9e\u66f8\u30c7\u30fc\u30bf\u3092xBRL-GD\u5b9a\u7fa9\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb(JSON)\u304a\u3088\u3073CSV\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b\u3002<\/p>\n<\/p><\/div>\n<div class=\"listingblock data-line-0\">\n<div class=\"title\">invoice2oim.py<\/div>\n<div class=\"content\">\n<pre class=\"highlight height-set:true decode:true\"><code class=\"language-python\" data-lang=\"python\">#!\/usr\/bin\/env python3\r\n#coding: utf-8\r\n#\r\n# generate CSV and OIM-CSV from Open Peoopl e-Invoice (UBL 2.1)\r\n#\r\n# designed by SAMBUICHI, Nobuyuki (Sambuichi Professional Engineers Office)\r\n# written by SAMBUICHI, Nobuyuki (Sambuichi Professional Engineers Office)\r\n#\r\n# MIT License\r\n#\r\n# (c) 2021-2022 SAMBUICHI Nobuyuki (Sambuichi Professional Engineers Office)\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a copy\r\n# of this software and associated documentation files (the \"Software\"), to deal\r\n# in the Software without restriction, including without limitation the rights\r\n# to use, copy, modify, merge, publish, distribute, sublicense, and\/or sell\r\n# copies of the Software, and to permit persons to whom the Software is\r\n# furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included in all\r\n# copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n# SOFTWARE.\r\nfrom termios import VERASE\r\nimport xml.etree.ElementTree as ET\r\nimport csv\r\nimport re\r\nimport sys\r\nimport json\r\nimport os\r\nimport argparse\r\nimport collections\r\n\r\nfrom dic2etree import *\r\n\r\nDEBUG = None\r\n\r\nET.register_namespace('', ns[''])\r\nET.register_namespace('xsd', ns['xsd'])\r\nET.register_namespace('xsi', ns['xsi'])\r\nET.register_namespace('cac', ns['cac'])\r\nET.register_namespace('cbc', ns['cbc'])\r\nET.register_namespace('qdt', ns['qdt'])\r\nET.register_namespace('udt', ns['udt'])\r\nET.register_namespace('ccts', ns['ccts'])\r\nET.register_namespace('cn', ns['cn'])\r\nET.register_namespace('ubl', ns['ubl'])\r\n\r\nSEP = os.sep\r\n\r\ninvoiceNumber = ''\r\nDocumentCurrencyCode = ''\r\nTaxCurrencyCode = ''\r\nSupplierTaxScheme = ''\r\npintList = []\r\npintDict = {}\r\npintSemSort = {}\r\npintMap = {}\r\n\r\nroot = None\r\n\r\nbough0 = {'level': 0, 'id': 'ibg-00', 'count': ''}\r\nboughs = {}\r\nboughs[0] = [bough0]\r\n\r\ndef file_path(pathname):\r\n    if '\/' == pathname[0:1]:\r\n        return pathname\r\n    else:\r\n        dir = os.path.dirname(__file__)\r\n        new_path = os.path.join(dir, pathname)\r\n        return new_path\r\n\r\ndef formatXPath(xpath):\r\n    global id\r\n    if '[not(@schemeID=\"SEPA\")]' in xpath: # ETree doesn't supprt 'not'. Assume we don't use SEPA in Japan\r\n        xpath = xpath.replace('[not(@schemeID=\"SEPA\")]','')\r\n    if re.match(r'.*\\[cac:TaxScheme\/cbc:ID.*\\]', xpath):\r\n        xpath = re.sub(r'\\[cac:TaxScheme\/cbc:ID[ ]*=[ ]*(.*)\\]','\/cac:TaxScheme[cbc:ID=\\\\1]\/..', xpath)\r\n        xpath = re.sub(r'\\[cac:TaxScheme\/cbc:ID[ ]*!=[ ]*(.*)\\]','\/cac:TaxScheme[cbc:ID!=\\\\1]\/..', xpath)\r\n        # if VERBOSE: print(f'formatXPath xpath={xpath}')\r\n    if re.match(r'.*\\[cbc:TaxAmount\/@currencyID', xpath):\r\n        xpath = re.sub(r'\\[cbc:TaxAmount\/@currencyID[ ]*=[ ]*(.*)\\]','\/cbc:TaxAmount[@currencyID=\\\\1]\/..', xpath)\r\n    xpath = re.sub(r'\/Invoice\/cbc:DocumentCurrencyCode(\/text\\(\\))?','\"'+DocumentCurrencyCode+'\"', xpath)\r\n    if TaxCurrencyCode and re.match(r'.*\/Invoice\/cbc:TaxCurrencyCode(\/text\\(\\))?', xpath):\r\n        xpath = re.sub(r'\/Invoice\/cbc:TaxCurrencyCode(\/text\\(\\))?','\"'+TaxCurrencyCode+'\"', xpath)\r\n    xpath = re.sub(r'\/Invoice', '\/{'+ns['ubl']+'}Invoice', xpath)\r\n    xpath = re.sub(r'cac:', '{'+ns['cac']+'}', xpath)\r\n    xpath = re.sub(r'cbc:', '{'+ns['cbc']+'}', xpath)\r\n    if re.match(r'^.*\/@[a-zA-Z]*$', xpath):\r\n        path = re.sub(r'(.*)\/@.*$', '\\\\1', xpath)\r\n        attr = re.sub(r'.*\/@(.*)$', '\\\\1', xpath)\r\n        xpath = [path, attr]\r\n    else:\r\n        xpath = re.sub(r'false\\(\\)', \"'false'\", xpath)\r\n        xpath = re.sub(r'true\\(\\)', \"'true'\", xpath)\r\n        # if DEBUG: print(f'{getframeinfo(currentframe()).lineno:03d}: xpath={xpath}')\r\n    return xpath\r\n\r\ndef updateBough(i, count):\r\n    global rows\r\n    global boughs\r\n    global n\r\n    data = pintList[i]\r\n    if '1'==data['card'][-1:]:\r\n        return\r\n    id = data['id']\r\n    BT = data['BT']\r\n    level = boughLevel[id]\r\n    # if DEBUG:\r\n    #     print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={i:03d} updateBough rows[{n}] {id} {rows[n][\"0001\"]}({rows[n][\"0000\"]})\\n boughs[{n}] {boughs[n]}')\r\n    n = len(rows) - 1\r\n    bough = boughs[n]\r\n    bough_id = bough[-1:][0]['id']\r\n    parentList = parents[id]  # [1:]\r\n    if parentList and len(parentList) &gt; 0:\r\n        if '-' == id[-2:-1]:\r\n            parent_id = parentList[1:2][0]\r\n            parent_BT = [v['BT'] for v in list(pintList) if parent_id == v['id']][0]\r\n        else:\r\n            parent_id = id\r\n            parent_BT = BT\r\n    else:\r\n        parent_id = id\r\n        parent_BT = BT\r\n    if id in L1multipleBG or 'ibg-38' == id or n &gt; 0:\r\n        n = n + 1\r\n    if n &gt; 0:\r\n        idx = n - 1\r\n    else:\r\n        idx = 0\r\n    _boughs = boughs[idx]\r\n    if 0 == len(parentList):\r\n        _boughs = _boughs[:1]\r\n    elif level &lt; len(_boughs):\r\n        _boughs = _boughs[:level]\r\n    boughs[n] = _boughs + [{'level': len(_boughs), 'id': parent_id, 'count': count}]\r\n    rows[n] = {'0000': parent_id, '0001': parent_BT}\r\n    # if DEBUG:\r\n    #     print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={i:03d} updateBough {id} rows[{n}] {rows[n][\"0001\"]}({rows[n][\"0000\"]}) boughs[{n}] {boughs[n]}')\r\n\r\ndef getAttribute(xpath,element):\r\n    text = None\r\n    if xpath[1]:\r\n        attrib = xpath[1]\r\n        if attrib and attrib in element.attrib:\r\n            text = element.attrib[attrib]\r\n    return text\r\n\r\ndef fillData(parent, parentXPath, i, count):\r\n    global n\r\n    global id\r\n    global boughs\r\n    if None == parent:\r\n        parent = root\r\n    data = pintList[i]\r\n    semSort = data['semSort']\r\n    id = data['id']\r\n    level = data['level']\r\n    BT = data['BT']\r\n    xpath = data['xpath']\r\n    if not xpath or len(xpath) &lt; 9:\r\n        return\r\n    xpath = xpath[9:]\r\n    xpath = formatXPath(xpath)\r\n    text = None\r\n    try:\r\n        if isinstance(xpath, list): # xpath contains attribute\r\n            element = None\r\n            text = None\r\n            if parentXPath:\r\n                _xpath = xpath[0].replace(parentXPath+'\/', '')\r\n            else:\r\n                _xpath = xpath[0]\r\n            if re.match(r'^.*\\[not\\(.*\\)\\]', _xpath):\r\n                # e.g. .*[not({urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}DocumentTypeCode='130')]\r\n                xpath_ = re.sub(r'^(.*)\\[not\\(.*\\)\\]', r'\\1', _xpath)\r\n                __xpath = re.sub(r'^(.*)\\[not\\((.*)\\)\\]', r'\\1[\\2]', _xpath)\r\n                if parentXPath:\r\n                    elements_ = parent.findall(xpath_)\r\n                else:\r\n                    elements_ = root.findall(xpath_)\r\n                if len(elements_) &gt; 0:\r\n                    _elements = root.findall(__xpath)\r\n                    elements = list(set(elements_) - set(_elements))\r\n                    if len(elements) &gt; 0:\r\n                        element = elements[0]\r\n                        text = getAttribute(xpath,element)\r\n            else:\r\n                element = parent.find(_xpath)\r\n                if not None == element and element.tag:\r\n                    text = getAttribute(xpath,element)\r\n        else:\r\n            if re.match(r'^.*\\[not\\(.*\\)\\]', xpath):  # and re.match(r''):\r\n                element = None\r\n                text = None\r\n                # e.g. .*[not({urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}DocumentTypeCode='130')]\r\n                xpath = formatXPath(xpath)\r\n                if parentXPath:\r\n                    _xpath = xpath.replace(parentXPath, '')[1:]\r\n                else:\r\n                    _xpath = xpath\r\n                xpath_ = re.sub(r'^(.*)\\[not\\(.*\\)\\]', r'\\1', _xpath)\r\n                __xpath = re.sub(r'^(.*)\\[not\\((.*)\\)\\]', r'\\1[\\2]', _xpath)\r\n                if parentXPath:\r\n                    elements_ = parent.findall(xpath_)\r\n                else:\r\n                    elements_ = root.findall(xpath_)\r\n                if len(elements_) &gt; 0:\r\n                    _elements = root.findall(__xpath)\r\n                    elements = list(set(elements_)-set(_elements))\r\n                    if len(elements) &gt; 0:\r\n                        text = elements[0].text\r\n            else:\r\n                if parentXPath and not 'TaxTotal' in xpath:\r\n                    _xpath = xpath.replace(parentXPath+'\/', '')\r\n                else:\r\n                    _xpath = xpath\r\n                if 'TaxTotal' in _xpath and not 'TaxSubtotal' in _xpath:\r\n                    text = root.findtext(_xpath)\r\n                elif 'TaxSubtotal' in _xpath:\r\n                    _xpath = xpath.replace(parentXPath+'\/', '')\r\n                    text = parent.findtext(_xpath)\r\n                    if not text:\r\n                        text = root.findtext(parentXPath+'['+str(n)+']\/'+_xpath)\r\n                else:\r\n                    text = parent.findtext(_xpath)\r\n    except SyntaxError:\r\n        print(f'-- SyntaxError {_xpath}')\r\n    if text:\r\n        if re.match(r'ibg-', id):\r\n            text = ''\r\n        text = text.strip().replace('\\n', '\\\\n')\r\n        rows[n][semSort] = {'id': id, 'level': level, 'BT': BT, 'text': text}\r\n        if DEBUG:\r\n            print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={i:03d} * {rows[n][semSort]}')\r\n    return i + 1\r\n\r\n\r\ndef fillGroup(parent, parentPath, i, parentCount):\r\n    global n\r\n    global id\r\n    # if DEBUG:\r\n    #   print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={i:03d} - fillGroup boughs[{n}]={boughs[n]}')\r\n    data = pintList[i]\r\n    id = data['id']\r\n    level = data['level']\r\n    BT = data['BT']\r\n    xpath = data['xpath']\r\n    if DEBUG:\r\n        print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={i:03d} - fillGroup {BT}({id})')\r\n    if not xpath or len(xpath) &lt; 9:\r\n        return i + 1\r\n    while i &lt; len(pintList):\r\n        data = pintList[i]\r\n        id = data['id']\r\n        level = data['level']\r\n        BT = data['BT']\r\n        xpath = data['xpath']\r\n        xpath = xpath[9:]\r\n        xpath = formatXPath(xpath)\r\n        if parentPath:\r\n            _xpath = xpath.replace(parentPath+'\/', '')\r\n        else:\r\n            _xpath = xpath\r\n        if re.match(r'ibt-', id):\r\n            return None\r\n        elif re.match(r'ibg-', id):\r\n            if re.match(r'^.*\\[not\\(.*\\)\\]', _xpath):\r\n                # e.g. .*[not({urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}DocumentTypeCode='130')]\r\n                xpath_ = re.sub(r'^(.*)\\[not\\(.*\\)\\]', r'\\1', _xpath)\r\n                __xpath = re.sub(r'^(.*)\\[not\\((.*)\\)\\]', r'\\1[\\2]', _xpath)\r\n                if parentPath:\r\n                    elements_ = parent.findall(xpath_)\r\n                    _elements = parent.findall(__xpath)\r\n                else:\r\n                    elements_ = root.findall(xpath_)\r\n                    _elements = root.findall(__xpath)\r\n                elements = list(set(elements_)-set(_elements))\r\n            else:\r\n                if 'InvoicePeriod' in xpath:\r\n                    if 'InvoiceLine' in xpath and parent:\r\n                        elements = parent.findall(_xpath)\r\n                    else:\r\n                        elements = root.findall(_xpath)\r\n                elif 'Contact' in xpath:\r\n                    elements = root.findall(_xpath)\r\n                elif parentPath:\r\n                    elements = parent.findall(_xpath)\r\n                else:\r\n                    elements = root.findall(_xpath)\r\n            if not elements or 0 == len(elements):\r\n                return i + 1\r\n            next_i = None\r\n            # ibg-30:LINE TAX INFORMATION\r\n            if len(elements) &gt; 1 or id in ['ibg-23', 'ibg-38', 'ibg-25', 'ibg-27', 'ibg-28', 'ibg-32']:\r\n                # ibg-23:TAX BREAK DOWN\r\n                # ibg-38:TAX BREAKDOWN IN ACCOUNTING CURRENCY\r\n                # ibg-25:INVOICE LINE\r\n                # ibg-27:INVOICE LINE ALLOWANCE\r\n                # ibg-28:INVOICE LINE CHARGE\r\n                # ibg-32:ITEM ATTRIBUTES\r\n                # print(boughs[n][-1])\r\n                count = 0\r\n                updateBough(i, count)\r\n            else:\r\n                count = ''\r\n                if not id in ['ibg-32', 'ibt-160', 'ibt-161']:\r\n                    # ibg-32:ITEM ATTRIBUTES\r\n                    # ibt-160:Item attribute name\r\n                    # ibt-161:Item attribute value\r\n                    n = len(rows) - 1\r\n                if id in L12_single_BTG + L1multipleBG:\r\n                    n = 0\r\n                if parents[id][-1] != [x['id'] for x in boughs[n]][-1]:\r\n                    current_bough = [[x['id'], x['level']] for x in boughs[n]]  # [1:-1][-1]\r\n                    if len(current_bough) &gt; 1:\r\n                        if len(current_bough) == 2:\r\n                            current_bough_ = current_bough[-1]\r\n                        else:\r\n                            current_bough_ = current_bough[1:-1][-1]\r\n                        for index, bough_ in boughs.items():\r\n                            if len(bough_) == 2:\r\n                                bough_1 = bough_[1]\r\n                                # print(current_bough_,bough_1)\r\n                                if current_bough_[0] == bough_1['id'] and current_bough_[1]-1 == bough_1['count']:\r\n                                    n = index\r\n            for element in elements:\r\n                if isinstance(count, int) and count &gt; 0 and count &lt; len(elements):\r\n                    updateBough(i, count)\r\n                _i = i + 1\r\n                _data = pintList[_i]\r\n                _id = _data['id']\r\n                _level = _data['level']\r\n                _BT = _data['BT']\r\n                if DEBUG:\r\n                    id = pintList[i]['id']\r\n                    print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} i={_i:03d} - fillGroup -check- {BT}({id})[{count}] -&gt; {_BT}({_id})')\r\n                while _level &gt; level and _i &lt; len(pintList):\r\n                    next_i = None\r\n                    if re.match(r'^ibg-', _id):\r\n                        next_i = fillGroup(element, xpath, _i, count)\r\n                    elif re.match(r'^ibt-', _id):\r\n                        if _id in L12_single_BTG:\r\n                            n = 0\r\n                        next_i = fillData(element, xpath, _i, count)\r\n                    if next_i:\r\n                        if next_i &lt; len(pintList):\r\n                            next_data = pintList[next_i]\r\n                            _id = next_data['id']\r\n                            _level = next_data['level']\r\n                            _i = next_i\r\n                        if next_i == len(pintList):\r\n                            _i = next_i\r\n                    else:\r\n                        _i += 1\r\n                if isinstance(count, int):\r\n                    count += 1\r\n            if next_i:\r\n                i = next_i\r\n                next_i = None\r\n            else:\r\n                i = _i + 1\r\n            return i\r\n\r\n\r\nif __name__ == '__main__':\r\n    # Create the parser\r\n    parser = argparse.ArgumentParser(prog='invoice2oim.py',\r\n                                     usage='%(prog)s infile -s PINT -o outfile -e encoding [options]',\r\n                                     description='\u96fb\u5b50\u30a4\u30f3\u30dc\u30a4\u30b9XML\u30d5\u30a1\u30a4\u30eb\u3092OIM-CSV\u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db')\r\n    # Add the arguments\r\n    parser.add_argument('inFile', metavar='infile', type=str, help='\u5165\u529bXML\u30d5\u30a1\u30a4\u30eb')\r\n    parser.add_argument('-c', '--csvfile')\r\n    parser.add_argument('-o', '--oimfile')\r\n    parser.add_argument('-s', '--source')\r\n    parser.add_argument('-e', '--encoding')  # 'Shift_JIS' 'cp932' 'utf_8'\r\n    parser.add_argument('-v', '--verbose', action='store_true')\r\n    parser.add_argument('-d', '--debug', action='store_true')\r\n\r\n    args = parser.parse_args()\r\n    ncdng = args.encoding\r\n    if ncdng:\r\n        ncdng = ncdng.lstrip()\r\n    else:\r\n        ncdng = 'UTF-8'\r\n    in_file = None\r\n    if args.inFile:\r\n        in_file = args.inFile.strip()\r\n        in_file = in_file.replace('\/', SEP)\r\n        in_file = file_path(args.inFile)\r\n    # Check if infile exists\r\n    if not in_file or not os.path.isfile(in_file):\r\n        print('\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093')\r\n        sys.exit()\r\n    pint_file = None\r\n    if args.source:\r\n        pint_file = args.source.lstrip()\r\n        pint_file = pint_file.replace('\/', SEP)\r\n        pint_file = file_path(pint_file)\r\n    # Check if PINT exists\r\n    if not pint_file or not os.path.isfile(pint_file):\r\n        print('PINT\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093')\r\n        sys.exit()\r\n    pre, ext = os.path.splitext(in_file)\r\n    if args.csvfile:\r\n        csv_file = args.csvfile.lstrip()\r\n        csv_file = csv_file.replace('\/', SEP)\r\n        csv_file = file_path(csv_file)\r\n    else:\r\n        csv_file = pre+'.csv'\r\n    pre, ext = os.path.splitext(csv_file)\r\n    if args.oimfile:\r\n        oim_file = args.oimfile.lstrip()\r\n        oim_file = oim_file.replace('\/', SEP)\r\n        oim_file = file_path(oim_file)\r\n    else:\r\n        oim_file = pre+'-oim.csv'\r\n    pre, ext = os.path.splitext(oim_file)\r\n    metadata_file = pre[:-4]+'-metadata.json'\r\n    VERBOSE = False\r\n    if args.verbose:\r\n        VERBOSE = args.verbose\r\n    DEBUG = False\r\n    if args.debug:\r\n        DEBUG = args.debug\r\n        from inspect import currentframe, getframeinfo\r\n\r\n    if VERBOSE:\r\n        print(f'** START ** {__file__}')\r\n        print(f'-- Input file {in_file}')\r\n\r\n    L12_single_BTG = ['ibt-006', 'ibt-007', 'ibt-008', 'ibt-009', 'ibt-010', 'ibt-011', 'ibt-012', 'ibt-013', 'ibt-014', 'ibt-015', 'ibt-016', 'ibt-017', 'ibt-018', 'ibt-018-1', 'ibt-019', 'ibg-02', 'ibt-023', 'ibt-024', 'ibg-04', 'ibt-027', 'ibt-028', 'ibt-029', 'ibt-029-1', 'ibt-090', 'ibt-090-1', 'ibt-030', 'ibt-030-1', 'ibt-031', 'ibt-032', 'ibt-032-1', 'ibt-033', 'ibt-034', 'ibt-034-1', 'ibg-05', 'ibt-035', 'ibt-036', 'ibt-162', 'ibt-037', 'ibt-038', 'ibt-039', 'ibt-040', 'ibg-06', 'ibt-041', 'ibt-042', 'ibt-043', 'ibg-07', 'ibt-044', 'ibt-045', 'ibt-046', 'ibt-046-1', 'ibt-047', 'ibt-047-1', 'ibt-048', 'ibt-048-1', 'ibt-049', 'ibt-049-1', 'ibg-08', 'ibt-050', 'ibt-051', 'ibt-163', 'ibt-052', 'ibt-053', 'ibt-054', 'ibt-055', 'ibg-09', 'ibt-056', 'ibt-057', 'ibt-058', 'ibg-10', 'ibt-059', 'ibt-060', 'ibt-060-1', 'ibt-061', 'ibt-061-1', 'ibg-11', 'ibt-062', 'ibt-063', 'ibt-063-1', 'ibg-12', 'ibt-064', 'ibt-065', 'ibt-164', 'ibt-066', 'ibt-067', 'ibt-068', 'ibt-069', 'ibg-13', 'ibt-070', 'ibt-071', 'ibt-071-1', 'ibt-072', 'ibg-14', 'ibt-073', 'ibt-074', 'ibg-15', 'ibt-075', 'ibt-076', 'ibt-165', 'ibt-077', 'ibt-078', 'ibt-079', 'ibt-080', 'ibg-22', 'ibt-106', 'ibt-107', 'ibt-108', 'ibt-109', 'ibt-110', 'ibt-111', 'ibt-112', 'ibt-113', 'ibt-114', 'ibt-115']\r\n    L2_multiple_BG = ['ibg-17', 'ibt-084', 'ibt-085', 'ibt-086']\r\n\r\n    TaxAccounting = ['ibg-37', 'ibt-111', 'ibg-38', 'ibt-190', 'ibt-192', 'ibt-193', 'ibt-194', 'ibt-195', 'ibt-199', 'igb-23', 'ibt-116', 'ibt-117', 'ibt-118', 'ibt-119']\r\n\r\n    tree = ET.parse(in_file)\r\n    root = tree.getroot()\r\n    invoiceNumber = root.findtext(\".\/\/{\"+ns['cbc']+\"}ID\")\r\n    invoiceIssueDate = root.findtext(\".\/\/{\"+ns['cbc']+\"}IssueDate\")\r\n    DocumentCurrencyCode = root.findtext(\".\/\/{\"+ns['cbc']+\"}DocumentCurrencyCode\")\r\n    TaxCurrencyCode = root.findtext(\".\/\/{\"+ns['cbc']+\"}TaxCurrencyCode\")\r\n    SupplierTaxScheme = root.findtext(\".\/\/{\"+ns['cac']+\"}AccountingSupplierParty\/{\"+ns['cac']+\"}Party\/{\"+ns['cac']+\"}PartyTaxScheme\/{\"+ns['cac']+\"}TaxScheme\/{\"+ns['cbc']+\"}ID\")\r\n\r\n    # SemSort,ID,Section,PINTCard,Aligned,AlignedCard,Level,BT,BT_ja,DT,Desc,Desc_ja,Explanation,Explanation2,Example,SyntSort,element,UBLdatatype,SyntaxBinding,selectors,XPath,SyntaxCard,UBLOccurrence\r\n    # 0       1  2       3        4       5           6     7  8     9  10   11      12          13           14      15       16      17          18            19        20    21         22\r\n    # \r\n    COL_SemanticSort = 0\r\n    COL_ID = 1\r\n    COL_card = 5\r\n    COL_level = 6\r\n    COL_BT = 7\r\n    COL_datatype = 9\r\n    COL_SyntaxSort = 15\r\n    COL_xpath = 20\r\n    if VERBOSE:\r\n        print(f'*** JP PINT file {pint_file}')\r\n    with open(pint_file, encoding='utf_8', newline='') as f0:\r\n        reader = csv.reader(f0, delimiter=',')\r\n        header = next(reader)\r\n        for v in reader:\r\n            id = v[COL_ID].strip()\r\n            if id:\r\n                xpath = v[COL_xpath]\r\n                xpath = xpath.replace('\/ubl:','\/')\r\n                syntaxSort = v[COL_SyntaxSort]\r\n                if not syntaxSort:\r\n                    syntaxSort = '9999'\r\n                if not xpath:\r\n                    continue\r\n                card = ''+v[COL_card].strip()\r\n                maxcard = card[-1]\r\n                if '0'==maxcard:\r\n                    continue\r\n                if len(v) &gt; COL_xpath and '\/' in xpath:\r\n                    if re.match(r'.*\\[cac:TaxScheme\/cbc:ID.*\\]', xpath):\r\n                        xpath = re.sub(r'\\[cac:TaxScheme\/cbc:ID[ ]*=[ ]*(.*)\\]','\/cac:TaxScheme[cbc:ID=\\\\1]\/..', xpath)\r\n                        xpath = re.sub(r'\\[cac:TaxScheme\/cbc:ID[ ]*!=[ ]*(.*)\\]','\/cac:TaxScheme[cbc:ID!=\\\\1]\/..', xpath)\r\n                    if re.match(r'.*\\[cbc:TaxAmount\/@currencyID.*\\]', xpath):\r\n                        xpath = re.sub(r'\\[cbc:TaxAmount\/@currencyID[ ]*=[ ]*(.*)\\]','\/cbc:TaxAmount[@currencyID=\\\\1]\/..', xpath)\r\n                        if re.match(r'^.*@currencyID=\/Invoice\/cbc:DocumentCurrencyCode',xpath):\r\n                            xpath = re.sub(r'^(.*@currencyID=)\/Invoice\/cbc:DocumentCurrencyCode(\/text\\(\\))?(\\].*)$', r'\\1\"' + DocumentCurrencyCode + r'\"\\3', xpath)\r\n                        elif re.match(r'^.*@currencyID=\/Invoice\/cbc:TaxCurrencyCode',xpath):\r\n                            if TaxCurrencyCode and id in TaxAccounting:\r\n                                xpath = re.sub(r'^(.*@currencyID=)\/Invoice\/cbc:DocumentCurrencyCode(\/text\\(\\))?(\\].*)$', r'\\1\"' + TaxCurrencyCode + r'\"\\3', xpath)\r\n                    semanticSort = v[COL_SemanticSort]\r\n                    if v[COL_BT]:\r\n                        BT = v[COL_BT]\r\n                    else:\r\n                        BT = ''\r\n                    level = v[COL_level]\r\n                    if '' == level:\r\n                        level = 0\r\n                    try:\r\n                        level = int(level)\r\n                    except:\r\n                        print(f'-- Error {id} \"{level}\"')\r\n                        level = 0\r\n                    # IF ibt-001 HAS level 0\r\n                    level = 1 + int(level)\r\n                    v[COL_level] = level\r\n                    datatype = ''+v[COL_datatype].strip()\r\n                    data = {'semSort': semanticSort, 'id': id, 'level': level, 'BT': BT, 'card': card, 'datatype': datatype, 'xpath': xpath}\r\n                    pintList.append(data)\r\n                    pintDict[semanticSort] = data\r\n                    pintSemSort[id] = semanticSort\r\n                    pintMap[id] = data\r\n\r\n    sorted_rows = sorted(pintList, key=lambda x: x['semSort'])\r\n    pintList = sorted_rows\r\n\r\n    idxLevel = {}\r\n    idxLevel = []\r\n    parents = {}\r\n    for i in range(len(pintList)):\r\n        data = pintList[i]\r\n        level = int(data['level'])\r\n        id = data['id']\r\n        num = id\r\n        parent = id\r\n        if level &gt; 0:\r\n            parent = idxLevel[:level]\r\n        while level &gt; len(idxLevel) - 1:\r\n            idxLevel.append('')\r\n        idxLevel[level] = num\r\n        parents[id] = parent\r\n\r\n    L1multipleBG = [x['id'] for x in pintList if 1 == x['level'] and re.match(r'ibg-', x['id']) and 'n' == x['card'][3:]]\r\n    L2multipleBG = [x['id'] for x in pintList if 2 == x['level'] and re.match(r'ibg-', x['id']) and 'n' == x['card'][3:]]\r\n    bLevel = [{'id': v['id'], 'level':v['level']} for v in pintList if 'ibg' == v['id'][:3] and 'n' == v['card'][-1:]]\r\n    boughLevel = {}\r\n    for d in bLevel:\r\n        boughLevel[d['id']] = int(d['level'])\r\n    boughLevel['ibg-32'] = 2\r\n\r\n    rows = {}\r\n    rows[0] = {'0000': 'ibg-00', '0001': 'CONTENT'}\r\n    boughs[0] = [{'level': 0, 'id': 'ibg-00', 'count': ''}]\r\n    parent_xpath = None\r\n    count = ''\r\n    n = 0\r\n    i = 0\r\n    next_i = None\r\n    boughLvl = 1\r\n    while i &lt; len(pintList):\r\n        data = pintList[i]\r\n        semSort = data['semSort']\r\n        id = data['id']\r\n        if not TaxCurrencyCode and id in TaxAccounting:\r\n            i += 1\r\n            continue\r\n        BT = data['BT']\r\n        level = data['level']\r\n        xpath = data['xpath']\r\n        if DEBUG:\r\n            print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} pintList[{i}] {BT}({id})')\r\n        if re.match(r'^ibt-', id):\r\n            i = fillData(None, '', i, None)\r\n        elif re.match(r'^ibg-', id):\r\n            i = fillGroup(None, '', i, None)\r\n\r\n    checkedParents = []\r\n    for id in rows[0].keys():\r\n        if re.match(r'^ibg-', id):\r\n            if not id in checkedParents:\r\n                checkedParents.append(id)\r\n\r\n    checkedData = []\r\n    for k, v in rows.items():\r\n        for semanticSort, data in v.items():\r\n            if semanticSort &lt; '1000':\r\n                continue\r\n            id = data['id']\r\n            parentIDs = parents[id]  # [1:]\r\n            for parentID in parentIDs:\r\n                if re.match(r'ibg-', parentID) and not parentID in checkedData and not parentID in checkedParents:\r\n                    semanticSort = pintSemSort[parentID]\r\n                    data = {'id': parentID, 'semanticSort': semanticSort}\r\n                    if not data in checkedData:\r\n                        checkedData.append(data)\r\n\r\n    for parent in checkedData:\r\n        id = parent['id']\r\n        semanticSort = parent['semanticSort']\r\n        data = pintDict[semanticSort]\r\n        if not semanticSort in rows[0].keys():\r\n            rows[0][semanticSort] = {'id': data['id'], 'level': data['level'], 'BT': data['BT'], 'text': ''}\r\n\r\n    maxBoughLvl = 1\r\n    for n, data in boughs.items():\r\n        for bough in data:\r\n            level = int(bough['level'])\r\n            if level &gt; maxBoughLvl:\r\n                maxBoughLvl = level\r\n\r\n    checkedParents = []\r\n    for id in rows[0].keys():\r\n        if re.match(r'^ibg-', id):\r\n            if not id in checkedParents:\r\n                checkedParents.append(id)\r\n\r\n    checkedData = []\r\n    for k, v in rows.items():\r\n        for semanticSort, data in v.items():\r\n            if semanticSort &lt; '1000':\r\n                continue\r\n            id = data['id']\r\n            parentIDs = parents[id]\r\n            for parentID in parentIDs:\r\n                if re.match(r'ibg-', parentID) and not parentID in checkedData and not parentID in checkedParents:\r\n                    semanticSort = pintSemSort[parentID]\r\n                    data = {'id': parentID, 'semanticSort': semanticSort}\r\n                    if not data in checkedData:\r\n                        checkedData.append(data)\r\n\r\n    for parent in checkedData:\r\n        id = parent['id']\r\n        semanticSort = parent['semanticSort']\r\n        data = pintDict[semanticSort]\r\n        if not semanticSort in rows[0].keys():\r\n            rows[0][semanticSort] = {'id': data['id'], 'level': data['level'], 'BT': data['BT'], 'text': ''}\r\n\r\n    maxBoughLvl = 1\r\n    for n, data in boughs.items():\r\n        for bough in data:\r\n            level = int(bough['level'])\r\n            if level &gt; maxBoughLvl:\r\n                maxBoughLvl = level\r\n\r\n    bough_rows = {}\r\n    for n in rows.keys():\r\n        bough_rows[n] = {}\r\n        m = 0\r\n        for bough in boughs[n]:\r\n            level = int(bough['level'])\r\n            id = bough['id']\r\n            if 'ibg-00' == id:\r\n                BT = 'INVOICE'\r\n            else:\r\n                semSort = pintSemSort[id]\r\n                data = pintDict[semSort]\r\n                BT = data['BT']\r\n            count = str(bough['count'])\r\n            bough_rows[n]['000'+str(3*level)] = id\r\n            bough_rows[n]['000'+str(1 + 3*level)] = BT\r\n            bough_rows[n]['000'+str(2 + 3*level)] = count\r\n            m += 1\r\n        for i in range(maxBoughLvl - m):\r\n            bough_rows[n]['000'+str(3*(m + i))] = ''\r\n            bough_rows[n]['000'+str(1 + 3*(m + i))] = ''\r\n            bough_rows[n]['000'+str(2 + 3*(m + i))] = ''\r\n        # if DEBUG: print(f'{getframeinfo(currentframe()).lineno:03d}: n={n:02d} bough_rows[{n}] {bough_rows[n]}')\r\n\r\n    for n, row in rows.items():\r\n        for semSort, data in row.items():\r\n            if int(semSort) &lt; 1000:\r\n                continue\r\n            bough_rows[n][semSort] = data\r\n\r\n    max_col = len(bough_rows)\r\n    transposed = {}\r\n    lookup = {}\r\n    index = 0\r\n    for col, row in bough_rows.items():\r\n        for semSort, data in row.items():\r\n            if not semSort in transposed:\r\n                transposed[semSort] = {}\r\n                if semSort in pintDict:\r\n                    d = pintDict[semSort]\r\n                    transposed[semSort][0] = d['id']\r\n                    transposed[semSort][1] = d['level']\r\n                    transposed[semSort][2] = d['card']\r\n                    transposed[semSort][3] = d['BT']\r\n                else:\r\n                    transposed[semSort][0] = ''\r\n                    transposed[semSort][1] = ''\r\n                    transposed[semSort][2] = ''\r\n                    transposed[semSort][3] = ''\r\n            if int(semSort) &lt; 1000:  # when'0000'==semSort or '0001'==semSort:\r\n                transposed[semSort][4+col] = data\r\n            elif data['text']:\r\n                transposed[semSort][4+col] = data['text']\r\n\r\n    od_transposed = collections.OrderedDict(sorted(transposed.items()))\r\n\r\n    del_list = []\r\n    for semSort, data in od_transposed.items():\r\n        check = ''\r\n        for k, v in data.items():\r\n            if k &gt; 3:\r\n                check += v\r\n        if not check and not re.match(r'^ibg-', data[0]):\r\n            del_list.append(semSort)\r\n\r\n    for semSort in del_list:\r\n        del transposed[semSort]\r\n\r\n    max_col += 4\r\n    lst = []\r\n    i = 0\r\n    for row in od_transposed:\r\n        lst.append(['']*max_col)\r\n    i = 0\r\n    for semSort, data in od_transposed.items():\r\n        for j in range(max_col):\r\n            if j in od_transposed[semSort]:\r\n                lst[i][j] = od_transposed[semSort][j]\r\n        i += 1\r\n\r\n    with open(csv_file, 'w', encoding='utf-16') as f:\r\n        writer = csv.writer(f)  # ,delimiter='\\t')\r\n        n = 0\r\n        for l in lst:\r\n            if n &lt; 3:\r\n                n += 1\r\n                continue\r\n            writer.writerow(l)\r\n\r\n    #\r\n    # xBRL-CSV\r\n    #\r\n    max_x = len(lst[0])\r\n    h = 0\r\n    while '' == lst[h][0]:\r\n        h += 1\r\n    max_h = int(h\/3)\r\n    max_y = len(lst)\r\n    num_d = 0\r\n    header = []\r\n    for x in range(4, max_x):\r\n        for h in range(max_h):\r\n            ibg_id = lst[3*h][x]\r\n            if ibg_id and not ibg_id in header:\r\n                header.append(ibg_id)\r\n                num_d += 1\r\n    for y in range(3*max_h, max_y):\r\n        ibt_id = lst[y][0]\r\n        if re.match(r'^ibt-[0-9]*(-[0-9]*)?',ibt_id) and not ibt_id in header:\r\n            header.append(ibt_id)\r\n\r\n    records = []\r\n    for x in range(4, max_x):\r\n        record = {}\r\n        for i in range(len(header)):\r\n            record[header[i]] = ''\r\n        for h in range(max_h):\r\n            ibg_id = lst[3*h][x]\r\n            if ibg_id:\r\n                if 'ibg-00'==ibg_id:\r\n                    v = invoiceNumber\r\n                else:\r\n                    v = lst[3*h + 2][x]\r\n                record[ibg_id] = v\r\n        for y in range(3*max_h, max_y):\r\n            ibt_id = lst[y][0]\r\n            v = lst[y][x]\r\n            if v:\r\n                record[ibt_id] = v\r\n        records.append(record)\r\n\r\n    lineID = ''\r\n    for record in records:\r\n        if 'ibg-23' in record and len(record['ibg-23'])&gt;0:\r\n            record['ibg-23'] = f\"{record['ibt-118']}{record['ibt-119']}\"\r\n        if ('ibg-25' in record and len(record['ibg-25']) &gt; 0) or \\\r\n                ('ibg-27' in record and len(record['ibg-27']) &gt; 0) or \\\r\n                ('ibg-28' in record and len(record['ibg-28']) &gt; 0) or \\\r\n                ('ibg-32' in record and len(record['ibg-32']) &gt; 0):\r\n            if 'ibt-126' in record and len(record['ibt-126']) &gt; 0:\r\n                lineID= record['ibt-126']\r\n        record['ibg-25'] = lineID\r\n\r\n    header = [x.replace('ibg-','G') for x in header]\r\n    with open(oim_file,'w',encoding=ncdng,newline='') as oimfile:\r\n        writer = csv.DictWriter(oimfile, fieldnames=header)\r\n        writer.writeheader()\r\n        for record in records:\r\n            data = {}\r\n            for k,v in record.items():\r\n                k = k.replace('ibg-','G')\r\n                data[k] = v\r\n            writer.writerow(data)\r\n\r\n    if VERBOSE:\r\n        print(f'-- xBRL-CSV {oim_file}')\r\n\r\n    metadata = {\r\n        \"documentInfo\": {\r\n            \"documentType\": \"https:\/\/xbrl.org\/2021\/xbrl-csv\",\r\n            \"namespaces\": {\r\n                \"pint\": \"http:\/\/www.xbrl.jp\/eipa\/peppol\/0.9\",\r\n                \"ns0\": \"http:\/\/www.example.com\",\r\n                \"link\": \"http:\/\/www.xbrl.org\/2003\/linkbase\",\r\n                \"iso4217\": \"http:\/\/www.xbrl.org\/2003\/iso4217\",\r\n                \"xsi\": \"http:\/\/www.w3.org\/2001\/XMLSchema-instance\",\r\n                \"xbrli\": \"http:\/\/www.xbrl.org\/2003\/instance\",\r\n                \"xbrldi\": \"http:\/\/xbrl.org\/2006\/xbrldi\",\r\n                \"xlink\": \"http:\/\/www.w3.org\/1999\/xlink\"\r\n            },\r\n            \"taxonomy\": [\r\n                \"core.xsd\"\r\n            ],\r\n        },\r\n        \"tableTemplates\": {\r\n            \"pint\": {\r\n                \"columns\": {\r\n\r\n                },\r\n                \"dimensions\": {\r\n                    \"pint:_380\": \"$G00\",\r\n                    \"period\": \"\",\r\n                    \"entity\": \"ns0:Example co.\"\r\n                }\r\n            }\r\n        },\r\n        \"tables\": {\r\n            \"pint\": {\r\n                \"url\": \"\"\r\n            }\r\n        }\r\n    }\r\n\r\n    n = 4\r\n    for id in header:\r\n        if re.match(r'^G[0-9]*$',id) and n &lt; max_x:\r\n            ID = id\r\n            metadata['tableTemplates']['pint']['columns'][ID] = {}\r\n            if 'G00'!=id:\r\n                metadata['tableTemplates']['pint']['dimensions'][f\"pint:{ID}\"] = f\"${ID}\"\r\n        elif re.match(r'^ibt-[0-9]*',id):\r\n            d = pintMap[id]\r\n            if d['datatype'] in ['Amount', 'Unit Price Amount']:\r\n                metadata['tableTemplates']['pint']['columns'][id] = {\r\n                    'decimals': 0,\r\n                    'dimensions': {\r\n                        'concept': f'pint:{id}',\r\n                        'unit': f'iso4217:{DocumentCurrencyCode}' # TODO TaxCurrencyCode\r\n                    }\r\n                }\r\n            else:\r\n                metadata['tableTemplates']['pint']['columns'][id] = {\r\n                    'dimensions': {\r\n                        'concept': f'pint:{id}',\r\n                    }\r\n                }\r\n                \r\n    metadata['tableTemplates']['pint']['dimensions']['period'] = f'{invoiceIssueDate}T00:00:00'\r\n    metadata['tables']['pint']['url'] = os.path.basename(oim_file)\r\n\r\n    with open(metadata_file, 'w') as metadatafile:\r\n        json.dump(metadata, metadatafile, indent=4)\r\n\r\n    if VERBOSE:\r\n        print(f'-- metadata {metadata_file}')\r\n    \r\n    print('** END')<\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sect1 data-line-264\">\n<h2 id=\"_\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9xml\u6587\u66f8\u304b\u3089tidy_data\u5f62\u5f0f\u306ecsv\u3092\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0_2\">\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30dc\u30a4\u30b9XML\u6587\u66f8\u304b\u3089Tidy data\u5f62\u5f0f\u306eCSV\u3092\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph data-line-265\">\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u51e6\u7406\u306e\u6d41\u308c\u306f\u3001\u6b21\u306e\u9806\u5e8f\u3067\u3059\u3002<br \/>\n                    1. JP PINT 0.9.3\u306e\u5b9a\u7fa9\u8868(Excel)\u304b\u3089PINT\u5909\u63db\u8f9e\u66f8\u30c7\u30fc\u30bf\u3092\u4f5c\u6210\u3057\u3066\u304a\u304f\u3002<br \/>\n                    2. xBRL-GD\u5b9a\u7fa9\u306eCSV\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f\u3001PINT\u5909\u63db\u8f9e\u66f8\u30c7\u30fc\u30bf\u306eSyntax\u30bd\u30fc\u30c8\u9806\u306b\u8f9e\u66f8\u30c7\u30fc\u30bf\u306b\u5c55\u958b\u3059\u308b\u3002<br \/>\n                    3. Syntax\u30bd\u30fc\u30c8\u9806\u8f9e\u66f8\u30c7\u30fc\u30bf\u5c55\u958b\u3057\u305fCSV\u30ec\u30b3\u30fc\u30c9\u304b\u3089PINT\u5909\u63db\u8f9e\u66f8\u30c7\u30fc\u30bf\u306b\u9805\u76ee\u3054\u3068\u306b\u5b9a\u7fa9\u3055\u308c\u305fXPath\u3092\u4f7f\u3063\u3066Element<br \/>\n                    Tree\u306e\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u8a72\u5f53\u30c7\u30fc\u30bf\u306e\u5024\u3092XML\u6587\u66f8\u306b\u8a2d\u5b9a\u3059\u308b\u3002<br \/>\n                    4. Element Tree\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066XML\u6587\u66f8\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b\u3002<\/p>\n<\/p><\/div>\n<div class=\"listingblock data-line-0\">\n<div class=\"title\">oim2invoice.py<\/div>\n<div class=\"content\">\n<pre class=\"highlight height-set:true decode:true\"><code class=\"language-python\" data-lang=\"python\">#!\/usr\/bin\/env python3\r\n#coding: utf-8\r\n#\r\n# generate Open Peoopl e-Invoice (UBL 2.1) from xBRL-CSV file\r\n#\r\n# designed by SAMBUICHI, Nobuyuki (Sambuichi Professional Engineers Office)\r\n# written by SAMBUICHI, Nobuyuki (Sambuichi Professional Engineers Office)\r\n#\r\n# MIT License\r\n#\r\n# Copyright (c) 2021 SAMBUICHI Nobuyuki (Sambuichi Professional Engineers Office)\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a copy\r\n# of this software and associated documentation files (the \"Software\"), to deal\r\n# in the Software without restriction, including without limitation the rights\r\n# to use, copy, modify, merge, publish, distribute, sublicense, and\/or sell\r\n# copies of the Software, and to permit persons to whom the Software is\r\n# furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included in all\r\n# copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n# SOFTWARE.\r\nimport xml.etree.ElementTree as ET\r\nfrom collections import defaultdict\r\nimport csv\r\nimport re\r\nimport sys\r\nimport os\r\nimport argparse\r\n\r\nfrom dic2etree import *\r\n\r\nET.register_namespace('', ns[''])\r\nET.register_namespace('xsd', ns['xsd'])\r\nET.register_namespace('xsi', ns['xsi'])\r\nET.register_namespace('cac', ns['cac'])\r\nET.register_namespace('cbc', ns['cbc'])\r\nET.register_namespace('qdt', ns['qdt'])\r\nET.register_namespace('udt', ns['udt'])\r\nET.register_namespace('ccts', ns['ccts'])\r\n# if use ubl: namespace prefix\r\n# ET.register_namespace('ubl', ns['ubl'])\r\n# ET.register_namespace('cn', ns['cn'])\r\n\r\nSEP = os.sep\r\n\r\nTaxAccounting = ['ibg-37', 'ibt-111', 'ibg-38', 'ibt-190', 'ibt-192', 'ibt-193', 'ibt-194', 'ibt-195']\r\nAllowances = []\r\nCharges = []\r\n\r\nallowance_exist = False\r\ncharge_exist = False\r\ndocument_allowance_count = 0\r\nline_allowance_count = 0\r\n# index_AllowanceCharge = -1\r\n# new_AllowanceCharge = False\r\n\r\ndef file_path(pathname):\r\n    if '\/' == pathname[0:1]:\r\n        return pathname\r\n    else:\r\n        dir = os.path.dirname(__file__)\r\n        new_path = os.path.join(dir, pathname)\r\n        return new_path\r\n\r\ndef set_path_value(base, path, value, datatype):\r\n    global CurrencyCode\r\n    if DEBUG:\r\n        base_tag = re.sub(r'{.*}', '', str(base.tag))\r\n        print(f'{base_tag} - {\"\/\".join(path)}  {value}')\r\n    if len(path) &gt; 1 and path[1].isdigit():\r\n        n = int(path[1])\r\n        path = path[:1] + path[2:]\r\n    else:\r\n        n = 0\r\n    elements = None\r\n    if len(path) &gt; 1 and '@' == path[1][:1]:\r\n        _attr = path[1][1:]\r\n        p = path[0].split(':')\r\n        el = ET.QName(ns[p[0]], p[1])\r\n        elements = base.findall(str(el))\r\n        if len(elements) &gt; 0:\r\n            element = elements[0]\r\n        else:\r\n            element = ET.SubElement(base, el)\r\n        element.set(_attr, value)\r\n    else:\r\n        if path[0] == 'Invoice':\r\n            p = path[1].split(':')\r\n        else:\r\n            p = path[0].split(':')\r\n        if not p[0] in ns:\r\n            print(p)\r\n            return\r\n        elif 2 == len(p):\r\n            el = ET.QName(ns[p[0]], p[1])\r\n            elements = base.findall(str(el))\r\n        else:\r\n            return\r\n        if elements and len(elements) &gt; 0:\r\n            if len(elements) &gt; n:\r\n                element = elements[n]\r\n            else:\r\n                element = ET.SubElement(base, el)\r\n            if 'cbc' == p[0]:\r\n                element.text = value\r\n            else:\r\n                _path = path[1:]\r\n                set_path_value(element, _path, value, datatype)\r\n        else:\r\n            element = ET.SubElement(base, el)\r\n            if 'cbc' == p[0]:\r\n                element.text = value\r\n                if 'Amount' == datatype or 'Unit Price Amount' == datatype:\r\n                    element.set('currencyID', CurrencyCode)\r\n                elif 'PartyTaxScheme' == str(base.tag)[-14:] and 'CompanyID' == p[1]:\r\n                    el1 = ET.QName(ns['cac'], 'TaxScheme')\r\n                    element1 = ET.SubElement(base, el1)\r\n                    el2 = ET.QName(ns['cbc'], 'ID')\r\n                    element2 = ET.SubElement(element1, el2)\r\n                    element2.text = 'VAT'\r\n                elif 'TaxCategory' == str(base.tag)[-11:] and 'Percent' == p[1]:\r\n                    el1 = ET.QName(ns['cac'], 'TaxScheme')\r\n                    element1 = ET.SubElement(base, el1)\r\n                    el2 = ET.QName(ns['cbc'], 'ID')\r\n                    element2 = ET.SubElement(element1, el2)\r\n                    element2.text = 'VAT'\r\n            else:\r\n                _path = path[1:]\r\n                set_path_value(element, _path, value, datatype)\r\n\r\ndef set_record(record):\r\n    global root\r\n    global sorted_header\r\n    global CurrencyCode\r\n    global allowance_exist\r\n    global charge_exist\r\n    global document_allowance_count\r\n    global line_allowance_count\r\n    # global new_AllowanceCharge\r\n    # global index_AllowanceCharge\r\n    i = 0\r\n    head = []\r\n    seq1 = '0'\r\n    seq2 = '0'\r\n    head1_pathList = None\r\n    head2_pathList = None\r\n    base_path = None\r\n    while re.match(r'^G[0-9]*$',header[i]):\r\n        if record[i]:\r\n            data = {'id':'ibg-'+header[i][1:], 'value':record[i]}\r\n            head.append(data)\r\n        i += 1\r\n    head0_id = head[0]['id']\r\n    if len(head) &gt; 0:\r\n        if head0_id and head0_id in pintDict and 'xpath' in pintDict[head0_id]:\r\n            head0_xpath = pintDict[head0_id]['xpath']\r\n            if re.match(r'^(.*)\\[.*\\](.*)$', head0_xpath):\r\n                head0_xpath = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', head0_xpath)\r\n            head0_pathList = head0_xpath[1:].split('\/')[1:]\r\n            if 'ibt' == head0_id[:3]:\r\n                head0_pathList = head0_pathList[-1:]\r\n                base0_path = head0_pathList[:-1]\r\n            elif len(head0_pathList) &gt; 0:\r\n                head0_pathList = []\r\n                base0_path = head0_pathList\r\n        if len(head0_xpath[1:].split('\/')) &gt; 1:\r\n            base = '\/'+'\/'.join(base0_path[:-1])  # head_xpath\r\n        else:\r\n            base = ''\r\n            base_path = []\r\n    if len(head) &gt; 1:\r\n        head1_id = head[1]['id']\r\n        seq1 = head[1]['value']\r\n        if head1_id and head1_id in pintDict and 'xpath' in pintDict[head1_id]:\r\n            head1_xpath = pintDict[head1_id]['xpath']\r\n            if re.match(r'^(.*)\\[.*\\](.*)$', head1_xpath):\r\n                head1_xpath = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', head1_xpath)\r\n            head1_xpath = head1_xpath.replace(head0_xpath,'')\r\n            head1_pathList = head1_xpath[1:].split('\/')\r\n            if 'ibt' == head1_id[:3]:\r\n                head1_pathList = head1_pathList[:-1] + [seq1] + head1_pathList[-1:]\r\n                base_path = head1_pathList[:-1]\r\n            elif len(head1_pathList) &gt; 0:\r\n                head1_pathList = head1_pathList + [seq1]\r\n                base_path = head1_pathList\r\n    if len(head) &gt; 2:\r\n        head2_id = head[2]['id']\r\n        seq2 = head[2]['value']\r\n        if head2_id and head2_id in pintDict and 'xpath' in pintDict[head2_id]:\r\n            head2_xpath = pintDict[head2_id]['xpath']\r\n            if re.match(r'^(.*)\\[.*\\](.*)$', head2_xpath):\r\n                head2_xpath = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', head2_xpath)\r\n            head2_xpath = head2_xpath.replace(head0_xpath,'')\r\n            head2_pathList = head2_xpath[1:].split('\/')\r\n            if 'ibt' == head2_id[:3]:\r\n                head2_pathList = head1_pathList[:-1] + [seq1] + head2_pathList[:-1] + [seq2] + head2_pathList[-1:]\r\n                base_path = head2_pathList[:-1]\r\n            elif len(head2_pathList) &gt; 0:\r\n                head2_pathList = head1_pathList + [seq1] + head2_pathList + [seq2]\r\n                base_path = head1_pathList\r\n    # traverse field in a record\r\n    for n in range(len(record)): \r\n        cell = record[n]\r\n        h = sorted_header[n]\r\n        if re.match(r'^G[0-9]*$',h):\r\n            continue\r\n        if len(cell) &gt; 0:\r\n            id = sorted_header[n]\r\n            if not id in pintDict:\r\n                continue\r\n            if 'ibt-126' == id: # Invoice line identifier\r\n                allowance_exist = False\r\n                charge_exist = False\r\n                line_allowance_count = 0\r\n                # index_AllowanceCharge = -1\r\n                # new_AllowanceCharge = False\r\n                # if DEBUG:\r\n                #     print(f'- id:{id} index_AllowanceCharge:{index_AllowanceCharge} allowance_exist:{allowance_exist}')\r\n            data = pintDict[id]\r\n            datatype = data['datatype']\r\n            xpath = data['xpath']\r\n            xpath_ = None\r\n            # remove [...] from xpath\r\n            if re.match(r'^(.*)\\[.*\\](.*)$', xpath):\r\n                xpath_ = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', xpath)\r\n                pathList = xpath_[1:].split('\/')\r\n            else:\r\n                pathList = xpath[1:].split('\/')\r\n            if \"[cbc:DocumentTypeCode='130']\" in xpath:\r\n                xpath = xpath.replace(\"[cbc:DocumentTypeCode='130']\", '')\r\n                if 'cac:InvoiceLine' in pathList:\r\n                    idxT188 = sorted_header.index('ibt-188')\r\n                    index = 1 + pathList.index('cac:DocumentReference')\r\n                    if record[idxT188]: # 1bt-188 and ibt-128,ibt-128-1 are cac:DocumentReference\/cbc:ID\r\n                        pathList = pathList[:2] + [seq1] + pathList[2:index] + ['1'] + pathList[index:]\r\n                    else:\r\n                        pathList = pathList[:2] + [seq1] + pathList[2:index] + ['0'] + pathList[index:]\r\n                path = pathList[1:]\r\n                CurrencyCode = DocumentCurrencyCode\r\n                set_path_value(root, path, cell, datatype)\r\n                if not '@schemeID' in pathList:\r\n                    path = pathList[:-1] + ['cbc:DocumentTypeCode']\r\n                    path = path[1:]\r\n                    CurrencyCode = DocumentCurrencyCode\r\n                    set_path_value(root, path, '130', datatype)\r\n            elif \"[not(cbc:DocumentTypeCode='130')]\" in xpath:\r\n                if 'cac:AdditionalDocumentReference' in xpath:\r\n                    pathList = pathList[:2] + [seq1] + pathList[2:]\r\n                    path = pathList\r\n                elif 'cac:InvoiceLine' in xpath:\r\n                    pathList = pathList[:2] + [seq1] + pathList[2:]\r\n                    path = pathList\r\n                else:\r\n                    path = pathList\r\n                path = path[1:]\r\n                CurrencyCode = DocumentCurrencyCode\r\n                set_path_value(root, path, cell, datatype)\r\n            elif '\/Invoice\/cac:TaxTotal' in xpath:\r\n                if 'DocumentCurrencyCode' in xpath:\r\n                    _xpath = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', xpath)\r\n                    path = _xpath[1:].split('\/')\r\n                    if 'cac:TaxSubtotal' in path:\r\n                        path = ['cac:TaxTotal', '0', 'cac:TaxSubtotal'] + [seq1] + path[3:]\r\n                        CurrencyCode = DocumentCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n                    else:\r\n                        path = ['cac:TaxTotal', '0'] + path[2:]\r\n                        CurrencyCode = DocumentCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n                elif 'TaxCurrencyCode' in xpath:\r\n                    _xpath = re.sub(r'^(.*)\\[.*\\](.*)$', r'\\1\\2', xpath)\r\n                    path = _xpath[1:].split('\/')\r\n                    if 'cac:TaxSubtotal' in path:\r\n                        path = ['cac:TaxTotal', '1', 'cac:TaxSubtotal'] + [str(seq1)] + path[3:]\r\n                        CurrencyCode = TaxCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n                    else:\r\n                        path = ['cac:TaxTotal', '1'] + path[2:]\r\n                        CurrencyCode = TaxCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n                else:\r\n                    if 'cac:TaxTotal' in Dic['Invoice'] and isinstance(Dic['Invoice']['cac:TaxTotal'], list):\r\n                        if 'ibt-117-1' in header:\r\n                            if DocumentCurrencyCode == record[header.index('ibt-117-1')]:\r\n                                loc = '0'\r\n                            else:\r\n                                loc = '1'\r\n                        else:\r\n                            loc = '0'\r\n                        pathList = xpath[1:].split('\/')\r\n                        path = pathList[:2] + [loc] + pathList[2:]\r\n                        path = path[:4] + [seq1] + path[4:]\r\n                        path = path[1:]\r\n                        CurrencyCode = DocumentCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n                    else:\r\n                        pathList = re.sub(base, '', xpath)[1:].split('\/')\r\n                        path = base_path + pathList\r\n                        path = path[1:]\r\n                        CurrencyCode = DocumentCurrencyCode\r\n                        set_path_value(root, path, cell, datatype)\r\n            elif 'ChargeIndicator=' in xpath:\r\n                _xpath = xpath[9:]\r\n                # remove [] condition from xpath\r\n                allowanceCharge = re.sub(r'(.*)\\[cbc:ChargeIndicator=(true|false)\\(\\)\\](.*)', r'\\1', _xpath)\r\n                chargeIndicator = re.sub(r'.*\\[cbc:ChargeIndicator=(true|false)\\(\\)\\](.*)', r'\\1', _xpath)\r\n                pathList = allowanceCharge.split('\/')\r\n                if 'cac:InvoiceLine' in _xpath:\r\n                    if len(pathList) &gt; 1:\r\n                        pathList = pathList[:1] + [seq1] + pathList[1:]\r\n                    else:\r\n                        pathList = pathList + [seq1]\r\n                if 'cac:Price' in pathList:\r\n                    path = pathList\r\n                    path.append('cbc:ChargeIndicator')\r\n                    set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    path = re.sub(r'(.*)\\[cbc:ChargeIndicator=false\\(\\)\\](.*)', r'\\1\\2', xpath)[1:].split('\/')\r\n                    path = path[:2] + [seq1] + path[2:]\r\n                    path = path[1:]\r\n                    CurrencyCode = DocumentCurrencyCode\r\n                    set_path_value(root, path, cell, datatype)\r\n                else:\r\n                    # if 'ibt-146'==id:\r\n                    if id in [v['id'] for k, v in semDict.items() if 'ibg-29' == v['parent']]:  # PRICE DETAILS\r\n                        path = pathList + ['0']\r\n                        path.append('cbc:ChargeIndicator')\r\n                        set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    elif id in [v['id'] for k, v in semDict.items() if 'ibg-20' == v['parent']] and not allowance_exist:\r\n                        # children of DOCUMENT LEVEL ALLOWANCES\r\n                        allowance_exist = True\r\n                        document_allowance_count += 1\r\n                        path = pathList + [seq1]\r\n                        path.append('cbc:ChargeIndicator')\r\n                        set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    elif id in [v['id'] for k, v in semDict.items() if 'ibg-21' == v['parent']] and not charge_exist:\r\n                        # children of DOCUMENT LEVEL CHARGES\r\n                        charge_exist = True\r\n                        seq1 = str(document_allowance_count + int(seq1))\r\n                        path = pathList + [seq1]\r\n                        path.append('cbc:ChargeIndicator')\r\n                        set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    elif id in [v['id'] for k, v in semDict.items() if 'ibg-27' == v['parent']] and not allowance_exist:\r\n                        # children of INVOICE LINE ALLOWANCES\r\n                        allowance_exist = True\r\n                        line_allowance_count += 1\r\n                        path = pathList + [seq2]\r\n                        path.append('cbc:ChargeIndicator')\r\n                        set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    elif id in [v['id'] for k, v in semDict.items() if 'ibg-28' == v['parent']] and not charge_exist:\r\n                        # children of INVOICE LINE CHARGES\r\n                        charge_exist = True\r\n                        seq2 = str(line_allowance_count + int(seq2))\r\n                        path = pathList + [seq2]\r\n                        path.append('cbc:ChargeIndicator')\r\n                        set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    # seq_ = str(index_AllowanceCharge)\r\n                    # if new_AllowanceCharge:\r\n                    #     path = pathList + [seq_]\r\n                    #     path.append('cbc:ChargeIndicator')\r\n                    #     if 'Invoice' == path[0]:\r\n                    #         path = path[1:]\r\n                    #     set_path_value(root, path, chargeIndicator, 'Indicator')\r\n                    #     new_AllowanceCharge = False\r\n                    xpath = re.sub(r'(.*)\\[cbc:ChargeIndicator=(true|false)\\(\\)\\](.*)', r'\\1\\3', xpath)\r\n                    pathList = xpath[1:].split('\/')\r\n                    if 'cac:InvoiceLine' in pathList:\r\n                        path = pathList[:2] + [seq1] + pathList[2:3] + [seq2] + pathList[3:]\r\n                    else:\r\n                        path = pathList[:2] + [seq1] + pathList[2:]\r\n                    path = path[1:]\r\n                    CurrencyCode = DocumentCurrencyCode\r\n                    set_path_value(root, path, cell, datatype)\r\n            else:\r\n                if 'cac:InvoiceLine' in pathList:\r\n                    if 'cac:AdditionalItemProperty' in pathList:\r\n                        pathList = pathList[:2] + [seq1] + pathList[2:4] + [seq2 or '0'] + pathList[4:]\r\n                    else:\r\n                        pathList = pathList[:2] + [seq1] + pathList[2:]\r\n                    if 'cac:DespatchLineReference' in pathList:\r\n                        path_ = pathList[1:4] + ['cbc:LineID']\r\n                        set_path_value(root, path_, '0000', 'Identifier')\r\n                path = pathList[1:]\r\n                CurrencyCode = DocumentCurrencyCode\r\n                set_path_value(root, path, cell, datatype)\r\n                if 'ibt-087' == id: \r\n                    # UBL requires cbc:NetworkID when cbc:PrimaryAccountNumberIDPayment card primary account number (4 to 6 digits) is used.\r\n                    path[-1] = 'cbc:NetworkID'\r\n                    set_path_value(root, path, 'NA', datatype)\r\n                \r\n            \r\n\r\ndef writeET(root,out_file):\r\n    element = ET.ElementTree(root)\r\n    ET.indent(element,space='\\t')\r\n    element.write(out_file, xml_declaration=True, encoding='utf-8')\r\n\r\nif __name__ == '__main__':\r\n    # Create the parser\r\n    parser = argparse.ArgumentParser(prog='csv2invoice',\r\n                                     usage='%(prog)s [options] infile -o outfile',\r\n                                     description='OIM-CSV\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u96fb\u5b50\u30a4\u30f3\u30dc\u30a4\u30b9XML\u3092\u4f5c\u6210')\r\n    # Add the arguments\r\n    parser.add_argument('inFile', metavar='infile', type=str, help='\u5165\u529bOIM-CSV\u30d5\u30a1\u30a4\u30eb')\r\n    parser.add_argument('-s', '--source')\r\n    parser.add_argument('-o', '--out')\r\n    parser.add_argument('-e', '--encoding')  # e.g. utf-16 Shift_JIS cp932\r\n    parser.add_argument('-t', '--transpose', action='store_true')\r\n    parser.add_argument('-v', '--verbose', action='store_true')\r\n    parser.add_argument('-d', '--debug', action='store_true')\r\n\r\n    args = parser.parse_args()\r\n    in_file = None\r\n    if args.inFile:\r\n        in_file = args.inFile\r\n        in_file = in_file.replace('\/', SEP)\r\n        in_file = file_path(in_file)\r\n    # Check if infile exists\r\n    if not in_file or not os.path.isfile(in_file):\r\n        print('\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093')\r\n        sys.exit()\r\n    pre, ext = os.path.splitext(in_file)\r\n    pint_file = None\r\n    if args.source:\r\n        pint_file = args.source.lstrip()\r\n        pint_file = pint_file.replace('\/', SEP)\r\n        pint_file = file_path(pint_file)\r\n    # Check if PINT exists\r\n    if not pint_file or not os.path.isfile(pint_file):\r\n        print('PINT\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093')\r\n        sys.exit()\r\n    if args.out:\r\n        out_file = args.out.lstrip()\r\n        out_file = file_path(out_file)\r\n    else:\r\n        out_file = pre+'.xml'\r\n    # tmp_file = pre+'.txt'\r\n    ncdng = args.encoding.lstrip()\r\n    if not ncdng:\r\n        ncdng = 'UTF-8'\r\n    TRANSPOSE = args.verbose\r\n    VERBOSE = args.verbose\r\n    DEBUG = args.debug\r\n\r\n    if VERBOSE:\r\n        print('** START ** ', __file__)\r\n\r\n    # initialize globals\r\n    pintDict = {}\r\n    semDict = {}\r\n    syntaxDict = {}\r\n    header_id = None\r\n    header_count = 0\r\n    DocumentCurrencyCode = None\r\n    TaxCurrencyCode = None\r\n    CurrencyCode = None\r\n    Dic = defaultdict(type(''))\r\n    Dic['Invoice'] = {}\r\n    sortedDic = defaultdict(type(''))\r\n    sortedDic['Invoice'] = {}\r\n    pintDict = defaultdict(type(''))\r\n    pintL1 = []\r\n    multipleBG = []\r\n    # SemSort,ID,Section,PINTCard,Aligned,AlignedCard,Level,BT,BT_ja,DT,Desc,Desc_ja,Explanation,Explanation2,Example,SyntSort,element,UBLdatatype,SyntaxBinding,selectors,XPath,SyntaxCard,UBLOccurrence,SharedRule,AlignedRule\r\n    # 0       1  2       3        4       5           6     7  8     9  10   11      12          13           14      15       16      17          18            19        20    21         22\r\n    COL_SemanticSort = 0\r\n    COL_ID = 1\r\n    COL_card = 5\r\n    COL_level = 6\r\n    COL_BT = 7\r\n    COL_datatype = 9\r\n    COL_syntSort = 15\r\n    COL_xpath = 20\r\n    if VERBOSE:\r\n        print(f'*** XPath file {pint_file}')\r\n    with open(pint_file, encoding='utf-8', newline='') as f0:\r\n        reader = csv.reader(f0)  # , delimiter='\\t')\r\n        header = next(reader)\r\n        for v in reader:\r\n            id = v[COL_ID].strip()\r\n            if id:\r\n                semSort = v[COL_SemanticSort]\r\n                xpath = v[COL_xpath]\r\n                xpath = xpath.replace('\/ubl:','\/')\r\n                syntSort = v[COL_syntSort]\r\n                if not syntSort:\r\n                    syntSort = '9999'\r\n                if not xpath:\r\n                    continue\r\n                if len(v) &gt; COL_xpath and '\/' in xpath:\r\n                    if v[COL_BT]:\r\n                        BT = v[COL_BT]\r\n                    else:\r\n                        BT = None\r\n                    level = v[COL_level]\r\n                    if level:\r\n                        level = 1+int(level)\r\n                        level = str(level)\r\n                    else:\r\n                        level = '0'\r\n                    card = ''+v[COL_card].strip()\r\n                    datatype = ''+v[COL_datatype].strip()\r\n                    data = {'syntSort': syntSort, 'id': id, 'level': level, 'BT': BT, 'card': card, 'datatype': datatype, 'xpath': xpath}\r\n                    pintDict[id] = data\r\n                    semDict[semSort] = {'id': id, 'level': int(level)}\r\n\r\n    sorted_semDict = sorted(semDict.items(), key=lambda x: x[0])\r\n\r\n    level = 0\r\n    parent = ['ibg-00']\r\n    for k, v in dict(sorted_semDict).items():\r\n        if v['level'] == level:\r\n            semDict[k]['parent'] = parent[level-1]\r\n            parent[level] = v['id']\r\n        elif v['level'] == level+1:\r\n            semDict[k]['parent'] = parent[level]\r\n            level = v['level']\r\n            if level == len(parent):\r\n                parent.append(None)\r\n            parent[level] = v['id']\r\n        else:\r\n            level = v['level']\r\n            semDict[k]['parent'] = parent[level-1]\r\n            parent[level] = v['id']\r\n            for i in range(len(parent)):\r\n                if i &gt; level:\r\n                    parent[i] = None\r\n\r\n    if VERBOSE:\r\n        print(f'*** Input file {in_file}')\r\n    with open(in_file, encoding=ncdng, newline='') as f:\r\n        reader = csv.reader(f)  # , delimiter='\\t')\r\n        rows = []\r\n        count = 0\r\n        for record in reader:\r\n            if 0 == count:\r\n                header = []\r\n                for field in record:\r\n                    header.append(field)\r\n            elif 1==count:\r\n                for n in range(0,len(record)):\r\n                    id = header[n]\r\n                    data = pintDict[id]\r\n                    if 'ibt-005' == id:\r\n                        DocumentCurrencyCode = record[n]\r\n                    elif 'ibt-006' == id:\r\n                        TaxCurrencyCode = record[n]\r\n            count += 1\r\n            rows.append(record)\r\n\r\n    # change to occurence sequence\r\n    idxG00 = header.index('G00')\r\n    idxG23 = header.index('G23')\r\n    idxG25 = header.index('G25')\r\n    currentG00 = ''\r\n    currentG23 = ''\r\n    currentG25 = ''\r\n    countG00 = 0\r\n    countG23 = 0\r\n    countG25 = 0\r\n    for i in range(1,len(rows)):\r\n        row = rows[i]\r\n        # G00\r\n        if not currentG00:\r\n            if len(row[idxG00]) &gt; 0:\r\n                currentG00 = row[idxG00]\r\n                countG00 = 0\r\n        else:\r\n            if len(row[idxG00]) &gt; 0 and currentG00 != row[idxG00]:\r\n                currentG00 = row[idxG00]\r\n                countG00 += 1\r\n        if row[idxG00]:\r\n            row[idxG00] = str(countG00)\r\n        # G23\r\n        if not currentG23:\r\n            if len(row[idxG23]) &gt; 0:\r\n                currentG23 = row[idxG23]\r\n                countG23 = 0\r\n        else:\r\n            if len(row[idxG23]) &gt; 0 and currentG23 != row[idxG23]:\r\n                currentG23 = row[idxG23]\r\n                countG23 += 1\r\n        if row[idxG23]:\r\n            row[idxG23] = str(countG23)\r\n        # G25\r\n        if not currentG25:\r\n            if len(row[idxG25]) &gt; 0:\r\n                currentG25 = row[idxG25]\r\n                countG25 = 0\r\n        else:\r\n            if len(row[idxG25]) &gt; 0 and currentG25 != row[idxG25]:\r\n                currentG25 = row[idxG25]\r\n                countG25 += 1\r\n        if row[idxG25]:\r\n            row[idxG25] = str(countG25)\r\n        rows[i] = row\r\n\r\n    if 'ibt-018' in header:\r\n        index = rows[0].index('G24')\r\n        for row in rows:\r\n            if row[index] and 'G24'!=row[index]:\r\n                g24 = row[index]\r\n                row[index] = str(1 + int(g24))\r\n\r\n    # sort order by stntax sort\r\n    header = rows[0]\r\n    dim_n = 0\r\n    while re.match(r'^G[0-9]*$',header[dim_n]):\r\n        dim_n += 1\r\n        \r\n    dim_header = []\r\n    for n in range(dim_n):\r\n        dim_header.append({'id':header[n],'num':n})\r\n    sorted_dimHeader = sorted(dim_header, key=lambda x: pintDict[f\"ibg-{x['id'][-2:]}\"]['syntSort'])\r\n\r\n    element_header = []\r\n    for n in range(dim_n,len(header)):\r\n        element_header.append({'id':header[n],'num':n})\r\n    sorted_elementHeader = sorted(element_header, key=lambda x: pintDict[x['id']]['syntSort'])\r\n\r\n    sorted_header = []\r\n    for d in sorted_dimHeader:\r\n        sorted_header.append(d['id'])\r\n    for d in sorted_elementHeader:\r\n        sorted_header.append(d['id'])\r\n\r\n    sorted_rows = []\r\n    sorted_rows.append(sorted_header)\r\n\r\n    for j in range(1,len(rows)):\r\n        row = rows[j]\r\n        sorted_row = ['']*len(row)\r\n        for k in range(dim_n):\r\n            num = sorted_dimHeader[k]['num']\r\n            sorted_row[k] = row[num]\r\n        for k in range(dim_n,len(row)):\r\n            num = sorted_elementHeader[k - dim_n]['num']\r\n            sorted_row[k] = row[num]\r\n        sorted_rows.append(sorted_row)\r\n\r\n    idxG24 = None\r\n    idxG25 = None\r\n    idxG27 = None\r\n    idxG28 = None\r\n    idxG32 = None\r\n    if 'G24' in sorted_rows[0]:\r\n        idxG24 = sorted_rows[0].index('G24')\r\n    if 'G25' in sorted_rows[0]:\r\n        idxG25 = sorted_rows[0].index('G25')\r\n    if 'G27' in sorted_rows[0]:\r\n        idxG27 = sorted_rows[0].index('G27')\r\n    if 'G28' in sorted_rows[0]:\r\n        idxG28 = sorted_rows[0].index('G28')\r\n    if 'G32' in sorted_rows[0]:\r\n        idxG32 = sorted_rows[0].index('G32')\r\n\r\n    dimsDocument = [\r\n        {'id':'G03', 'BT':'PRECEDING INVOICE REFERENCE'},\r\n        {'id':'G24', 'BT':'ADDITIONAL SUPPORTING DOCUMENTS'},\r\n        {'id':'G16', 'BT':'PAYMENT INSTRUCTIONS'},\r\n        {'id':'G33', 'BT':'INVOICE TERMS'},\r\n        {'id':'G35', 'BT':'Paid amounts'},\r\n        {'id':'G20', 'BT':'DOCUMENT LEVEL ALLOWANCES'},\r\n        {'id':'G21', 'BT':'DOCUMENT LEVEL CHARGES'},\r\n        {'id':'G23', 'BT':'TAX BREAKDOWN'},\r\n        {'id':'G38', 'BT':'TAX BREAKDOWN IN ACCOUNTING CURRENCY'}]\r\n    dimsLine = [\r\n        {'id':'G25', 'BT':'INVOICE LINE'},\r\n        {'id':'G27', 'BT':'INVOICE LINE ALLOWANCES'},\r\n        {'id':'G28', 'BT':'INVOICE LINE CHARGES'},\r\n        {'id':'G30', 'BT':'LINE TAX INFORMATION'},\r\n    ]\r\n\r\n    leading_ibt = ['ibt-024','ibt-023','ibt-001','ibt-002','ibt-168','ibt-009','ibt-003','ibt-022','ibt-007','ibt-005','ibt-006','ibt-019','ibt-010','ibg-14','ibt-073','ibt-074','ibt-008','ibt-013','ibt-014','ibg-03','ibt-025','ibt-026','ibt-016','ibt-015','ibt-017','ibt-012','ibt-018','ibt-018-1']\r\n    item_ibt = ['ibt-154','ibt-153','ibt-156','ibt-155','ibt-157','ibt-157-1','ibt-159','ibt-158','ibt-158-1','ibt-158-2','ibt-151','ibt-152','ibt-166','ibt-167','ibt-160','ibt-161']\r\n    price_ibt = ['ibt-146','ibt-149','ibt-147','ibt-148','ibt-150']\r\n\r\n    l = len(row)\r\n    reviced_rows = []\r\n    reviced_rows.append(sorted_rows[0])\r\n    row = sorted_rows[1]\r\n    leading = [sorted_rows[0][n] in leading_ibt for n in range(l)]\r\n    trailing = [not leading[n] for n in range(l)]\r\n    leading_row = ['']*l\r\n    for n in range(l):\r\n        if n &lt; dim_n or leading[n]:\r\n            leading_row[n] = row[n]\r\n    reviced_rows.append(leading_row)\r\n    trailing_row = ['']*l\r\n    for n in range(l):\r\n        if n &lt; dim_n or trailing[n]:\r\n            trailing_row[n] = row[n]\r\n    reviced_rows.append(trailing_row)\r\n\r\n    sorted_rows2 = sorted_rows[2:]\r\n\r\n    for dim in dimsDocument:\r\n        id = dim['id']\r\n        if id in sorted_rows[0]:\r\n            index = sorted_rows[0].index(id) # id is dimension of document level\r\n            for row in sorted_rows2:\r\n                if row[index]:\r\n                    if 'G24'==id:\r\n                        last_i = len(reviced_rows)-1\r\n                        previous_row = reviced_rows[last_i]\r\n                        reviced_rows[last_i] = row\r\n                        reviced_rows.append(previous_row)\r\n                    else:\r\n                        reviced_rows.append(row)\r\n    \r\n    l = len(sorted_header)\r\n    # countG27 = 0\r\n    for i in range(len(sorted_rows2)):\r\n        row = sorted_rows2[i]\r\n        if idxG25 and row[idxG25]:\r\n            if idxG27 or idxG28:\r\n                if not((idxG27 and row[idxG27]) or (idxG28 and row[idxG28]) or (idxG32 and row[idxG32])):\r\n                    before = [not sorted_header[n] in item_ibt + price_ibt for n in range(l)]\r\n                    after = [sorted_header[n] in item_ibt + price_ibt for n in range(l)]\r\n                    row1 = ['']*l\r\n                    for n in range(l):\r\n                        if n &lt; dim_n or before[n]:\r\n                            row1[n] = row[n]\r\n                    reviced_rows.append(row1)\r\n                    row2 = ['']*l\r\n                    for n in range(l):\r\n                        if n &lt; dim_n or after[n]:\r\n                            row2[n] = row[n]\r\n                    reviced_rows.append(row2)\r\n                elif (idxG27 and row[idxG27]):\r\n                    print(row[idxG27])\r\n                    last_i = len(reviced_rows) - 1\r\n                    previous_row = reviced_rows[last_i]\r\n                    reviced_rows[last_i] = row\r\n                    reviced_rows.append(previous_row)\r\n                elif (idxG28 and row[idxG28]):\r\n                    print(row[idxG28])\r\n                    last_i = len(reviced_rows) - 1\r\n                    previous_row = reviced_rows[last_i]\r\n                    reviced_rows[last_i] = row\r\n                    reviced_rows.append(previous_row)\r\n                else:\r\n                    reviced_rows.append(row)\r\n            else:\r\n                reviced_rows.append(row)\r\n        \r\n    invoiceText = '''\r\n&lt;Invoice \\n\r\n    xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" \r\n    xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\"\r\n    xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\"\r\n    xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"\r\n\txmlns:ccts=\"urn:un:unece:uncefact:documentation:2\"\r\n\txmlns:ext=\"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2\"\r\n\txmlns:qdt=\"urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2\"\r\n\txmlns:udt=\"urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2\"\r\n\txmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\"\r\n    xsi:schemaLocation=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 http:\/\/docs.oasis-open.org\/ubl\/os-UBL-2.1\/xsd\/maindoc\/UBL-Invoice-2.1.xsd\" \/&gt; \r\n  '''\r\n    root = ET.XML(invoiceText)\r\n    set_path_value(root, ['cbc:UBLVersionID'], '2.1', 'Code')\r\n\r\n    for i in range(1, len(reviced_rows)):\r\n        record = reviced_rows[i]\r\n        if DEBUG:\r\n            elements = [f\"{reviced_rows[0][i]}:{pintDict[reviced_rows[0][i].replace('G','ibg-')]['BT']} {record[i]}\"\r\n                        for i in range(len(record)) if record[i]]\r\n            print('\\n'.join(elements))\r\n        set_record(record)\r\n\r\n    writeET(root,out_file)\r\n\r\n    if VERBOSE:\r\n        print(f'** END ** {out_file}')<\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sect1 data-line-276\">\n<h2 id=\"_init__.py\">__init__.py<\/h2>\n<div class=\"sectionbody\">\n<div class=\"listingblock data-line-280\">\n<div class=\"title\">__init__.py<\/div>\n<div class=\"content\">\n<pre class=\"highlight height-set:true decode:true\">\r\n# print(\"Load pint_ja\/generate_ubl\/dic2etree\/__init__.py\")\r\nfrom .dic2etree import dict_to_etree\r\nfrom .dic2etree import etree_to_dict\r\n\r\nns = {\r\n  '': 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\r\n  'xsd': 'http:\/\/www.w3.org\/2001\/XMLSchema',\r\n  'xsi': 'http:\/\/www.w3.org\/2001\/XMLSchema-instance',\r\n  'cac': 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',\r\n  'cbc': 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',\r\n  'qdt': 'urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2',\r\n  'udt': 'urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2',\r\n  'ccts': 'urn:un:unece:uncefact:documentation:2',\r\n  'cn': 'urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2',\r\n  'ubl': 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\r\n  'sch': 'http:\/\/purl.oclc.org\/dsdl\/schematron'\r\n}\r\n\r\n__all__ = ['dict_to_etree', 'etree_to_dict', 'ns']\r\n                    <\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"sect1 data-line-277\">\n<h2 id=\"_xml\u6587\u66f8\u3068python\u8f9e\u66f8\u30c7\u30fc\u30bf\u306e\u5909\u63db\u30d7\u30ed\u30b0\u30e9\u30e0\">XML\u6587\u66f8\u3068Python\u8f9e\u66f8\u30c7\u30fc\u30bf\u306e\u5909\u63db\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n<div class=\"sectionbody\">\n<div class=\"listingblock data-line-280\">\n<div class=\"title\">dic2etree.py<\/div>\n<div class=\"content\">\n<pre class=\"highlight height-set:true decode:true\"># print(\"Load dic2etree.py\")\r\nimport xml.etree.ElementTree as ET\r\n# import defusedxml.ElementTree as ET\r\nfrom collections import defaultdict\r\n# import csv\r\nimport pprint\r\n\r\nET.register_namespace('cac', 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2')\r\nET.register_namespace('cbc', 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2')\r\nET.register_namespace('qdt', 'urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2')\r\nET.register_namespace('udt', 'urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2')\r\nET.register_namespace('ccts', 'urn:un:unece:uncefact:documentation:2')\r\nET.register_namespace('', 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2')\r\n\r\n# https:\/\/stackoverflow.com\/questions\/7684333\/converting-xml-to-dictionary-using-elementtree\r\ndef etree_to_dict(t):\r\n  d = {t.tag: {} if t.attrib else None}\r\n  children = list(t)\r\n  if children:\r\n    dd = defaultdict(list)\r\n    for dc in map(etree_to_dict, children):\r\n      for k, v in dc.items():\r\n        dd[k].append(v)\r\n    d = {t.tag: {k: v[0] if len(v) == 1 else v\r\n      for k, v in dd.items()}}\r\n  if t.attrib:\r\n    d[t.tag].update(('@' + k, v)\r\n      for k, v in t.attrib.items())\r\n  if t.text:\r\n    text = t.text.strip()\r\n    if children or t.attrib:\r\n      if text:\r\n        d[t.tag]['#text'] = text\r\n    else:\r\n      d[t.tag] = text\r\n  return d\r\n\r\ndef dict_to_etree(d, root):\r\n  def _to_etree(d, root):\r\n    if not d:\r\n      pass\r\n    elif isinstance(d, str):\r\n      root.text = d\r\n    elif isinstance(d, dict):\r\n      for k,v in d.items():\r\n        assert isinstance(k, str)\r\n        if k.startswith('#'):\r\n          try:\r\n            assert k == '#text' and isinstance(v, str)\r\n            root.text = v\r\n          except (Exception, ValueError, TypeError) as e:\r\n            print(e, v)\r\n        elif k.startswith('@'):\r\n          if isinstance(v, str): # 2021-06-05\r\n            root.set(k[1:], v)\r\n          else:\r\n            pass\r\n        elif isinstance(v, list):\r\n          for e in v:\r\n            _to_etree(e, ET.SubElement(root, k))\r\n        else:\r\n          _to_etree(v, ET.SubElement(root, k))\r\n    else:\r\n      assert d == 'invalid type', (type(d), d)\r\n  assert isinstance(d, dict) and len(d) == 1\r\n  tag, body = next(iter(d.items()))\r\n  _to_etree(body, root)\r\n  return root<\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div>\n<h4>\u30a8\u30e9\u30fc\u7b87\u6240<\/h4>\n<p><a  href=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51.png\" data-rel=\"lightbox-gallery-0\" data-rl_title=\"Screen Shot 2022-08-29 at 16.12.51\" data-rl_caption=\"\" title=\"Screen Shot 2022-08-29 at 16.12.51\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51-1024x891.png\" alt=\"\" width=\"100%\" height=\"457\" class=\"alignnone size-large wp-image-7013\" srcset=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51-1024x891.png 1024w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51-300x261.png 300w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51-768x669.png 768w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51-1536x1337.png 1536w, https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2022\/08\/Screen-Shot-2022-08-29-at-16.12.51.png 1652w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>PINT-UBL-validation-preprocessed.sch\u3067\u30b9\u30ad\u30fc\u30de\u30c8\u30ed\u30f3\u30c1\u30a7\u30c3\u30af\u3057\u305f\u3068\u3053\u308d\u3001\u6b21\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3057\u305f\u3002<br \/>\n[ibr-co-15]-Invoice total amount with Tax (ibt-112) = Invoice total amount without Tax (ibt-109) + Invoice total Tax amount (ibt-110).<br \/>\n\u3053\u308c\u306f\u3001\u7a0e\u8fbc\u5408\u8a08\u91d1\u984d\u306e\u8a08\u7b97\u304c\u9593\u9055\u3063\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u304b\u3089\u3001\u691c\u7b97\u3057\u3066\u307f\u308b\u3068\u3002<br \/>\nibt-109 + ibt-110 = 255990 + 20000 = 275990 \u3067\u3059\u304b\u3089\u3001ibt-112\u306b\u8a18\u8f09\u3055\u308c\u305f281990\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3057\u305f\u3002<br \/>\nibt-112\u3092275990\u306b\u8a02\u6b63\u3057\u305f\u3068\u3053\u308d\u3001\u4eca\u5ea6\u306f\u3001<br \/>\n[ibr-co-16]-Amount due for payment (ibt-115) = Invoice total amount with Tax (ibt-112) &#8211; Paid amount (ibt-113) + Rounding amount (ibt-114).<br \/>\nibt-112\u3060\u3051\u3067\u306a\u304fibt-115\u3082\u540c\u69d8\u306e\u8a02\u6b63\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002<br \/>\n\u4eca\u5ea6\u306f\u3001Validation sucsessful\u3067\u3059\u3002<br \/>\n\u3055\u3066\u3001\u4ed6\u306e\u7b87\u6240\u306f\u5927\u4e08\u592b\u3067\u3057\u3087\u3046\u304b\uff1f\u7a0e\u984d\u8a08\u7b97\u306f\u3001ibt-116\u8ab2\u7a0e\u5bfe\u8c61\u91d1\u984d 200000\u306b\u6a19\u6e96\u7a0e\u738710%\u3092\u304b\u3051\u305f\u91d1\u984d20000\u3067\u3059\u304b\u3089\u6b63\u3057\u305d\u3046\u3067\u3059\u3002<br \/>\n\u6a19\u6e96\u7a0e\u738710%\u306e\u660e\u7d30\u884c\u306f\u3001250000 + 2500 = 252500 \u3067\u3059\u306e\u3067\u3001ibt-116\u8ab2\u7a0e\u5bfe\u8c61\u91d1\u984d\u306f\u3001 200000\u3067\u306a\u304f252500\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002<br \/>\nJP PINT 0.9.3\u3067\u306f\u3001BIS Billing 3.0\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u305f\u3001\u7a0e\u7387\u3054\u3068\u306e\u660e\u7d30\u884c\u306e\u8acb\u6c42\u91d1\u984d\u306e\u5408\u8a08\u8a08\u7b97\u306b\u3064\u3044\u3066\u306e\u30c1\u30a7\u30c3\u30af\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002<br \/>\n\u3053\u306e\u305f\u3081\u3001C4\u3067\u306e\u691c\u7b97\u304c\u4e0d\u53ef\u6b20\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u8a73\u3057\u304f\u306f\u3001<a href=\"https:\/\/www.sambuichi.jp\/?p=6801\">BIS Billing 3.0\u304b\u3089JP PINT 0.9.3\u306b\u5f15\u304d\u7d99\u304c\u308c\u306a\u304b\u3063\u305f\u691c\u8a3c\u30eb\u30fc\u30eb<\/a>\u3092\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002\n        <\/p>\n<\/p><\/div>\n<\/div>\n<div id=\"footer\">\n<div id=\"footer-text\">\n        Last updated 2022-08-29 15:05:20 +0900\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Views: 98 &#8220;\u30c7\u30b8\u30bf\u30eb\u4f1a\u8a08\u5e33\u7c3f\u306e Tidy data (\u6574\u7136\u3068\u3057\u305f\u30c7\u30fc\u30bf)\u30a2\u30d7\u30ed\u30fc\u30c1&#8221;\u3000\u3067\u7d39\u4ecb\u3057\u305fTidy data\u3092\u4f7f\u7528\u3059\u308b\u3068XML\u3068\u4e92\u63db\u6027\u306e\u3042\u308bCSV\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u53ef\u80fd\u3067\u3059\u3002 \u4eca\u56de\u306f\u3001 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6988,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[45,49,50,68],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/6984"}],"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=6984"}],"version-history":[{"count":51,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/6984\/revisions"}],"predecessor-version":[{"id":7086,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/6984\/revisions\/7086"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/media\/6988"}],"wp:attachment":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6984"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6984"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}