{"id":16818,"date":"2026-05-10T10:27:52","date_gmt":"2026-05-10T01:27:52","guid":{"rendered":"https:\/\/www.sambuichi.jp\/?p=16818"},"modified":"2026-05-12T13:14:51","modified_gmt":"2026-05-12T04:14:51","slug":"jp-pint-basic-rule%e7%94%9f%e6%88%90%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88%e3%81%ab%e3%82%88%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e6%a4%9c%e8%a8%bc%e3%81%a8%e5%85%ac%e9%96%8b%e4%bb%95","status":"publish","type":"post","link":"https:\/\/www.sambuichi.jp\/?p=16818","title":{"rendered":"OpenPeppol Help Desk \u30d0\u30b0\u767b\u9332 PEPPOL-23541: JP PINT Basic Rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3068\u516c\u958b\u4ed5\u69d8\u306e\u4e0d\u6574\u5408"},"content":{"rendered":"<p>Views: 34<\/p><div id=\"header\">\n<h1>JP PINT Basic Rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3068\u516c\u958b\u4ed5\u69d8\u306e\u4e0d\u6574\u5408<\/h1>\n<div class=\"details\">\n<span id=\"author\" class=\"author\">ChatGPT\uff08\u7de8\u96c6\uff1a\u4e09\u5206\u4e00\u4fe1\u4e4b\uff09<\/span><br \/>\n<span id=\"revdate\">2026-05-10<\/span>\n<\/div>\n<\/div>\n<div id=\"content\">\n<div class=\"sect1\">\n<div class=\"paragraph\">\n<p>\u672c\u4ef6\uff1aPEPPOL-23541 Inconsistency between JP PINT downloaded example file and syntax binding<br \/>\n\u306b\u3064\u3044\u3066\u3001Help Desk \u304b\u3089\u6b21\u306e\u56de\u7b54\u304c\u3042\u308a\u307e\u3057\u305f\u3002(2026-05-12)<\/p>\n<p>Issue 1: cbc:UBLVersionID \u306b\u3064\u3044\u3066\u306f\u3001Japan PA \u306b\u901a\u77e5\u3059\u308b\u3068\u306e\u3053\u3068\u3067\u3059\u3002\u307e\u305f\u3001\u3053\u306e\u8981\u7d20\u306f\u672c\u6765\u542b\u307e\u308c\u308b\u3079\u304d\u3067\u306f\u306a\u3044\u3001\u3068\u306e\u660e\u78ba\u306a\u56de\u7b54\u3067\u3057\u305f\u3002<\/p>\n<p>Issue 2: Tax Scheme ID \u306b\u3064\u3044\u3066\u306f\u3001\u65e2\u77e5\u306e\u554f\u984c\u3067\u3042\u308a\u30012026-Q2 \u30ea\u30ea\u30fc\u30b9\u3067\u4fee\u6b63\u4e88\u5b9a\u3068\u306e\u3053\u3068\u3067\u3059\u3002<\/p>\n<p>JP PINT \u306e\u4ed5\u69d8\u672c\u6587\u3001syntax binding\u3001\u30b5\u30f3\u30d7\u30eb XML\u3001\u691c\u8a3c\u30eb\u30fc\u30eb\u306e\u6574\u5408\u6027\u306b\u95a2\u308f\u308b\u554f\u984c\u3067\u3059\u306e\u3067\u3001\u4eca\u5f8c\u306e\u66f4\u65b0\u5185\u5bb9\u3092\u5f15\u304d\u7d9a\u304d\u78ba\u8a8d\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n<h2 id=\"_\u306f\u3058\u3081\u306b\">1. \u306f\u3058\u3081\u306b<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>JP PINT \u306e\u9069\u5408\u6027\u691c\u8a3c\u3067\u306f\u3001\u901a\u5e38\u3001Shared PINT rules \u3084 Japanese jurisdiction specific rules \u306b\u3088\u3063\u3066\u3001\u5fc5\u9808\u9805\u76ee\u3001\u30b3\u30fc\u30c9\u30ea\u30b9\u30c8\u3001\u7a0e\u5236\u56fa\u6709\u6761\u4ef6\u3001\u91d1\u984d\u8a08\u7b97\u306a\u3069\u304c\u691c\u8a3c\u3055\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001\u305d\u308c\u3060\u3051\u3067\u306f\u3001UBL 2.1 \u306e\u30b9\u30ad\u30fc\u30de\u4e0a\u306f\u8a31\u5bb9\u3055\u308c\u308b\u304c\u3001JP PINT \u306e syntax binding \u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u8981\u7d20\u304c XML \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u4e2d\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u3001\u5305\u62ec\u7684\u306b\u691c\u51fa\u3067\u304d\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u3053\u3067\u3001JP PINT \u306e syntax binding \u3092\u57fa\u790e\u3068\u3057\u3066\u3001\u5404\u89aa\u8981\u7d20\u3054\u3068\u306b\u8a31\u5bb9\u3055\u308c\u308b\u5b50\u8981\u7d20\u3068\u5c5e\u6027\u3092\u62bd\u51fa\u3057\u3001\u305d\u308c\u4ee5\u5916\u3092\u62d2\u5426\u3059\u308b Basic Model Rule \u3092\u6a5f\u68b0\u751f\u6210\u3059\u308b Python \u30b9\u30af\u30ea\u30d7\u30c8 <a href=\"#ref1\">[1]<\/a> \u3092\u8a66\u4f5c\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u691c\u8a3c\u306e\u904e\u7a0b\u3067\u3001JP PINT 2025-Q4 \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u3068\u516c\u958b syntax binding \u306e\u9593\u306b\u3001\u5c11\u306a\u304f\u3068\u3082\u4e8c\u3064\u306e\u4e0d\u6574\u5408\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u672c\u7a3f\u3067\u306f\u3001OpenPeppol Operation Office \u3078\u5831\u544a\u3057\u305f\u4e0d\u6574\u5408\u3001\u4eca\u56de\u958b\u767a\u3057\u305f Basic Rule \u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u3001\u751f\u6210\u3057\u305f Schematron <a href=\"#ref2\">[2]<\/a> \u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u7d50\u679c\u3092\u6574\u7406\u3059\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u80cc\u666f_\u306a\u305cbasic_rule\u304c\u5fc5\u8981\u304b\">2. \u80cc\u666f: \u306a\u305cBasic Rule\u304c\u5fc5\u8981\u304b<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>JP PINT \u306e syntax binding \u306f\u3001<code>ubl:Invoice<\/code> \u914d\u4e0b\u306b\u3001\u5404 IBT\/IBG \u304c\u3069\u306e UBL \u8981\u7d20\u3084\u5c5e\u6027\u306b\u5bfe\u5fdc\u3059\u308b\u304b\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u308b <a href=\"#ref3\">[3]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3068\u3048\u3070\u3001<code>cbc:CustomizationID<\/code>\u3001<code>cbc:ProfileID<\/code>\u3001<code>cbc:ID<\/code>\u3001<code>cbc:IssueDate<\/code>\u3001<code>cbc:DocumentCurrencyCode<\/code>\u3001<code>cac:AccountingSupplierParty<\/code>\u3001<code>cac:TaxTotal<\/code>\u3001<code>cac:InvoiceLine<\/code> \u306a\u3069\u304c\u3001JP PINT \u306e\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u306b\u5bfe\u5fdc\u3059\u308b UBL \u8981\u7d20\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001UBL 2.1 \u306e schema \u306f JP PINT \u3088\u308a\u5e83\u3044\u69cb\u9020\u3092\u8a31\u5bb9\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u306e\u305f\u3081\u3001UBL schema validation \u3067\u59a5\u5f53\u3067\u3042\u3063\u3066\u3082\u3001JP PINT data model \u3068\u3057\u3066\u59a5\u5f53\u3067\u3042\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u9055\u3044\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u6574\u7406\u3067\u304d\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. UBL schema validity\r\n   UBL 2.1 \u306e XML schema \u3068\u3057\u3066\u6b63\u3057\u3044\u3053\u3068\u3002\r\n\r\n2. JP PINT data model validity\r\n   JP PINT syntax binding \u306b\u5b9a\u7fa9\u3055\u308c\u305f\u8981\u7d20\u30fb\u5c5e\u6027\u3060\u3051\u3092\u4f7f\u3063\u3066\u3044\u308b\u3053\u3068\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Basic Rule \u306f\u3001\u3053\u306e\u3046\u3061 2 \u3092\u691c\u8a3c\u3059\u308b\u305f\u3081\u306e rule \u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_openpeppol_bis_billing_3_0\u3068pint_eu\u306b\u304a\u3051\u308bbasic_rule\u76f8\u5f53\u306e\u30eb\u30fc\u30eb\">3. OpenPeppol BIS Billing 3.0\u3068PINT EU\u306b\u304a\u3051\u308bBasic Rule\u76f8\u5f53\u306e\u30eb\u30fc\u30eb<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>JP PINT \u306e Basic Rule \u3092\u691c\u8a0e\u3059\u308b\u3046\u3048\u3067\u306f\u3001OpenPeppol BIS Billing 3.0 \u3068 PINT EU \u306b\u304a\u3051\u308b\u65e2\u5b58\u306e rule \u69cb\u6210\u304c\u53c2\u8003\u306b\u306a\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>OpenPeppol BIS Billing 3.0 \u306e Rules \u306f\u3001\u5927\u304d\u304f EN 16931 model bound to UBL \u3068 Peppol BIS \u56fa\u6709 rule \u306b\u5206\u3051\u3066\u516c\u958b\u3055\u308c\u3066\u3044\u308b <a href=\"#ref4\">[4]<\/a><a href=\"#ref5\">[5]<\/a><a href=\"#ref6\">[6]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u3046\u3061\u3001Basic Rule \u76f8\u5f53\u306e\u5f79\u5272\u306b\u8fd1\u3044\u306e\u306f\u3001<code>UBL-CR-*<\/code> \u7cfb\u306e rule \u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>UBL-CR-*<\/code> \u306f\u3001UBL schema \u4e0a\u306f\u5b58\u5728\u3057\u5f97\u308b\u304c\u3001BIS Billing \u306e data model \u3068\u3057\u3066\u306f\u4f7f\u7528\u3059\u3079\u304d\u3067\u306a\u3044\u8981\u7d20\u3092\u691c\u51fa\u3059\u308b rule \u7fa4\u3067\u3042\u308b\u3002\u305f\u3068\u3048\u3070\u3001<code>UBL-CR-001<\/code> \u306f <code>ext:UBLExtensions<\/code> \u3092\u542b\u3081\u308b\u3079\u304d\u3067\u306a\u3044\u3053\u3068\u3092\u3001<code>UBL-CR-002<\/code> \u306f <code>cbc:UBLVersionID<\/code> \u3092\u542b\u3081\u306a\u3044\u3001\u307e\u305f\u306f\u542b\u3081\u308b\u5834\u5408\u306f <code>2.1<\/code> \u3067\u3042\u308b\u3053\u3068\u3092\u691c\u8a3c\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">UBL-CR-001\r\n  A UBL invoice should not include extensions.\r\n\r\nUBL-CR-002\r\n  A UBL invoice should not include the UBLVersionID or it should be 2.1.<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3060\u3057\u3001BIS Billing \u306e <code>UBL-CR-<strong><\/code> \u306f\u3001\u591a\u304f\u306e\u5834\u5408 warning \u3068\u3057\u3066\u6271\u308f\u308c\u308b\u3002\u3053\u308c\u306f\u3001OpenPeppol \u306e Invoice Response \u3067\u898b\u3089\u308c\u308b\u3088\u3046\u306a\u3001\u540c\u3058 pattern \u5185\u306e\u5177\u4f53 rule \u306b\u8a72\u5f53\u3057\u306a\u3044\u8981\u7d20\u3092 <code>parent\/<\/strong><\/code> \u3068 <code>test=\"false()\"<\/code> \u3067\u62d2\u5426\u3059\u308b fallback rule \u3068\u306f\u5b9f\u88c5\u65b9\u5f0f\u304c\u7570\u306a\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>PINT EU \u3067\u3082\u3001Schematron \u306f Shared PINT rules\u3001EN16931 specific PINT rules\u3001EU Peppol specific PINT rules \u306a\u3069\u306b\u5206\u3051\u3066\u516c\u958b\u3055\u308c\u3066\u3044\u308b <a href=\"#ref7\">[7]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Shared PINT rules \u3067\u306f\u3001<code>IBR-<strong><\/code> \u3084 <code>IBR-CL-<\/strong><\/code> \u306b\u3088\u3063\u3066\u3001PINT \u5171\u901a\u306e\u5fc5\u9808\u9805\u76ee\u3001\u30b3\u30fc\u30c9\u30ea\u30b9\u30c8\u3001\u57fa\u672c\u7684\u306a business rule \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b <a href=\"#ref8\">[8]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001PINT EU \u306e EN16931 specific PINT rules \u306b\u306f\u3001<code>UBL-CR-*<\/code> \u7cfb\u306e rule \u304c\u542b\u307e\u308c\u3066\u3044\u308b <a href=\"#ref9\">[9]<\/a>\u3002\u3053\u308c\u3089\u306f\u3001BIS Billing \u3068\u540c\u69d8\u306b\u3001UBL schema \u4e0a\u306f\u5b58\u5728\u3057\u5f97\u308b\u304c PINT\/EN16931 data model \u3068\u3057\u3066\u306f\u4f7f\u7528\u3059\u3079\u304d\u3067\u306a\u3044\u8981\u7d20\u3092\u691c\u51fa\u3059\u308b\u5f79\u5272\u3092\u6301\u3064\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3068\u3048\u3070\u3001PINT EU \u306e <code>UBL-CR-002<\/code> \u3067\u306f\u3001<code>cbc:UBLVersionID<\/code> \u306b\u3064\u3044\u3066\u6b21\u306e\u3088\u3046\u306a\u6761\u4ef6\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b <a href=\"#ref10\">[10]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/UBL-CR-002.png\" alt=\"UBL CR 002\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u3053\u3068\u306f\u3001JP PINT \u306b\u304a\u3044\u3066\u3082\u91cd\u8981\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>JP PINT \u3067 <code>cbc:UBLVersionID<\/code> \u3092\u8a31\u5bb9\u3059\u308b\u306e\u3067\u3042\u308c\u3070\u3001BIS Billing \u3084 PINT EU \u306e <code>UBL-CR-002<\/code> \u3068\u540c\u69d8\u306b\u3001\u660e\u793a\u7684\u306a rule \u3068\u3057\u3066\u6271\u3046\u5fc5\u8981\u304c\u3042\u308b\u3002\u4e00\u65b9\u3001JP PINT syntax binding \u306b\u5b9a\u7fa9\u3057\u306a\u3044\u306e\u3067\u3042\u308c\u3070\u3001\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u306b\u3082\u542b\u3081\u308b\u3079\u304d\u3067\u306f\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u3088\u3046\u306b\u3001OpenPeppol BIS Billing 3.0 \u3084 PINT EU \u3067\u306f\u3001business rule \u3068\u306f\u5225\u306b\u3001UBL schema \u3068 data model \u306e\u5dee\u5206\u3092\u691c\u51fa\u3059\u308b rule \u7fa4\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u3002JP PINT \u306b\u304a\u3044\u3066\u3082\u3001\u540c\u69d8\u306e Basic Rule \u76f8\u5f53\u306e\u4ed5\u7d44\u307f\u3092 syntax binding \u304b\u3089\u6a5f\u68b0\u751f\u6210\u3057\u3001AP\u3001SMP\u3001\u691c\u8a3c\u30b5\u30fc\u30d3\u30b9\u3001\u5b9f\u88c5\u8005\u3067\u5171\u6709\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u671b\u307e\u3057\u3044\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u4eca\u56de\u4f7f\u7528\u3057\u305fsyntax_binding_tree\u306b\u3064\u3044\u3066\">4. \u4eca\u56de\u4f7f\u7528\u3057\u305fSyntax binding tree\u306b\u3064\u3044\u3066<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3067\u306f\u3001Peppol Authority \u304b\u3089\u516c\u958b\u3055\u308c\u3066\u3044\u308b JP PINT \u306e Syntax binding \u30da\u30fc\u30b8\u3092\u76f4\u63a5\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u5bfe\u8c61\u306b\u306f\u3057\u306a\u304b\u3063\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u7406\u7531\u306f\u3001\u516c\u958b\u3055\u308c\u3066\u3044\u308b Syntax binding \u304c\u3001XML \u6587\u66f8\u3068\u3057\u3066 UBL \u3068\u306e\u5bfe\u5fdc\u95a2\u4fc2\u3092\u6a5f\u68b0\u7684\u306b\u62bd\u51fa\u3057\u3084\u3059\u3044\u69cb\u9020\u306b\u306a\u3063\u3066\u3044\u306a\u3044\u3053\u3068\u306b\u52a0\u3048\u3001<code>cac:TaxTotal<\/code> \u306e selector \u306a\u3069\u306b\u8aa4\u308a\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3068\u3048\u3070\u3001IBG-37 \u306e tax accounting currency \u7528 <code>cac:TaxTotal<\/code> selector \u306b\u3064\u3044\u3066\u306f\u3001\u4ee5\u524d\u304b\u3089\u6b21\u306e\u3088\u3046\u306a\u554f\u984c\u3092\u6307\u6458\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxTotal\/TaxAmount\/@currency = cbc:TaxCurrencyCode<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u8868\u8a18\u306f\u3001UBL XML \u69cb\u9020\u3068\u3057\u3066\u6b21\u306e\u70b9\u3067\u554f\u984c\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. TaxAmount \u306f cbc:TaxAmount \u3067\u3042\u308b\u3002\r\n2. UBL \u306e\u901a\u8ca8\u5c5e\u6027\u306f @currencyID \u3067\u3042\u308a\u3001@currency \u3067\u306f\u306a\u3044\u3002\r\n3. cbc:TaxCurrencyCode \u306f document level \u306e\u8981\u7d20\u3067\u3042\u308a\u3001cac:TaxTotal \u306e\u5b50\u8981\u7d20\u3067\u306f\u306a\u3044\u3002\r\n4. selector \u306f cac:TaxTotal \u3092\u9078\u629e\u3059\u308b predicate \u3068\u3057\u3066\u8868\u73fe\u3055\u308c\u308b\u3079\u304d\u3067\u3042\u308b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u610f\u56f3\u3055\u308c\u308b selector \u306f\u3001\u6982\u5ff5\u7684\u306b\u306f\u6b21\u306e\u3088\u3046\u306a\u5f62\u306b\u306a\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">\/Invoice\/cac:TaxTotal[\r\n  cbc:TaxAmount\/@currencyID = \/Invoice\/cbc:TaxCurrencyCode\r\n]<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u3088\u3046\u306a\u7406\u7531\u304b\u3089\u3001\u4eca\u56de\u306e Basic Rule \u751f\u6210\u3067\u306f\u30012022\u5e74\u9803\u306b\u5f53\u4e8b\u52d9\u6240\u3067\u516c\u958b\u3057\u305f JP PINT 1.0 \u7248\u306e\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u3092\u4f7f\u7528\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u53c2\u7167\u30b5\u30a4\u30c8\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/en\/\">Peppol BIS Standard Invoice JP PINT Version 1.0<\/a> <a href=\"#ref11\">[11]<\/a><\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/pint2022.png\" alt=\"pint2022\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u30b5\u30a4\u30c8\u3067\u306f\u3001Syntax binding \u3092\u4e8c\u3064\u306e\u65b9\u5411\u304b\u3089\u53c2\u7167\u3067\u304d\u308b\u753b\u9762\u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. \u30bb\u30de\u30f3\u30c6\u30a3\u30c3\u30af\u30e2\u30c7\u30eb\u5074\u304b\u3089\u53c2\u7167\u3059\u308b\u753b\u9762\r\n2. UBL syntax \u5074\u304b\u3089\u53c2\u7167\u3059\u308b\u753b\u9762<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e Basic Rule \u751f\u6210\u3067\u306f\u3001\u3053\u306e\u3046\u3061 <strong>UBL syntax \u5074\u304b\u3089\u53c2\u7167\u3059\u308b\u753b\u9762<\/strong>\u3092\u4f7f\u7528\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/syntax2\/ubl-invoice\/tree\/en\/\">Syntax Binding (UBL &#8594; Semantic model)<\/a> : BeautifulSoup\u3067\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/ubl-invoice.png\" alt=\"ubl invoice\">\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5177\u4f53\u7684\u306b\u306f\u3001\u6b21\u306e\u3088\u3046\u306a XPath \u98a8\u306e tree \u8868\u793a\u3092\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3001\u89aa\u8981\u7d20\u3054\u3068\u306b\u8a31\u5bb9\u3055\u308c\u308b\u5b50\u8981\u7d20\u304a\u3088\u3073\u5c5e\u6027\u3092\u62bd\u51fa\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">\/Invoice\/cbc:CustomizationID\r\n\/Invoice\/cbc:ProfileID\r\n\/Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID\r\n\/Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\r\n\/Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode != '130']\/cac:Attachment\r\n\/Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID = \/Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e tree \u8868\u793a\u3067\u306f\u3001<code>\/Invoice<\/code> \u3092 root \u3068\u3057\u3066\u8868\u793a\u3057\u3066\u3044\u308b\u304c\u3001Schematron \u751f\u6210\u6642\u306b\u306f\u3001\u3053\u308c\u3092 <code>\/ubl:Invoice<\/code> \u306b\u6b63\u898f\u5316\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001<code>cbc:DocumentTypeCode != '130'<\/code> \u306b\u3064\u3044\u3066\u306f\u3001<code>cbc:DocumentTypeCode<\/code> \u304c\u5b58\u5728\u3057\u306a\u3044 supporting document \u3082\u5bfe\u8c61\u306b\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306b\u5909\u63db\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">not(cbc:DocumentTypeCode = '130')<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001<code>cbc:ID\/@schemeID = 'SEPA'<\/code>\u3001<code>cbc:ID\/@schemeID != 'SEPA'<\/code>\u3001<code>cac:TaxScheme\/cbc:ID = 'VAT'<\/code> \u306a\u3069\u306e selector \u306f\u3001\u5fc5\u9808\u9805\u76ee\u3067\u3042\u308a\u3001\u5024\u306e\u6bd4\u8f03\u3092\u53b3\u683c\u306b\u6271\u3046\u305f\u3081\u3001<code>normalize-space(.)<\/code> \u306a\u3069\u306b\u3088\u308b\u6b63\u898f\u5316\u306f\u884c\u308f\u305a\u3001\u5143\u306e\u6bd4\u8f03\u6761\u4ef6\u3092\u7dad\u6301\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u691c\u8a3c\u3067\u306f\u3001\u3053\u306e\u30c6\u30b9\u30c8\u30b5\u30a4\u30c8\u306e UBL syntax tree <a href=\"#ref12\">[12]<\/a> \u3092 Python \u306e BeautifulSoup \u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3057\u3001\u62bd\u51fa\u3057\u305f\u60c5\u5831\u304b\u3089 Basic Model Schematron \u3092\u751f\u6210\u3057\u305f\u3002\u305d\u306e\u3046\u3048\u3067\u3001\u751f\u6210\u3057\u305f Schematron \u3092 JP PINT 2025-Q4 \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb <a href=\"#ref13\">[13]<\/a> \u306b\u9069\u7528\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u4eca\u56de\u306e\u691c\u8a3c\u7d50\u679c\u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u6b21\u306e\u4e09\u3064\u306e\u6574\u5408\u6027\u3092\u78ba\u8a8d\u3059\u308b\u8a66\u307f\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. JP PINT syntax binding \u304c UBL syntax \u3068\u6574\u5408\u3057\u3066\u3044\u308b\u304b\u3002\r\n2. syntax binding \u304b\u3089\u6a5f\u68b0\u751f\u6210\u3057\u305f Basic Rule \u304c\u5b9f\u969b\u306e XML \u30b5\u30f3\u30d7\u30eb\u306b\u9069\u7528\u3067\u304d\u308b\u304b\u3002\r\n3. \u516c\u5f0f\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u304c syntax binding \u3068\u6574\u5408\u3057\u3066\u3044\u308b\u304b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u4eca\u56de\u4f5c\u6210\u3057\u305fbasic_rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\">5. \u4eca\u56de\u4f5c\u6210\u3057\u305fBasic Rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u4f5c\u6210\u3057\u305f Python \u30b9\u30af\u30ea\u30d7\u30c8 <a href=\"#ref1\">[1]<\/a> \u306f\u3001JP PINT \u306e syntax binding tree \u30da\u30fc\u30b8\u3092\u8aad\u307f\u53d6\u308a\u3001\u89aa\u8981\u7d20\u3054\u3068\u306b\u8a31\u5bb9\u3055\u308c\u308b\u5b50\u8981\u7d20\u3068\u5c5e\u6027\u3092\u62bd\u51fa\u3057\u3001Schematron \u3092\u751f\u6210\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5165\u529b\u3068\u3057\u3066\u60f3\u5b9a\u3057\u3066\u3044\u308b\u306e\u306f\u3001\u6b21\u306e\u3088\u3046\u306a syntax binding tree \u5f62\u5f0f\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">\/Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID\r\n\/Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\r\n\/Invoice\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID\r\n\/Invoice\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cbc:CompanyID\r\n\/Invoice\/...\/cbc:ID\/@schemeID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306f\u3001<code>\/Invoice<\/code> \u3092\u3001Schematron \u7528\u306e XPath \u3068\u3057\u3066 <code>\/ubl:Invoice<\/code> \u306b\u6b63\u898f\u5316\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001JP PINT syntax binding \u306b\u542b\u307e\u308c\u308b selector \u306e\u3046\u3061\u3001<code>cbc:DocumentTypeCode != '130'<\/code> \u3060\u3051\u306f\u7279\u5225\u306b\u6271\u3046\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>cbc:DocumentTypeCode = '130'<\/code> \u306e\u5834\u5408\u306f invoiced object identifier \u3092\u793a\u3059\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001<code>cbc:DocumentTypeCode != '130'<\/code> \u306e\u5834\u5408\u306f additional supporting document \u3092\u793a\u3059\u304c\u3001\u3053\u306e\u5834\u5408\u3001<code>cbc:DocumentTypeCode<\/code> \u304c\u5b58\u5728\u3057\u306a\u3044 supporting document \u3082\u5bfe\u8c61\u306b\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u306e\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306b\u5909\u63db\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">[cbc:DocumentTypeCode = '130']\r\n  -&gt; [cbc:DocumentTypeCode = '130']\r\n\r\n[cbc:DocumentTypeCode != '130']\r\n  -&gt; [not(cbc:DocumentTypeCode = '130')]<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001\u6b21\u306e\u3088\u3046\u306a selector \u306f\u3001\u53b3\u683c\u306a\u6bd4\u8f03\u3068\u3057\u3066\u305d\u306e\u307e\u307e\u6b8b\u3059\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">[cbc:ID\/@schemeID = 'SEPA']\r\n[cbc:ID\/@schemeID != 'SEPA']\r\n[cac:TaxScheme\/cbc:ID = 'VAT']\r\n[cac:TaxScheme\/cbc:ID != 'VAT']<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u751f\u6210\u3055\u308c\u308bschematron\u306e\u8003\u3048\u65b9\">6. \u751f\u6210\u3055\u308c\u308bSchematron\u306e\u8003\u3048\u65b9<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u751f\u6210\u3059\u308b Schematron <a href=\"#ref2\">[2]<\/a> \u306b\u306f\u3001\u4e8c\u3064\u306e\u65b9\u5f0f\u3092\u7528\u610f\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u3064\u306f\u3001OpenPeppol \u306e Invoice Response \u3067\u898b\u3089\u308c\u308b fallback rule \u306b\u8fd1\u3044\u65b9\u5f0f\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;sch:rule context=\"parent\/allowed-child1\"\/&gt;\r\n&lt;sch:rule context=\"parent\/allowed-child2\"\/&gt;\r\n&lt;sch:rule context=\"parent\/allowed-child3\"\/&gt;\r\n&lt;sch:rule context=\"parent\/*\"&gt;\r\n  &lt;sch:assert test=\"false()\"&gt;\r\n    Document MUST NOT contain child elements that are not part of the JP PINT data model.\r\n  &lt;\/sch:assert&gt;\r\n&lt;\/sch:rule&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u65b9\u5f0f\u3067\u306f\u3001\u8a31\u53ef\u3055\u308c\u305f\u5b50\u8981\u7d20\u3054\u3068\u306b\u7a7a\u306e rule \u3092\u7f6e\u304d\u3001\u6700\u5f8c\u306b <code>parent\/*<\/code> \u306e fallback rule \u3092\u7f6e\u304f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3082\u3046\u4e00\u3064\u306f\u3001Validator Buddy \u306a\u3069\u3067\u7a7a rule \u306e shadowing \u304c\u671f\u5f85\u3069\u304a\u308a\u306b\u52d5\u304b\u306a\u3044\u5834\u5408\u3092\u8003\u616e\u3057\u305f whitelist \u65b9\u5f0f\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;sch:rule context=\"parent\/*\"&gt;\r\n  &lt;sch:assert test=\"\r\n    self::allowed-child-1 or\r\n    self::allowed-child-2 or\r\n    self::allowed-child-3\r\n  \"&gt;\r\n    Document MUST NOT contain child elements that are not part of the JP PINT data model.\r\n  &lt;\/sch:assert&gt;\r\n&lt;\/sch:rule&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5b9f\u88c5\u4e0a\u306f\u3001\u5f8c\u8005\u306e whitelist \u65b9\u5f0f\u306e\u65b9\u304c\u3001\u591a\u304f\u306e Schematron \u51e6\u7406\u7cfb\u3067\u5b89\u5b9a\u3057\u3066\u52d5\u4f5c\u3059\u308b\u3068\u8003\u3048\u3089\u308c\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u691c\u8a3c\u5bfe\u8c61\u306e\u30b5\u30f3\u30d7\u30eb\">7. \u691c\u8a3c\u5bfe\u8c61\u306e\u30b5\u30f3\u30d7\u30eb<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u691c\u8a3c\u3067\u306f\u3001JP PINT 2025-Q4 \u306e download resource \u306b\u542b\u307e\u308c\u308b\u6b21\u306e\u30b5\u30f3\u30d7\u30eb <a href=\"#ref0\">[0]<\/a> \u3092\u5bfe\u8c61\u3068\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">Japan PINT Invoice UBL Example2-TaxAcctCur.xml<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u306f\u3001\u5916\u8ca8\u5efa\u3066\u8acb\u6c42\u66f8\u3067\u3042\u308a\u3001\u6587\u66f8\u901a\u8ca8\u3068\u7a0e\u4f1a\u8a08\u901a\u8ca8\u304c\u7570\u306a\u308b\u4f8b\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30b5\u30f3\u30d7\u30eb\u3067\u306f\u3001\u6587\u66f8\u901a\u8ca8\u3068\u3057\u3066 <code>EUR<\/code>\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u3068\u3057\u3066 <code>JPY<\/code> \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cbc:DocumentCurrencyCode&gt;EUR&lt;\/cbc:DocumentCurrencyCode&gt;\r\n&lt;cbc:TaxCurrencyCode&gt;JPY&lt;\/cbc:TaxCurrencyCode&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u7528\u306e <code>cac:TaxTotal<\/code> \u306b\u306f\u3001\u6b21\u306e\u69cb\u9020\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cac:TaxTotal&gt;\r\n  &lt;cbc:TaxAmount currencyID=\"JPY\"&gt;32500&lt;\/cbc:TaxAmount&gt;\r\n  &lt;cac:TaxSubtotal&gt;\r\n    &lt;cbc:TaxAmount currencyID=\"JPY\"&gt;32500&lt;\/cbc:TaxAmount&gt;\r\n    &lt;cac:TaxCategory&gt;\r\n      &lt;cbc:ID&gt;S&lt;\/cbc:ID&gt;\r\n      &lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt;\r\n      &lt;cac:TaxScheme&gt;\r\n        &lt;cbc:ID&gt;VAT&lt;\/cbc:ID&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;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e <code>cac:TaxScheme\/cbc:ID<\/code> \u304c\u3001\u4eca\u56de\u306e\u91cd\u8981\u306a\u691c\u51fa\u70b9\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3067\u691c\u51fa\u3055\u308c\u305f\u4e0d\u6574\u5408\">8. \u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3067\u691c\u51fa\u3055\u308c\u305f\u4e0d\u6574\u5408<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u751f\u6210\u3057\u305f JP PINT Basic Model Schematron \u3092\u7528\u3044\u3066\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u3092\u691c\u8a3c\u3057\u305f\u3068\u3053\u308d\u3001\u4e3b\u306b\u6b21\u306e\u4e8c\u3064\u306e\u4e0d\u6574\u5408\u304c\u691c\u51fa\u3055\u308c\u305f\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. cbc:UBLVersionID \u304c\u30b5\u30f3\u30d7\u30eb\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304c\u3001syntax binding \u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002\r\n2. \u7a0e\u4f1a\u8a08\u901a\u8ca8\u306e Tax breakdown \u306b cac:TaxScheme\/cbc:ID \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304c\u3001syntax binding \u306b\u306f\u5bfe\u5fdc\u3059\u308b IBT \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u4e0d\u6574\u54081_cbcublversionid\">8.1. \u4e0d\u6574\u54081: cbc:UBLVersionID<\/h3>\n<div class=\"paragraph\">\n<p>\u30b5\u30f3\u30d7\u30eb\u306b\u306f\u3001\u6b21\u306e\u8981\u7d20\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cbc:UBLVersionID&gt;2.1&lt;\/cbc:UBLVersionID&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001JP PINT 2025-Q4 \u306e syntax binding \u3067\u306f\u3001<code>ubl:Invoice<\/code> \u76f4\u4e0b\u306e JP PINT data model \u8981\u7d20\u3068\u3057\u3066 <code>cbc:UBLVersionID<\/code> \u3092\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001Basic Model Rule \u3067\u306f\u3001\u3053\u308c\u306f JP PINT data model \u306b\u542b\u307e\u308c\u306a\u3044\u8981\u7d20\u3068\u3057\u3066\u691c\u51fa\u3055\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u4e0d\u6574\u5408\u306f\u3001\u6b21\u306e\u3069\u3061\u3089\u304b\u306e\u65b9\u6cd5\u3067\u89e3\u6d88\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">A. \u30b5\u30f3\u30d7\u30eb\u304b\u3089 cbc:UBLVersionID \u3092\u524a\u9664\u3059\u308b\u3002\r\nB. syntax binding \u306b cbc:UBLVersionID \u3092\u660e\u793a\u7684\u306b\u8a31\u5bb9\u8981\u7d20\u3068\u3057\u3066\u8ffd\u52a0\u3059\u308b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>BIS Billing \u3067\u306f\u3001<code>UBLVersionID<\/code> \u3092\u542b\u3081\u306a\u3044\u3001\u307e\u305f\u306f 2.1 \u3068\u3059\u308b\u3001\u3068\u3044\u3063\u305f UBL-CR \u7cfb rule \u3067\u6271\u308f\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>JP PINT \u3067\u3082\u540c\u69d8\u306b\u6271\u3046\u306e\u3067\u3042\u308c\u3070\u3001syntax binding \u3042\u308b\u3044\u306f Basic Rule \u5074\u3067\u660e\u793a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_\u4e0d\u6574\u54082_\u7a0e\u4f1a\u8a08\u901a\u8ca8tax_breakdown\u306ecactaxscheme\">8.2. \u4e0d\u6574\u54082: \u7a0e\u4f1a\u8a08\u901a\u8ca8Tax breakdown\u306ecac:TaxScheme<\/h3>\n<div class=\"paragraph\">\n<p>\u6587\u66f8\u901a\u8ca8\u306e tax breakdown \u3067\u306f\u3001<code>cac:TaxCategory<\/code> \u306e\u4e0b\u306b\u6b21\u306e\u69cb\u9020\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxCategory\r\n  cbc:ID\r\n  cbc:Percent\r\n  cac:TaxScheme\r\n    cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u306f\u3001<code>IBT-118-1<\/code> \u3068\u540c\u69d8\u306e tax scheme code \u3068\u3057\u3066\u7406\u89e3\u3067\u304d\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u306e tax breakdown \u3067\u306f\u3001syntax binding \u4e0a\u3001\u6b21\u306e\u69cb\u9020\u307e\u3067\u3057\u304b Business Term \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxCategory\r\n  cbc:ID\r\n  cbc:Percent<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306b\u306f\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u306e <code>cac:TaxCategory<\/code> \u914d\u4e0b\u306b\u6b21\u306e\u69cb\u9020\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxCategory\r\n  cbc:ID\r\n  cbc:Percent\r\n  cac:TaxScheme\r\n    cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u305f\u3081\u3001syntax binding \u3092 JP PINT data model \u306e\u6b63\u672c\u3068\u3057\u3066 Basic Model Rule \u3092\u751f\u6210\u3059\u308b\u3068\u3001\u30b5\u30f3\u30d7\u30eb\u4e2d\u306e <code>cac:TaxScheme\/cbc:ID<\/code> \u306f\u672a\u5b9a\u7fa9\u8981\u7d20\u3068\u3057\u3066\u691c\u51fa\u3055\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/Example2-TaxAcctCurr.png\" alt=\"Example2 TaxAcctCurr\">\n<\/div>\n<div class=\"title\">Figure 1. XML ValidatorBuddy\u3067\u691c\u8a3c<\/div>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/Oxygenpng.png\" alt=\"Oxygenpng\">\n<\/div>\n<div class=\"title\">Figure 2. Oxygen XML Editor\u3067\u691c\u8a3c<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_bis_billing_3_0\u304a\u3088\u3073pint_eu\u3068\u306e\u6bd4\u8f03\">8.2.1. BIS Billing 3.0\u304a\u3088\u3073PINT EU\u3068\u306e\u6bd4\u8f03<\/h4>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u70b9\u306b\u3064\u3044\u3066\u3001BIS Billing 3.0 \u304a\u3088\u3073 PINT EU \u306e syntax binding \u3068\u6bd4\u8f03\u3059\u308b\u3068\u3001JP PINT \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306f\u7570\u306a\u308b\u69cb\u9020\u3092\u63a1\u3063\u3066\u3044\u308b\u3088\u3046\u306b\u898b\u3048\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>BIS Billing 3.0 \u3067\u306f\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u30b3\u30fc\u30c9\u304c\u63d0\u4f9b\u3055\u308c\u308b\u5834\u5408\u3001\u4e8c\u3064\u306e <code>cac:TaxTotal<\/code> \u304c\u5fc5\u8981\u306b\u306a\u308b\u304c\u3001<code>cac:TaxSubtotal<\/code> \u3092\u6301\u3064\u306e\u306f\u4e00\u3064\u3060\u3051\u3067\u3042\u308b\u3068\u8aac\u660e\u3055\u308c\u3066\u3044\u308b <a href=\"#ref14\">[14]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">When tax currency code is provided, two instances of the tax total must be present,\r\nbut only one with tax subtotal.<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001BIS Billing 3.0 \u306e <code>cac:TaxTotal<\/code> \u3067\u3082\u3001<code>cbc:TaxAmount<\/code> \u306f\u5fc5\u9808\u3001<code>cac:TaxSubtotal<\/code> \u306f <code>0..n<\/code> \u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u304c\u3001<code>PEPPOL-EN16931-R054<\/code> \u306b\u3088\u308a\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u30b3\u30fc\u30c9\u304c\u63d0\u4f9b\u3055\u308c\u308b\u5834\u5408\u306b\u306f\u3001<code>cac:TaxSubtotal<\/code> \u3092\u6301\u305f\u306a\u3044 tax total \u304c\u4e00\u3064\u3060\u3051\u5b58\u5728\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3068\u3055\u308c\u3066\u3044\u308b <a href=\"#ref15\">[15]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u305f\u3081\u3001BIS Billing 3.0 \u306e\u8003\u3048\u65b9\u3067\u306f\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306e <code>cac:TaxTotal<\/code> \u306f\u3001\u57fa\u672c\u7684\u306b\u6b21\u306e\u69cb\u9020\u306b\u306a\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxTotal\r\n  cbc:TaxAmount<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001\u6587\u66f8\u901a\u8ca8\u5074\u306e\u901a\u5e38\u306e tax breakdown \u3067\u306f\u3001<code>cac:TaxSubtotal\/cac:TaxCategory<\/code> \u306e\u4e0b\u306b <code>cac:TaxScheme<\/code> \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002BIS Billing 3.0 \u306e <code>cac:TaxCategory<\/code> \u3067\u306f\u3001<code>cbc:ID<\/code>\u3001<code>cbc:Percent<\/code>\u3001<code>cbc:TaxExemptionReasonCode<\/code>\u3001<code>cbc:TaxExemptionReason<\/code> \u306b\u52a0\u3048\u3001<code>cac:TaxScheme<\/code> \u304c <code>1..1<\/code> \u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b <a href=\"#ref16\">[16]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxSubtotal\r\n  cac:TaxCategory\r\n    cbc:ID\r\n    cbc:Percent\r\n    cbc:TaxExemptionReasonCode\r\n    cbc:TaxExemptionReason\r\n    cac:TaxScheme\r\n      cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3055\u3089\u306b\u3001<code>cac:TaxScheme\/cbc:ID<\/code> \u306f\u5fc5\u9808\u3067\u3042\u308a\u3001\u5024\u3068\u3057\u3066 <code>VAT<\/code> \u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u793a\u3055\u308c\u3066\u3044\u308b <a href=\"#ref17\">[17]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3064\u307e\u308a\u3001BIS Billing 3.0 \u3067\u306f\u3001<code>cac:TaxScheme\/cbc:ID<\/code> \u306f\u901a\u5e38\u306e tax breakdown \u5074\u306b\u306f\u5b58\u5728\u3059\u308b\u304c\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306e <code>cac:TaxTotal<\/code> \u306b\u306f <code>cac:TaxSubtotal<\/code> \u81ea\u4f53\u3092\u6301\u305f\u305b\u306a\u3044\u69cb\u9020\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>PINT EU \u3067\u3082\u540c\u69d8\u306b\u3001\u901a\u5e38\u306e tax breakdown \u3067\u306f <code>IBT-118-1<\/code> \u3068\u3057\u3066 tax scheme code \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002PINT EU \u306e syntax binding \u3067\u306f\u3001<code>IBG-23 TAX BREAKDOWN<\/code> \u306e <code>cac:TaxCategory<\/code> \u914d\u4e0b\u306b <code>cac:TaxScheme<\/code> \u304c\u3042\u308a\u3001\u305d\u306e\u4e0b\u306b <code>IBT-118-1 Tax scheme code<\/code> \u3068\u3057\u3066 <code>cbc:ID<\/code> \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b <a href=\"#ref18\">[18]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/TaxTotalInTaxCurrency.png\" alt=\"TaxTotalInTaxCurrency\">\n<\/div>\n<div class=\"title\">Figure 3. PINT EU tax breakdown<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">IBG-23 TAX BREAKDOWN\r\n  cac:TaxSubtotal\r\n    cac:TaxCategory\r\n      cbc:ID\r\n      cbc:Percent\r\n      cac:TaxScheme\r\n        cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u306b\u5bfe\u3057\u3066\u3001PINT EU \u306e <code>IBG-37 DOCUMENT TOTALS IN TAX ACCOUNTING CURRENCY<\/code> \u3067\u306f\u3001<code>cac:TaxTotal<\/code> \u306e\u4e0b\u306b <code>IBT-111 Invoice total TAX amount in tax accounting currency<\/code> \u3068\u3057\u3066 <code>cbc:TaxAmount<\/code> \u304c\u5b9a\u7fa9\u3055\u308c\u3001\u305d\u306e <code>@currencyID<\/code> \u304c\u5b9a\u7fa9\u3055\u308c\u308b\u3060\u3051\u3067\u3042\u308b\u3002<code>cac:TaxSubtotal<\/code>\u3001<code>cac:TaxCategory<\/code>\u3001<code>cac:TaxScheme<\/code> \u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044 <a href=\"#ref18\">[18]<\/a>\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">IBG-37 DOCUMENT TOTALS IN TAX ACCOUNTING CURRENCY\r\n  cac:TaxTotal\r\n    cbc:TaxAmount\r\n      @currencyID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001BIS Billing 3.0 \u304a\u3088\u3073 PINT EU \u3068\u6bd4\u8f03\u3059\u308b\u3068\u3001JP PINT \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306b\u542b\u307e\u308c\u308b\u6b21\u306e\u69cb\u9020\u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u305d\u306e\u307e\u307e\u3067\u306f\u6574\u5408\u3057\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxTotal\r\n  [cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:TaxCurrencyCode]\r\n  cac:TaxSubtotal\r\n    cac:TaxCategory\r\n      cbc:ID\r\n      cbc:Percent\r\n      cac:TaxScheme\r\n        cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u305f\u3081\u3001JP PINT \u3068\u3057\u3066\u306f\u3001\u6b21\u306e\u3044\u305a\u308c\u304b\u3092\u660e\u78ba\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. BIS Billing 3.0 \/ PINT EU \u3068\u540c\u69d8\u306b\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306e cac:TaxTotal \u306b\u306f\r\n   cac:TaxSubtotal \u3092\u542b\u3081\u306a\u3044\u3002\r\n   \u3053\u306e\u5834\u5408\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u3092\u8a02\u6b63\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\r\n\r\n2. JP PINT \u56fa\u6709\u8981\u4ef6\u3068\u3057\u3066\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306b\u3082 cac:TaxSubtotal\/cac:TaxCategory \u3092\r\n   \u6301\u305f\u305b\u308b\u3002\r\n   \u3053\u306e\u5834\u5408\u3001syntax binding \u306b IBT-192-1 \u306a\u3069\u306e Business Term \u3092\u8ffd\u52a0\u3057\u3001\r\n   cac:TaxScheme\/cbc:ID \u307e\u3067\u660e\u793a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u73fe\u72b6\u3067\u306f\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306f 2 \u306e\u69cb\u9020\u3092\u63a1\u3063\u3066\u3044\u308b\u3088\u3046\u306b\u898b\u3048\u308b\u4e00\u65b9\u3001\u516c\u958b syntax binding \u306f\u305d\u3053\u307e\u3067\u5b9a\u7fa9\u3057\u3066\u3044\u306a\u3044\u3002\u3053\u306e\u305f\u3081\u3001\u30b5\u30f3\u30d7\u30eb\u3068 syntax binding \u306e\u3069\u3061\u3089\u3092\u6b63\u3068\u3059\u308b\u306e\u304b\u3092\u660e\u78ba\u306b\u3057\u306a\u3044\u9650\u308a\u3001JP PINT \u516c\u958b\u4ed5\u69d8\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u3057\u3066\u306e\u5185\u90e8\u4e00\u8cab\u6027\u306b\u6b20\u3051\u308b\u3002<\/p>\n<\/div>\n<div class=\"admonitionblock note\">\n<table>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">\n\u65e5\u672c\u306e\u6d88\u8cbb\u7a0e\u3067\u306f\u3001\u7a0e\u7387\u3054\u3068\u306e\u5408\u8a08\u7a0e\u984d\u306b\u3064\u3044\u3066\u3001\u7a0e\u7387\u3054\u3068\u306b\u5bfe\u8c61\u3068\u306a\u308b\u660e\u7d30\u884c\u306e\u91d1\u984d\u3092\u5408\u8a08\u3057\u305f\u3046\u3048\u3067\u3001\u4e00\u5ea6\u3060\u3051\u7aef\u6570\u51e6\u7406\u3092\u884c\u3063\u3066\u7b97\u51fa\u3057\u3001\u305d\u306e\u91d1\u984d\u3092\u8a18\u8f09\u3059\u308b\u3053\u3068\u304c\u6c42\u3081\u3089\u308c\u3066\u3044\u308b\u3002<br \/>\n\u3053\u306e\u70b9\u3067\u3001\u6b27\u5dde\u306e VAT \u3068\u65e5\u672c\u306e\u6d88\u8cbb\u7a0e\u306b\u306f\u5236\u5ea6\u4e0a\u306e\u9055\u3044\u304c\u3042\u308b\u3002\u305d\u306e\u305f\u3081\u3001JP PINT \u304c BIS Billing 3.0 \u3084 PINT EU \u3068\u306f\u7570\u306a\u308b\u69cb\u9020\u3092\u5fc5\u8981\u3068\u3059\u308b\u3053\u3068\u81ea\u4f53\u306f\u3042\u308a\u5f97\u308b\u3002<br \/>\n\u3057\u304b\u3057\u3001\u305d\u306e\u5dee\u7570\u304c JP PINT \u56fa\u6709\u306e\u8981\u4ef6\u3068\u3057\u3066\u5fc5\u8981\u3067\u3042\u308b\u306a\u3089\u3070\u3001\u5bfe\u5fdc\u3059\u308b Business Term \u3068 syntax binding \u3068\u3057\u3066\u660e\u793a\u3055\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002\u73fe\u5728\u306e\u3088\u3046\u306b\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306b\u306f\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306e <code>cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme\/cbc:ID<\/code> \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u4e00\u65b9\u3067\u3001\u516c\u958b syntax binding \u306b\u306f\u305d\u306e\u69cb\u9020\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u72b6\u614b\u306f\u3001\u4ed5\u69d8\u3068\u3057\u3066\u4e0d\u5341\u5206\u3067\u3042\u308b\u3002<br \/>\n\u3053\u308c\u306f\u30012020\u5e74\u304b\u30892022\u5e74\u5f53\u6642\u306e JP PINT \u5c0e\u5165\u691c\u8a0e\u306b\u304a\u3044\u3066\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u306b\u95a2\u3059\u308b UBL \u69cb\u9020\u3068 syntax binding \u306e\u6280\u8853\u7684\u691c\u8a3c\u304c\u5341\u5206\u3067\u306f\u306a\u304b\u3063\u305f\u53ef\u80fd\u6027\u3092\u793a\u3057\u3066\u3044\u308b\u3088\u3046\u306b\u601d\u308f\u308c\u308b\u3002\n<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_openpeppol_operation_office\u3078\u306e\u5831\u544a\">9. OpenPeppol Operation Office\u3078\u306e\u5831\u544a<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u3053\u306e\u4e0d\u6574\u5408\u306b\u3064\u3044\u3066\u3001OpenPeppol Operation Office \u3078\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u3068\u516c\u958b syntax binding \u306e\u9593\u306e\u6574\u5408\u6027\u554f\u984c\u3068\u3057\u3066\u5831\u544a\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u91cd\u8981\u306a\u306e\u306f\u3001\u3053\u306e\u5831\u544a\u306f\u5358\u306b PEPPOL-22903 \u306e\u8ffd\u52a0\u8ad6\u70b9\u3067\u306f\u306a\u304f\u3001\u516c\u5f0f download resource \u306b\u542b\u307e\u308c\u308b\u30b5\u30f3\u30d7\u30eb\u3068\u516c\u958b syntax binding \u306e\u4e0d\u6574\u5408\u3068\u3057\u3066\u6574\u7406\u3057\u305f\u70b9\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5831\u544a\u306e\u8981\u70b9\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">Subject:\r\nInconsistency between JP PINT downloaded example file and syntax binding\r\n\r\nDownloaded example file:\r\nJapan PINT Invoice UBL Example2-TaxAcctCur.xml\r\n\r\nDownloaded resource:\r\nhttps:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/resources.zip\r\n\r\nReference syntax binding page:\r\nhttps:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/trn-invoice\/syntax\/<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5831\u544a\u3067\u306f\u3001\u6b21\u306e\u4e8c\u3064\u306e\u4e0d\u6574\u5408\u3092\u6307\u6458\u3057\u305f\u3002<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 20%;\">\n<col style=\"width: 40%;\">\n<col style=\"width: 40%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">No.<\/th>\n<th class=\"tableblock halign-left valign-top\">\u30b5\u30f3\u30d7\u30eb\u306b\u542b\u307e\u308c\u308b\u69cb\u9020<\/th>\n<th class=\"tableblock halign-left valign-top\">syntax binding\u4e0a\u306e\u554f\u984c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\"><code>cbc:UBLVersionID<\/code><\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP PINT syntax binding \u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u7a0e\u4f1a\u8a08\u901a\u8ca8\u306e <code>cac:TaxCategory\/cac:TaxScheme\/cbc:ID<\/code><\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u6587\u66f8\u901a\u8ca8\u5074\u306b\u306f\u5bfe\u5fdc\u69cb\u9020\u304c\u3042\u308b\u304c\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306b\u306f\u5bfe\u5fdc\u3059\u308b IBT \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u6b21\u306e\u3069\u3061\u3089\u304b\u306e\u8a02\u6b63\u304c\u5fc5\u8981\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. \u30b5\u30f3\u30d7\u30eb\u3092 syntax binding \u306b\u5408\u308f\u305b\u3066\u8a02\u6b63\u3059\u308b\u3002\r\n2. syntax binding \u3092\u30b5\u30f3\u30d7\u30eb\u306b\u5408\u308f\u305b\u3066\u8a02\u6b63\u3059\u308b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3069\u3061\u3089\u306e\u8a02\u6b63\u3082\u884c\u308f\u306a\u3044\u5834\u5408\u3001\u516c\u958b\u4ed5\u69d8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5185\u90e8\u4e00\u8cab\u6027\u306b\u6b20\u3051\u308b\u3053\u3068\u306b\u306a\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_ibt_192_1\u3068\u3057\u3066\u306e\u8ffd\u52a0\u63d0\u6848\">10. IBT-192-1\u3068\u3057\u3066\u306e\u8ffd\u52a0\u63d0\u6848<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u306e <code>cac:TaxScheme\/cbc:ID<\/code> \u306b\u3064\u3044\u3066\u306f\u3001\u5358\u306b UBL \u8981\u7d20\u3068\u3057\u3066\u8ffd\u52a0\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001Business Term \u3068\u3057\u3066\u660e\u793a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6587\u66f8\u901a\u8ca8\u5074\u3067\u306f\u3001<code>IBT-118<\/code> \u306e tax category code \u306b\u5bfe\u3057\u3066\u3001<code>cac:TaxScheme\/cbc:ID<\/code> \u304c qualifier \u3068\u3057\u3066\u6271\u308f\u308c\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u7a0e\u4f1a\u8a08\u901a\u8ca8\u5074\u3067\u3082\u3001<code>IBT-192<\/code> \u306b\u5bfe\u5fdc\u3059\u308b qualifier \u3068\u3057\u3066\u3001\u305f\u3068\u3048\u3070\u6b21\u306e Business Term \u3092\u8ffd\u52a0\u3059\u308b\u306e\u304c\u81ea\u7136\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">IBT-192-1\r\nTax scheme code for tax accounting currency tax breakdown<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u63d0\u6848\u3059\u308b\u69cb\u9020\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">IBG-37 DOCUMENT TOTALS IN TAX ACCOUNTING CURRENCY\r\n  cac:TaxTotal\r\n    [cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:TaxCurrencyCode]\r\n    cac:TaxSubtotal\r\n      cac:TaxCategory\r\n        cbc:ID\r\n        cbc:Percent\r\n        cac:TaxScheme\r\n          cbc:ID<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u306f\u3001\u6587\u66f8\u901a\u8ca8\u5074\u306e tax breakdown \u3068\u540c\u3058 <code>cac:TaxCategory<\/code> \u69cb\u9020\u306b\u63c3\u3048\u308b\u3082\u306e\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_peppol_22903\u3068\u306e\u95a2\u4fc2\">11. PEPPOL-22903\u3068\u306e\u95a2\u4fc2<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u3053\u306e\u4e0d\u6574\u5408\u306f\u3001\u5148\u306b\u5831\u544a\u3057\u305f PEPPOL-22903 \u3068\u3082\u95a2\u9023\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/www.sambuichi.jp\/?p=16695\">\u300eJP PINT \u6587\u66f8\u306e\u8ab2\u984c\u3068 Help Center \u56de\u7b54 \u2014 6\u4ef6\u306e\u6307\u6458\u304b\u3089\u898b\u3048\u305f\u8ad6\u70b9\u300f<\/a><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>PEPPOL-22903 \u3067\u306f\u3001IBG-37 \u306e <code>cac:TaxTotal<\/code> selector \u306b\u95a2\u3057\u3066\u3001\u516c\u958b syntax binding \u4e0a\u306e\u8868\u8a18\u304c UBL XML \u69cb\u9020\u3068\u6574\u5408\u3057\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u6307\u6458\u3057\u305f\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u516c\u958b\u3055\u308c\u3066\u3044\u305f selector \u306f\u3001\u6982\u5ff5\u7684\u306b\u306f\u6b21\u306e\u3088\u3046\u306a\u8868\u8a18\u3067\u3042\u3063\u305f\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cac:TaxTotal\/TaxAmount\/@currency = cbc:TaxCurrencyCode<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001UBL \u3067\u306f <code>TaxAmount<\/code> \u306f <code>cbc:TaxAmount<\/code> \u3067\u3042\u308a\u3001\u901a\u8ca8\u5c5e\u6027\u306f <code>@currencyID<\/code> \u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001<code>cbc:TaxCurrencyCode<\/code> \u306f <code>cac:TaxTotal<\/code> \u306e\u5b50\u3067\u306f\u306a\u304f\u3001document level \u306e\u8981\u7d20\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u610f\u56f3\u3055\u308c\u308b selector \u306f\u6b21\u306e\u3088\u3046\u306a\u5f62\u306b\u306a\u308b\u306f\u305a\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">\/ubl:Invoice\/cac:TaxTotal[\r\n  cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:TaxCurrencyCode\r\n]<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u5831\u544a\u306f\u3001\u3053\u306e selector \u3092\u6b63\u3057\u304f\u89e3\u91c8\u3057\u305f\u5f8c\u306b\u3001\u305d\u306e\u9078\u629e\u3055\u308c\u305f <code>cac:TaxTotal<\/code> \u306e\u914d\u4e0b\u69cb\u9020\u304c syntax binding \u3068\u30b5\u30f3\u30d7\u30eb\u3067\u4e00\u81f4\u3057\u3066\u3044\u306a\u3044\u3001\u3068\u3044\u3046\u554f\u984c\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3064\u307e\u308a\u3001PEPPOL-22903 \u306f <code>cac:TaxTotal<\/code> \u306e\u9078\u629e\u6761\u4ef6\u306b\u95a2\u3059\u308b\u554f\u984c\u3067\u3042\u308a\u3001\u672c\u7a3f\u3067\u6271\u3046\u554f\u984c\u306f\u3001\u9078\u629e\u3055\u308c\u305f <code>cac:TaxTotal<\/code> \u306e\u5b50\u69cb\u9020\u306b\u95a2\u3059\u308b\u554f\u984c\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_basic_rule\u751f\u6210\u306b\u3088\u3063\u3066\u5206\u304b\u3063\u305f\u3053\u3068\">12. Basic Rule\u751f\u6210\u306b\u3088\u3063\u3066\u5206\u304b\u3063\u305f\u3053\u3068<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u691c\u8a3c\u304b\u3089\u3001Basic Rule \u3092 syntax binding \u304b\u3089\u6a5f\u68b0\u751f\u6210\u3059\u308b\u3053\u3068\u306b\u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u6b21\u306e\u610f\u7fa9\u304c\u3042\u308b\u3053\u3068\u304c\u5206\u304b\u3063\u305f\u3002<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 25%;\">\n<col style=\"width: 75%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">\u89b3\u70b9<\/th>\n<th class=\"tableblock halign-left valign-top\">\u610f\u7fa9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u4ed5\u69d8\u306e\u4e00\u8cab\u6027\u78ba\u8a8d<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u516c\u958b syntax binding \u3068\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u306e\u4e0d\u6574\u5408\u3092\u6a5f\u68b0\u7684\u306b\u691c\u51fa\u3067\u304d\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u5b9f\u88c5\u8005\u652f\u63f4<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">AP\u3001SMP\u3001\u691c\u8a3c\u30b5\u30fc\u30d3\u30b9\u3001ERP \u30d9\u30f3\u30c0\u30fc\u304c\u3001\u540c\u3058 syntax binding \u306b\u57fa\u3065\u304f\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u5171\u6709\u3067\u304d\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u89e3\u91c8\u306e\u3070\u3089\u3064\u304d\u4f4e\u6e1b<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u624b\u4f5c\u696d\u3067\u300c\u8a31\u5bb9\u3055\u308c\u308b UBL \u8981\u7d20\u300d\u3092\u5224\u65ad\u3059\u308b\u5fc5\u8981\u304c\u6e1b\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b5\u30fc\u30d3\u30b9\u54c1\u8cea\u5411\u4e0a<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u691c\u8a3c\u30b5\u30fc\u30d3\u30b9\u3054\u3068\u306e\u5224\u5b9a\u5dee\u7570\u3092\u6e1b\u3089\u3057\u3001\u30a8\u30e9\u30fc\u539f\u56e0\u3092\u8aac\u660e\u3057\u3084\u3059\u304f\u306a\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u4ed5\u69d8\u6539\u5584\u3078\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b5\u30f3\u30d7\u30eb\u3001syntax binding\u3001business rule \u306e\u4e0d\u6574\u5408\u3092\u5177\u4f53\u7684\u306b\u5831\u544a\u3067\u304d\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>\u7279\u306b\u3001\u4eca\u56de\u306e\u3088\u3046\u306b\u3001\u30b5\u30f3\u30d7\u30eb\u306b\u306f\u5b58\u5728\u3059\u308b\u304c syntax binding \u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u8981\u7d20\u304c\u691c\u51fa\u3055\u308c\u305f\u5834\u5408\u3001\u4ed5\u69d8\u4f5c\u6210\u5074\u306f\u6b21\u306e\u5224\u65ad\u3092\u660e\u78ba\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. \u30b5\u30f3\u30d7\u30eb\u304c\u8aa4\u3063\u3066\u3044\u308b\u306e\u304b\u3002\r\n2. syntax binding \u304c\u6f0f\u308c\u3066\u3044\u308b\u306e\u304b\u3002\r\n3. \u4f8b\u5916\u7684\u306b\u8a31\u5bb9\u3059\u308b\u304c\u3001syntax binding \u306b\u306f\u8f09\u305b\u306a\u3044\u8a2d\u8a08\u306a\u306e\u304b\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e09\u3064\u76ee\u3092\u63a1\u308b\u5834\u5408\u3067\u3082\u3001\u305d\u306e\u65b9\u91dd\u306f\u660e\u793a\u3055\u308c\u308b\u3079\u304d\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u5b9f\u88c5\u4e0a\u306e\u6ce8\u610f\u70b9\">13. \u5b9f\u88c5\u4e0a\u306e\u6ce8\u610f\u70b9<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Basic Rule \u3092\u6a5f\u68b0\u751f\u6210\u3059\u308b\u5834\u5408\u3001\u3044\u304f\u3064\u304b\u6ce8\u610f\u70b9\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_selector\u306e\u6b63\u898f\u5316\">13.1. selector\u306e\u6b63\u898f\u5316<\/h3>\n<div class=\"paragraph\">\n<p>JP PINT syntax binding \u3067\u306f\u3001\u540c\u3058 UBL \u8981\u7d20\u304c selector \u306b\u3088\u308a\u7570\u306a\u308b\u610f\u5473\u3067\u4f7f\u3044\u5206\u3051\u3089\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3068\u3048\u3070\u3001<code>cac:AdditionalDocumentReference<\/code> \u306f\u3001<code>cbc:DocumentTypeCode = '130'<\/code> \u306e\u5834\u5408\u3068\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u3067\u3001\u7570\u306a\u308b\u610f\u5473\u3092\u6301\u3064\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">cbc:DocumentTypeCode = '130'\r\n  Invoiced object identifier\r\n\r\nnot(cbc:DocumentTypeCode = '130')\r\n  Additional supporting document<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u305f\u3081\u3001Basic Rule \u751f\u6210\u3067\u306f\u3001selector \u3092\u305d\u306e\u307e\u307e\u89aa\u30d1\u30b9\u306e\u4e00\u90e8\u3068\u3057\u3066\u6271\u3046\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_normalize_space\u3092\u4f7f\u308f\u306a\u3044\u65b9\u91dd\">13.2. normalize-space\u3092\u4f7f\u308f\u306a\u3044\u65b9\u91dd<\/h3>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306f\u3001\u30b3\u30fc\u30c9\u5024\u306e\u6bd4\u8f03\u306b <code>normalize-space(.)<\/code> \u306f\u4f7f\u7528\u3057\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Basic Rule \u306f\u3001\u69cb\u9020\u3068 selector \u306e\u53b3\u683c\u306a\u9069\u7528\u3092\u76ee\u7684\u3068\u3059\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u3088\u3046\u306a\u5024\u306f\u3001\u53b3\u683c\u306b\u306f <code>SEPA<\/code> \u3068\u540c\u4e00\u3067\u306f\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cbc:ID schemeID=\" SEPA\"&gt;123456789&lt;\/cbc:ID&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u5834\u5408\u3001\u6b21\u306e selector \u306b\u306f\u4e00\u81f4\u3057\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">cbc:ID\/@schemeID = 'SEPA'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001<code>normalize-space(.)<\/code> \u3092\u4f7f\u3046\u3068\u3001\u524d\u5f8c\u306e\u7a7a\u767d\u304c\u9664\u53bb\u3055\u308c\u308b\u305f\u3081\u3001\u6b21\u306e selector \u306b\u306f\u4e00\u81f4\u3057\u3066\u3057\u307e\u3046\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">cbc:ID\/@schemeID[normalize-space(.) = 'SEPA']<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001<code>schemeID<\/code> \u306f\u30b3\u30fc\u30c9\u5024\u3067\u3042\u308a\u3001\u4f59\u5206\u306a\u7a7a\u767d\u3092\u542b\u3080\u5024\u3092\u540c\u4e00\u8996\u3057\u3066\u53d7\u3051\u5165\u308c\u308b\u3079\u304d\u304b\u3069\u3046\u304b\u306f\u3001Basic Rule \u306e\u5f79\u5272\u3067\u306f\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u540c\u69d8\u306b\u3001\u6b21\u306e\u3088\u3046\u306a <code>VAT<\/code> \u306e\u524d\u5f8c\u306b\u7a7a\u767d\u3092\u542b\u3080\u5024\u3082\u3001\u53b3\u683c\u306b\u306f <code>VAT<\/code> \u3068\u540c\u4e00\u3067\u306f\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cac:TaxScheme&gt;\r\n  &lt;cbc:ID&gt; VAT &lt;\/cbc:ID&gt;\r\n&lt;\/cac:TaxScheme&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u5834\u5408\u3001\u6b21\u306e selector \u306b\u306f\u4e00\u81f4\u3057\u306a\u3044\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">cac:TaxScheme\/cbc:ID = 'VAT'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u306f\u3001Basic Rule \u3068\u3057\u3066\u306f\u610f\u56f3\u3057\u305f\u6319\u52d5\u3067\u3042\u308b\u3002Basic Rule \u306f\u3001syntax binding \u306b\u5b9a\u7fa9\u3055\u308c\u305f selector \u6761\u4ef6\u3092\u53b3\u683c\u306b\u9069\u7528\u3057\u3001\u69cb\u9020\u4e0a\u3069\u306e\u30b0\u30eb\u30fc\u30d7\u306b\u5c5e\u3059\u308b\u304b\u3092\u5224\u5b9a\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u3088\u3046\u306a\u5024\u306e\u6b63\u5f53\u6027\u306f\u3001Basic Rule \u3067\u7de9\u304f\u5438\u53ce\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u30b3\u30fc\u30c9\u30ea\u30b9\u30c8\u691c\u8a3c\u3084\u5024\u691c\u8a3c\u3067\u6271\u3046\u3079\u304d\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u4eca\u56de\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306f\u3001\u6b21\u306e\u3088\u3046\u306a selector \u306f\u5143\u306e\u6bd4\u8f03\u5f0f\u3092\u7dad\u6301\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">cbc:ID\/@schemeID = 'SEPA'\r\ncbc:ID\/@schemeID != 'SEPA'\r\ncac:TaxScheme\/cbc:ID = 'VAT'\r\ncac:TaxScheme\/cbc:ID != 'VAT'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305f\u3060\u3057\u3001<code>cbc:DocumentTypeCode != '130'<\/code> \u306b\u3064\u3044\u3066\u306f\u4f8b\u5916\u7684\u306b\u6271\u3063\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>cbc:DocumentTypeCode<\/code> \u304c\u5b58\u5728\u3057\u306a\u3044 <code>cac:AdditionalDocumentReference<\/code> \u3082 additional supporting document \u3068\u3057\u3066\u6271\u3046\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306b\u5909\u63db\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">cbc:DocumentTypeCode != '130'<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xpath\" data-lang=\"xpath\">not(cbc:DocumentTypeCode = '130')<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u6b21\u306e\u4e21\u65b9\u304c additional supporting document \u5074\u3068\u3057\u3066\u6271\u308f\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cac:AdditionalDocumentReference&gt;\r\n  &lt;cbc:ID&gt;DOC-001&lt;\/cbc:ID&gt;\r\n  &lt;cac:Attachment&gt;\r\n    ...\r\n  &lt;\/cac:Attachment&gt;\r\n&lt;\/cac:AdditionalDocumentReference&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cac:AdditionalDocumentReference&gt;\r\n  &lt;cbc:ID&gt;DOC-002&lt;\/cbc:ID&gt;\r\n  &lt;cbc:DocumentTypeCode&gt;916&lt;\/cbc:DocumentTypeCode&gt;\r\n  &lt;cac:Attachment&gt;\r\n    ...\r\n  &lt;\/cac:Attachment&gt;\r\n&lt;\/cac:AdditionalDocumentReference&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4e00\u65b9\u3001\u6b21\u306e\u3088\u3046\u306b <code>cbc:DocumentTypeCode<\/code> \u304c <code>130<\/code> \u306e\u5834\u5408\u306f\u3001invoiced object identifier \u5074\u3068\u3057\u3066\u6271\u308f\u308c\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;cac:AdditionalDocumentReference&gt;\r\n  &lt;cbc:ID&gt;OBJ-001&lt;\/cbc:ID&gt;\r\n  &lt;cbc:DocumentTypeCode&gt;130&lt;\/cbc:DocumentTypeCode&gt;\r\n&lt;\/cac:AdditionalDocumentReference&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_allow_shadow\u65b9\u5f0f\u3068whitelist\u65b9\u5f0f\">13.3. allow-shadow\u65b9\u5f0f\u3068whitelist\u65b9\u5f0f<\/h3>\n<div class=\"paragraph\">\n<p>Schematron \u306e\u4ed5\u69d8\u4e0a\u3001\u540c\u3058 pattern \u5185\u3067\u3001\u3088\u308a\u5177\u4f53\u7684\u306a rule \u3068 fallback rule \u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u306f\u53ef\u80fd\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001\u51e6\u7406\u7cfb\u306b\u3088\u3063\u3066\u306f\u3001\u7a7a rule \u306b\u3088\u308b shadowing \u304c\u671f\u5f85\u3069\u304a\u308a\u306b\u52d5\u304b\u306a\u3044\u5834\u5408\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u306e\u305f\u3081\u3001\u5b9f\u904b\u7528\u3067\u306f\u3001\u6b21\u306e whitelist \u65b9\u5f0f\u306e\u65b9\u304c\u5b89\u5b9a\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;sch:rule context=\"\/ubl:Invoice\/*\"&gt;\r\n  &lt;sch:assert test=\"\r\n    self::cbc:CustomizationID or\r\n    self::cbc:ProfileID or\r\n    self::cbc:ID or\r\n    self::cbc:IssueDate or\r\n    self::cac:AccountingSupplierParty or\r\n    self::cac:TaxTotal or\r\n    self::cac:InvoiceLine\r\n  \"&gt;\r\n    Document MUST NOT contain elements under ubl:Invoice that are not part of the JP PINT data model.\r\n  &lt;\/sch:assert&gt;\r\n&lt;\/sch:rule&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u4eca\u5f8c\u306e\u6539\u5584\u63d0\u6848\">14. \u4eca\u5f8c\u306e\u6539\u5584\u63d0\u6848<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e\u7d50\u679c\u304b\u3089\u3001JP PINT \u306b\u3064\u3044\u3066\u306f\u3001\u6b21\u306e\u6539\u5584\u304c\u671b\u307e\u3057\u3044\u3002<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 25%;\">\n<col style=\"width: 75%;\">\n<\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">\u9805\u76ee<\/th>\n<th class=\"tableblock halign-left valign-top\">\u63d0\u6848<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Basic Rule\u306e\u6574\u5099<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">JP PINT syntax binding \u304b\u3089 Basic Model Rule \u3092\u6a5f\u68b0\u751f\u6210\u3057\u3001\u516c\u5f0f\u307e\u305f\u306f\u6e96\u516c\u5f0f\u306e\u691c\u8a3c\u30eb\u30fc\u30eb\u3068\u3057\u3066\u5171\u6709\u3059\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b5\u30f3\u30d7\u30eb\u3068syntax binding\u306e\u6574\u5408\u6027\u78ba\u8a8d<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">download resource \u306b\u542b\u307e\u308c\u308b XML \u30b5\u30f3\u30d7\u30eb\u3092\u3001syntax binding \u7531\u6765\u306e Basic Rule \u3067\u691c\u8a3c\u3059\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">IBT-192-1\u306e\u8ffd\u52a0\u691c\u8a0e<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u7a0e\u4f1a\u8a08\u901a\u8ca8\u306e tax breakdown \u306b <code>cac:TaxScheme\/cbc:ID<\/code> \u3092\u8a31\u5bb9\u3059\u308b\u306a\u3089\u3001<code>IBT-192-1<\/code> \u3068\u3057\u3066\u660e\u793a\u3059\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">`cbc:UBLVersionID`\u306e\u6271\u3044\u660e\u78ba\u5316<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u30b5\u30f3\u30d7\u30eb\u306b\u6b8b\u3059\u306a\u3089 syntax binding \u307e\u305f\u306f UBL-CR \u76f8\u5f53 rule \u3067\u660e\u793a\u3059\u308b\u3002\u4e0d\u8981\u306a\u3089\u30b5\u30f3\u30d7\u30eb\u304b\u3089\u524a\u9664\u3059\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">EIPA\u3067\u306e\u5171\u540c\u958b\u767a<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Basic Rule \u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u3001\u691c\u8a3c\u7d50\u679c\u3001\u5dee\u5206\u691c\u51fa\u30ec\u30dd\u30fc\u30c8\u3092 EIPA \u3067\u5171\u540c\u6574\u5099\u3057\u3001AP \u3084\u691c\u8a3c\u30b5\u30fc\u30d3\u30b9\u9593\u3067\u5171\u6709\u3059\u308b\u3002<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u307e\u3068\u3081\">15. \u307e\u3068\u3081<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>JP PINT \u306e syntax binding \u306f\u3001JP PINT data model \u3068 UBL XML syntax \u3092\u7d50\u3073\u4ed8\u3051\u308b\u91cd\u8981\u306a\u5b9a\u7fa9\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3057\u304b\u3057\u3001\u305d\u306e syntax binding \u3068\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u304c\u4e00\u81f4\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u5b9f\u88c5\u8005\u306f\u3001\u30b5\u30f3\u30d7\u30eb\u3092\u4fe1\u3058\u308b\u3079\u304d\u304b\u3001syntax binding \u3092\u4fe1\u3058\u308b\u3079\u304d\u304b\u5224\u65ad\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306e Basic Rule \u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3088\u308b\u691c\u8a3c\u3067\u306f\u3001\u6b21\u306e\u4e8c\u3064\u306e\u4e0d\u6574\u5408\u304c\u660e\u78ba\u306b\u306a\u3063\u305f\u3002<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-text\" data-lang=\"text\">1. \u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u306b cbc:UBLVersionID \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304c\u3001syntax binding \u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002\r\n2. \u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u306e\u7a0e\u4f1a\u8a08\u901a\u8ca8 Tax breakdown \u306b cac:TaxScheme\/cbc:ID \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304c\u3001\r\n   syntax binding \u3067\u306f\u5bfe\u5fdc\u3059\u308b IBT-192-1 \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u3089\u306f\u3001\u5358\u306a\u308b\u5b9f\u88c5\u4e0a\u306e\u7d30\u90e8\u3067\u306f\u306a\u304f\u3001\u516c\u958b\u4ed5\u69d8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5185\u90e8\u4e00\u8cab\u6027\u306b\u95a2\u308f\u308b\u554f\u984c\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30b5\u30f3\u30d7\u30eb\u3092\u8a02\u6b63\u3059\u308b\u306e\u304b\u3001syntax binding \u3092\u8a02\u6b63\u3059\u308b\u306e\u304b\u3001\u3042\u308b\u3044\u306f\u4f8b\u5916\u3068\u3057\u3066\u660e\u793a\u3059\u308b\u306e\u304b\u3092\u3001\u4ed5\u69d8\u3068\u3057\u3066\u660e\u78ba\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305f\u3001\u4eca\u56de\u306e\u7d50\u679c\u306f\u3001Basic Rule \u3092\u624b\u4f5c\u696d\u3067\u6574\u5099\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001syntax binding \u304b\u3089\u6a5f\u68b0\u751f\u6210\u3057\u3001\u691c\u8a3c\u30b5\u30fc\u30d3\u30b9\u9593\u3067\u5171\u6709\u3059\u308b\u3053\u3068\u306e\u91cd\u8981\u6027\u3092\u793a\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>JP PINT \u3092\u5b89\u5b9a\u3057\u305f\u904b\u7528\u4ed5\u69d8\u3068\u3057\u3066\u767a\u5c55\u3055\u305b\u308b\u305f\u3081\u306b\u306f\u3001syntax binding\u3001Schematron\u3001\u30b5\u30f3\u30d7\u30eb XML\u3001Help Desk \u3067\u306e\u8aac\u660e\u304c\u76f8\u4e92\u306b\u6574\u5408\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u4e0d\u53ef\u6b20\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_\u53c2\u8003\">16. \u53c2\u8003<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p><a href=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2026\/05\/jp_pint_basic_rule.zip\">\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u30b9\u30ad\u30fc\u30de\u30c8\u30ed\u30f3\u306ezip\u30d5\u30a1\u30a4\u30eb<\/a><\/p>\n<\/div>\n<div class=\"ulist bibliography\">\n<ul class=\"bibliography\">\n<li>\n<p><a id=\"ref0\"><\/a>[0] Japan PINT Invoice UBL Example2-TaxAcctCur.xml<\/p>\n<div class=\"listingblock scroll-source\">\n<div class=\"content\" style=\"width: 100%; height: 600px; overflow-y: scroll; border: 1px #999 solid;\">\n<pre class=\"highlight\"><code class=\"language-python\" data-lang=\"python\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\" xmlns:ccts=\"urn:un:unece:uncefact:documentation:2\" xmlns:ext=\"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2\" xmlns:qdt=\"urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2\" xmlns:udt=\"urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"&gt;\r\n\r\n&lt;!-- \r\nJapan common commercial invoice, example2-Foreign Currency\r\n--&gt;\r\n\r\n\t&lt;cbc:UBLVersionID&gt;2.1&lt;\/cbc:UBLVersionID&gt;\r\n\t&lt;cbc:CustomizationID&gt;urn:peppol:pint:billing-1@jp-1&lt;\/cbc:CustomizationID&gt; \t&lt;!-- IBT-024 - Specification identifier --&gt;\r\n\t&lt;cbc:ProfileID&gt;urn:peppol:bis:billing&lt;\/cbc:ProfileID&gt; &lt;!-- IBT-023 - Business process type --&gt;\r\n\t&lt;cbc:ID&gt;156&lt;\/cbc:ID&gt; &lt;!-- IBT-001 - Invoice number --&gt;\r\n\t&lt;cbc:IssueDate&gt;2023-10-24&lt;\/cbc:IssueDate&gt; &lt;!-- IBT-002 - Invoice issue date --&gt;\r\n\t&lt;cbc:DueDate&gt;2023-11-20&lt;\/cbc:DueDate&gt; &lt;!-- IBT-009 - Payment due date --&gt;\r\n\t&lt;cbc:InvoiceTypeCode&gt;380&lt;\/cbc:InvoiceTypeCode&gt; &lt;!-- IBT-003 - Invoice type code --&gt;\r\n\t&lt;cbc:DocumentCurrencyCode&gt;EUR&lt;\/cbc:DocumentCurrencyCode&gt; &lt;!-- IBT-005 - Invoice currency code --&gt;\r\n\t&lt;cbc:TaxCurrencyCode&gt;JPY&lt;\/cbc:TaxCurrencyCode&gt; &lt;!-- IBT-006 - Tax accounting currency --&gt;\r\n\t&lt;cac:InvoicePeriod&gt; &lt;!-- IBG-14 - INVOICING PERIOD --&gt;\r\n\t\t&lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!-- IBT-073 - Invoicing period start date --&gt;\r\n\t\t&lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!-- IBT-074 - Invoicing period end date --&gt;\r\n\t&lt;\/cac:InvoicePeriod&gt;\r\n\t&lt;cac:AccountingSupplierParty&gt; &lt;!-- IBG-04 - SELLER --&gt;\r\n\t\t&lt;cac:Party&gt;\r\n\t\t\t&lt;cbc:EndpointID schemeID=\"0088\"&gt;9482348239847239874&lt;\/cbc:EndpointID&gt; &lt;!-- IBT-034 - Seller electronic address, IBT-034-1 - Scheme identifier --&gt;\r\n\t\t\t&lt;cac:PostalAddress&gt; &lt;!-- IBG-05 - SELLER POSTAL ADDRESS --&gt;\r\n\t\t\t\t&lt;cac:Country&gt;\r\n\t\t\t\t\t&lt;cbc:IdentificationCode&gt;GB&lt;\/cbc:IdentificationCode&gt; &lt;!-- IBT-040 - Seller country code --&gt;\r\n\t\t\t\t&lt;\/cac:Country&gt;\r\n\t\t\t&lt;\/cac:PostalAddress&gt;\r\n\t\t\t&lt;cac:PartyTaxScheme&gt;\r\n\t\t\t\t&lt;cbc:CompanyID&gt;T1234567890123&lt;\/cbc:CompanyID&gt; &lt;!-- IBT-031 - Seller TAX identifier --&gt;\r\n\t\t\t\t&lt;cac:TaxScheme&gt;\r\n\t\t\t\t\t&lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!-- IBT-031, qualifier --&gt;\r\n\t\t\t\t&lt;\/cac:TaxScheme&gt;\r\n\t\t\t&lt;\/cac:PartyTaxScheme&gt;\r\n\t\t\t&lt;cac:PartyLegalEntity&gt;\r\n\t\t\t\t&lt;cbc:RegistrationName&gt;XYZ Digital Learning Services, Inc.&lt;\/cbc:RegistrationName&gt; &lt;!-- IBT-027 - Seller name --&gt;\r\n\t\t\t&lt;\/cac:PartyLegalEntity&gt;\r\n\t\t&lt;\/cac:Party&gt;\r\n\t&lt;\/cac:AccountingSupplierParty&gt;\r\n\t&lt;cac:AccountingCustomerParty&gt; &lt;!-- IBG-07 - BUYER --&gt;\r\n\t\t&lt;cac:Party&gt;\r\n\t\t\t&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\t\t\t&lt;cac:PostalAddress&gt; &lt;!-- IBG-08 - BUYER POSTAL ADDRESS --&gt;\r\n\t\t\t\t&lt;cac:Country&gt;\r\n\t\t\t\t\t&lt;cbc:IdentificationCode&gt;JP&lt;\/cbc:IdentificationCode&gt; &lt;!-- IBT-055 - Buyer country code --&gt;\r\n\t\t\t\t&lt;\/cac:Country&gt;\r\n\t\t\t&lt;\/cac:PostalAddress&gt;\r\n\t\t\t&lt;cac:PartyLegalEntity&gt;\r\n\t\t\t\t&lt;cbc:RegistrationName&gt;\u3007\u3007 Bussan Co., Ltd.&lt;\/cbc:RegistrationName&gt; &lt;!-- IBT-044 - Buyer name --&gt;\r\n\t\t\t&lt;\/cac:PartyLegalEntity&gt;\r\n\t\t&lt;\/cac:Party&gt;\r\n\t&lt;\/cac:AccountingCustomerParty&gt;\r\n\t&lt;cac:TaxRepresentativeParty&gt; &lt;!-- IBG-11 - SELLER TAX REPRESENTATIVE PARTY --&gt;\r\n    \t&lt;cac:PartyName&gt;\r\n        \t&lt;cbc:Name&gt;TaxRepresentative Name&lt;\/cbc:Name&gt; &lt;!-- IBT-062 - Seller tax representative name --&gt;\r\n    \t&lt;\/cac:PartyName&gt;\r\n    \t&lt;cac:PostalAddress&gt; &lt;!-- IBG-12 - SELLER TAX REPRESENTATIVE POSTAL ADDRESS --&gt;\r\n        \t&lt;cac:Country&gt;\r\n            \t&lt;cbc:IdentificationCode&gt;JP&lt;\/cbc:IdentificationCode&gt; &lt;!-- IBT-069 - Tax representative country code --&gt;\r\n        \t&lt;\/cac:Country&gt;\r\n    \t&lt;\/cac:PostalAddress&gt;\r\n    \t&lt;cac:PartyTaxScheme&gt;\r\n        \t&lt;cbc:CompanyID&gt;T7654321098765&lt;\/cbc:CompanyID&gt; &lt;!-- IBT-063 - Seller tax representative TAX identifier --&gt; \r\n        \t&lt;cac:TaxScheme&gt;\r\n            \t&lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!-- IBT-063, qualifier --&gt;\r\n        \t&lt;\/cac:TaxScheme&gt;\r\n    \t&lt;\/cac:PartyTaxScheme&gt;\r\n\t&lt;\/cac:TaxRepresentativeParty&gt;\r\n\t&lt;cac:PaymentMeans&gt; &lt;!-- IBG-16 - PAYMENT INSTRUCTIONS --&gt;\r\n\t    &lt;cbc:PaymentMeansCode name=\"Credit card\"&gt;54&lt;\/cbc:PaymentMeansCode&gt; &lt;!-- IBT-081 - Payment means type code, IBT-082 Payment means text --&gt;\r\n\t\t&lt;cbc:PaymentID&gt;9387439&lt;\/cbc:PaymentID&gt; &lt;!-- IBT-083 Remittance information --&gt;\r\n\t\t&lt;cac:CardAccount&gt; &lt;!-- IBG-18 PAYMENT CARD INFORMATION --&gt;\r\n        \t&lt;cbc:PrimaryAccountNumberID&gt;123236&lt;\/cbc:PrimaryAccountNumberID&gt; &lt;!-- IBT-087 Payment card primary account number --&gt;\r\n        \t&lt;cbc:NetworkID&gt;VISA&lt;\/cbc:NetworkID&gt;\r\n        \t&lt;cbc:HolderName&gt;Card holders name&lt;\/cbc:HolderName&gt; &lt;!-- IBT-088 Payment card holder name --&gt;\r\n    \t&lt;\/cac:CardAccount&gt;\r\n\t&lt;\/cac:PaymentMeans&gt; \r\n\t&lt;cac:TaxTotal&gt;\r\n\t\t&lt;cbc:TaxAmount currencyID=\"EUR\"&gt;250&lt;\/cbc:TaxAmount&gt; &lt;!-- IBT-110 - Invoice total TAX amount --&gt;\r\n\t\t&lt;cac:TaxSubtotal&gt; &lt;!-- IBG-23 - TAX BREAKDOWN --&gt;\r\n\t\t\t&lt;cbc:TaxableAmount currencyID=\"EUR\"&gt;2500&lt;\/cbc:TaxableAmount&gt; &lt;!-- IBT-116 - TAX category taxable amount --&gt;\r\n\t\t\t&lt;cbc:TaxAmount currencyID=\"EUR\"&gt;250&lt;\/cbc:TaxAmount&gt; &lt;!-- IBT-117 - TAX category tax amount --&gt;\r\n\t\t\t&lt;cac:TaxCategory&gt;\r\n\t\t\t\t&lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!-- IBT-118 - TAX category code --&gt;\r\n\t\t\t\t&lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!-- IBT-119 - TAX category rate --&gt;\r\n\t\t\t\t&lt;cac:TaxScheme&gt;\r\n\t\t\t\t\t&lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!-- IBT-118, qualifier --&gt;\r\n\t\t\t\t&lt;\/cac:TaxScheme&gt;\r\n\t\t\t&lt;\/cac:TaxCategory&gt;\r\n\t\t&lt;\/cac:TaxSubtotal&gt;\r\n\t&lt;\/cac:TaxTotal&gt;\r\n\t&lt;cac:TaxTotal&gt; &lt;!-- IBG-37 - DOCUMENT TOTALS IN TAX ACCOUNTING CURRENCY --&gt;\r\n\t\t&lt;cbc:TaxAmount currencyID=\"JPY\"&gt;32500&lt;\/cbc:TaxAmount&gt; &lt;!-- IBT-111 - Invoice total TAX amount in tax accounting currency --&gt;\r\n\t\t&lt;cac:TaxSubtotal&gt; &lt;!-- IBG-38 - TAX BREAKDOWN IN ACCOUNTING CURRENCY --&gt;\r\n\t\t\t&lt;cbc:TaxAmount currencyID=\"JPY\"&gt;32500&lt;\/cbc:TaxAmount&gt; &lt;!-- IBT-190 - TAX category tax amount in accounting currency --&gt;\r\n\t\t\t&lt;cac:TaxCategory&gt;\r\n\t\t\t\t&lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!-- IBT-192 - TAX category code for tax category tax amount in accounting currency --&gt;\r\n\t\t\t\t&lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!-- IBT-193 - TAX category rate for tax category tax amount in accounting currency --&gt;\r\n\t\t\t\t&lt;cac:TaxScheme&gt;\r\n\t\t\t\t\t&lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!-- IBT-192, qualifier --&gt;\r\n\t\t\t\t&lt;\/cac:TaxScheme&gt;\r\n\t\t\t&lt;\/cac:TaxCategory&gt;\r\n\t\t&lt;\/cac:TaxSubtotal&gt;\r\n\t&lt;\/cac:TaxTotal&gt;\r\n\t&lt;cac:LegalMonetaryTotal&gt; &lt;!-- IBG-22 - DOCUMENT TOTALS --&gt;\r\n\t\t&lt;cbc:LineExtensionAmount currencyID=\"EUR\"&gt;2500&lt;\/cbc:LineExtensionAmount&gt; &lt;!-- IBT-106 - Sum of Invoice line net amount --&gt;\r\n\t\t&lt;cbc:TaxExclusiveAmount currencyID=\"EUR\"&gt;2500&lt;\/cbc:TaxExclusiveAmount&gt; &lt;!-- IBT-109 - Invoice total amount without TAX --&gt;\r\n\t\t&lt;cbc:TaxInclusiveAmount currencyID=\"EUR\"&gt;2750&lt;\/cbc:TaxInclusiveAmount&gt; &lt;!-- IBT-112 - Invoice total amount with TAX --&gt;\r\n\t\t&lt;cbc:AllowanceTotalAmount currencyID=\"EUR\"&gt;0&lt;\/cbc:AllowanceTotalAmount&gt; &lt;!-- IBT-107 - Sum of allowances on document level --&gt;\r\n\t\t&lt;cbc:ChargeTotalAmount currencyID=\"EUR\"&gt;0&lt;\/cbc:ChargeTotalAmount&gt; &lt;!-- IBT-108 - Sum of charges on document level --&gt;\r\n\t\t&lt;cbc:PrepaidAmount currencyID=\"EUR\"&gt;0&lt;\/cbc:PrepaidAmount&gt; &lt;!-- IBT-113 - Paid amount --&gt;\r\n\t\t&lt;cbc:PayableRoundingAmount currencyID=\"EUR\"&gt;0&lt;\/cbc:PayableRoundingAmount&gt; &lt;!-- IBT-114 - Rounding amount --&gt;\r\n\t\t&lt;cbc:PayableAmount currencyID=\"EUR\"&gt;2750&lt;\/cbc:PayableAmount&gt; &lt;!-- IBT-115 - Amount due for payment --&gt;\r\n\t&lt;\/cac:LegalMonetaryTotal&gt;\r\n\t&lt;cac:InvoiceLine&gt; &lt;!-- IBG-25 - INVOICE LINE --&gt;\r\n\t\t&lt;cbc:ID&gt;1&lt;\/cbc:ID&gt; &lt;!-- IBT-126 - Invoice line identifier --&gt;\r\n\t\t&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\t\t&lt;cbc:LineExtensionAmount currencyID=\"EUR\"&gt;2500&lt;\/cbc:LineExtensionAmount&gt; &lt;!-- IBT-131 - Invoice line net amount --&gt;\r\n\t\t&lt;cac:InvoicePeriod&gt; &lt;!-- IBG-26 - INVOICE LINE PERIOD --&gt;\r\n\t\t\t&lt;cbc:StartDate&gt;2023-10-18&lt;\/cbc:StartDate&gt; &lt;!-- IBT-134 - Invoice line period start date --&gt;\r\n\t\t\t&lt;cbc:EndDate&gt;2023-10-18&lt;\/cbc:EndDate&gt; &lt;!-- IBT-135 - Invoice line period end date --&gt;\r\n\t\t&lt;\/cac:InvoicePeriod&gt;\r\n\t\t&lt;cac:OrderLineReference&gt;\r\n\t\t\t&lt;cbc:LineID&gt;1&lt;\/cbc:LineID&gt; &lt;!-- IBT-132 - Referenced purchase order line reference --&gt;\r\n\t\t\t&lt;cac:OrderReference&gt;\r\n\t\t\t\t&lt;cbc:ID&gt;OR-123&lt;\/cbc:ID&gt; &lt;!-- IBT-183 - Purchase order reference --&gt;\r\n\t\t\t&lt;\/cac:OrderReference&gt;\r\n\t\t&lt;\/cac:OrderLineReference&gt;\r\n\t\t&lt;cac:Item&gt; &lt;!-- IBG-31 - ITEM INFORMATION --&gt;\r\n\t\t\t&lt;cbc:Name&gt;1-day online lecture course&lt;\/cbc:Name&gt; &lt;!-- IBT-153 - Item name --&gt;\r\n\t\t\t&lt;cac:OriginCountry&gt;\r\n\t\t\t\t&lt;cbc:IdentificationCode&gt;BE&lt;\/cbc:IdentificationCode&gt; &lt;!-- IBT-159 - Item country of origin --&gt;\r\n\t\t\t&lt;\/cac:OriginCountry&gt;\r\n\t\t\t&lt;cac:ClassifiedTaxCategory&gt; &lt;!-- IBG-30 - LINE TAX INFORMATION --&gt;\r\n\t\t\t\t&lt;cbc:ID&gt;S&lt;\/cbc:ID&gt; &lt;!-- IBT-151 - Invoiced item TAX category code --&gt;\r\n\t\t\t\t&lt;cbc:Percent&gt;10&lt;\/cbc:Percent&gt; &lt;!-- IBT-152 - Invoiced item TAX rate --&gt;\r\n\t\t\t\t&lt;!-- cbc:PerUnitAmount, IBT-166 - Unit TAX --&gt;\r\n\t\t\t\t&lt;cac:TaxScheme&gt;\r\n\t\t\t\t\t&lt;cbc:ID&gt;VAT&lt;\/cbc:ID&gt; &lt;!-- IBT-167 - Tax Scheme --&gt; \r\n\t\t\t\t&lt;\/cac:TaxScheme&gt;\r\n\t\t\t&lt;\/cac:ClassifiedTaxCategory&gt;\r\n\t\t&lt;\/cac:Item&gt;\r\n\t\t&lt;cac:Price&gt; &lt;!-- IBG-29 - PRICE DETAILS --&gt;\r\n\t\t\t&lt;cbc:PriceAmount currencyID=\"EUR\"&gt;500&lt;\/cbc:PriceAmount&gt; &lt;!-- IBT-146 - Item net price --&gt;\r\n\t\t\t&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\t\t&lt;\/cac:Price&gt;\r\n\t&lt;\/cac:InvoiceLine&gt;\r\n&lt;\/Invoice&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p><a id=\"ref1\"><\/a>[1] jp_pint_basic_rule_generator.py<\/p>\n<div class=\"listingblock scroll-source\">\n<div class=\"content\" style=\"width: 100%; height: 600px; overflow-y: scroll; border: 1px #999 solid;\">\n<pre class=\"highlight\"><code class=\"language-python\" data-lang=\"python\">#!\/usr\/bin\/env python3\r\n# -*- coding: utf-8 -*-\r\n\"\"\"\r\nGenerate JP PINT Basic Model Schematron from a syntax binding tree page.\r\n\r\nInput examples:\r\n  URL:\r\n    python jp_pint_basic_rule_generator.py \\\r\n      https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/syntax2\/ubl-invoice\/tree\/en\/ \\\r\n      -o jp-pint-basic-model.sch \\\r\n      --report jp-pint-basic-model-report.txt\r\n\r\n  URL with temporary SSL verification bypass:\r\n    python jp_pint_basic_rule_generator.py \\\r\n      https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/syntax2\/ubl-invoice\/tree\/en\/ \\\r\n      -o jp-pint-basic-model.sch \\\r\n      --report jp-pint-basic-model-report.txt \\\r\n      --insecure\r\n\r\n  Local HTML:\r\n    python jp_pint_basic_rule_generator.py syntax-tree.html -o jp-pint-basic-model.sch\r\n\r\nPurpose:\r\n  - Read a JP PINT syntax binding tree page whose rows contain paths such as:\r\n      \/ Invoice \/ cac:AccountingSupplierParty \/ cac:Party \/ cbc:EndpointID\r\n      \/ ubl:Invoice \/ cac:AccountingSupplierParty \/ cac:Party \/ cbc:EndpointID\r\n      \/ Invoice \/ cac:AdditionalDocumentReference [ cbc:DocumentTypeCode = '130' ] \/ cbc:ID\r\n      \/ Invoice \/ cac:PartyIdentification [ cbc:ID \/ @schemeID != 'SEPA' ] \/ cbc:ID\r\n      \/ Invoice \/ cac:PartyTaxScheme [ cac:TaxScheme \/ cbc:ID = 'VAT' ] \/ cbc:CompanyID\r\n      \/ Invoice \/ ... \/ cbc:ID \/ @schemeID\r\n\r\n  - Normalise root path:\r\n      \/ Invoice      -&gt; \/ubl:Invoice\r\n      \/ ubl:Invoice  -&gt; \/ubl:Invoice\r\n\r\n  - Normalise only the special DocumentTypeCode != '130' selector:\r\n      [cbc:DocumentTypeCode = '130']\r\n        -&gt; [cbc:DocumentTypeCode = '130']\r\n\r\n      [cbc:DocumentTypeCode != '130']\r\n        -&gt; [not(cbc:DocumentTypeCode = '130')]\r\n\r\n      [cbc:ID\/@schemeID = 'SEPA']\r\n        -&gt; [cbc:ID\/@schemeID = 'SEPA']\r\n\r\n      [cbc:ID\/@schemeID != 'SEPA']\r\n        -&gt; [cbc:ID\/@schemeID != 'SEPA']\r\n\r\n      [cac:TaxScheme\/cbc:ID = 'VAT']\r\n        -&gt; [cac:TaxScheme\/cbc:ID = 'VAT']\r\n\r\n      [cac:TaxScheme\/cbc:ID != 'VAT']\r\n        -&gt; [cac:TaxScheme\/cbc:ID != 'VAT']\r\n\r\n  - Build an allowed-child list for each parent element path.\r\n\r\n  - Generate Basic Model Schematron rules to detect elements and attributes\r\n    not defined in the JP PINT syntax binding.\r\n\r\nDefault output style:\r\n  - \"allow-shadow\" mode:\r\n      Generate one empty rule for each allowed child and then a fallback rule:\r\n        &lt;sch:rule context=\"parent\/allowed-child\"\/&gt;\r\n        &lt;sch:rule context=\"parent\/*\"&gt;\r\n          &lt;sch:assert test=\"false()\"&gt;...&lt;\/sch:assert&gt;\r\n        &lt;\/sch:rule&gt;\r\n\r\nRecommended for tools where empty-rule shadowing is unstable:\r\n  - \"whitelist\" mode:\r\n      Generate one rule on parent\/* with:\r\n        self::allowed1 or self::allowed2 ...\r\n      This is usually more robust with generic Schematron validators.\r\n\r\nExamples:\r\n  python jp_pint_basic_rule_generator.py syntax-tree.html \\\r\n    -o jp-pint-basic-model.sch \\\r\n    --mode whitelist\r\n\r\nNotes:\r\n  - This is a generator draft. Review the generated Schematron before using it\r\n    for conformance testing.\r\n  - The script preserves selector predicates found in the syntax binding path.\r\n  - The generated rule IDs use PINT-JP-BM-* by default.\r\n\r\nLicensed under the MIT License.\r\nCopyright (c) 2026 SAMBUICHI, Nobuyuki\r\n(Sambuichi Professional Engineers Office)\r\n\"\"\"\r\n\r\nfrom __future__ import annotations\r\n\r\nimport argparse\r\nimport html\r\nimport re\r\nimport ssl\r\nimport sys\r\nimport urllib.request\r\nfrom collections import defaultdict\r\nfrom dataclasses import dataclass\r\nfrom pathlib import Path\r\nfrom typing import DefaultDict, Iterable, List, Sequence, Set, Tuple\r\n\r\n\r\nNS = {\r\n    \"ubl\": \"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\",\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}\r\n\r\n# The first cardinality token normally marks the end of the path text.\r\nCARDINALITY_RE = re.compile(\r\n    r\"\\s(?:0|1)\\.\\.(?:0|1|n)\\b|\\s0\\b\"\r\n)\r\n\r\n# Accept both \"\/ Invoice ...\" and \"\/ ubl:Invoice ...\".\r\nPATH_LINE_RE = re.compile(r\"^\\s*\/\\s*(?:ubl:)?Invoice\\b\")\r\n\r\n\r\n@dataclass(frozen=True)\r\nclass ParsedPath:\r\n    \"\"\"A parsed syntax binding path.\"\"\"\r\n    original: str\r\n    parts: Tuple[str, ...]\r\n    is_attribute: bool\r\n\r\n    @property\r\n    def xpath(self) -&gt; str:\r\n        return \"\/\" + \"\/\".join(self.parts)\r\n\r\n    @property\r\n    def parent_xpath(self) -&gt; str:\r\n        if self.is_attribute:\r\n            return \"\/\" + \"\/\".join(self.parts[:-1])\r\n        if len(self.parts) &lt;= 1:\r\n            return \"\"\r\n        return \"\/\" + \"\/\".join(self.parts[:-1])\r\n\r\n    @property\r\n    def last_part(self) -&gt; str:\r\n        return self.parts[-1]\r\n\r\n\r\ndef read_source(source: str, *, insecure: bool = False, ca_file: str | None = None) -&gt; str:\r\n    \"\"\"Read HTML from a URL or local file.\r\n\r\n    On macOS python.org installations, urllib may fail with:\r\n      SSL: CERTIFICATE_VERIFY_FAILED\r\n\r\n    Preferred fixes:\r\n      1. Run \"Install Certificates.command\" for your Python installation.\r\n      2. Use --ca-file with a trusted CA bundle.\r\n\r\n    Temporary workaround:\r\n      --insecure disables HTTPS certificate verification. Use it only for\r\n      trusted sources under your control.\r\n    \"\"\"\r\n    if re.match(r\"^https?:\/\/\", source, flags=re.I):\r\n        req = urllib.request.Request(\r\n            source,\r\n            headers={\r\n                \"User-Agent\": (\r\n                    \"Mozilla\/5.0 (compatible; JP-PINT-BasicRuleGenerator\/0.2)\"\r\n                )\r\n            },\r\n        )\r\n\r\n        context = None\r\n        if insecure:\r\n            context = ssl._create_unverified_context()\r\n        elif ca_file:\r\n            context = ssl.create_default_context(cafile=ca_file)\r\n\r\n        with urllib.request.urlopen(req, timeout=30, context=context) as response:\r\n            charset = response.headers.get_content_charset() or \"utf-8\"\r\n            return response.read().decode(charset, errors=\"replace\")\r\n\r\n    return Path(source).read_text(encoding=\"utf-8\", errors=\"replace\")\r\n\r\n\r\ndef html_to_candidate_lines(raw_html: str) -&gt; List[str]:\r\n    \"\"\"Convert HTML to candidate text lines.\r\n\r\n    Prefer table rows when BeautifulSoup is available, but keep a standard-library\r\n    fallback so the script can run without additional packages.\r\n    \"\"\"\r\n    rows: List[str] = []\r\n\r\n    try:\r\n        from bs4 import BeautifulSoup  # type: ignore\r\n\r\n        soup = BeautifulSoup(raw_html, \"html.parser\")\r\n\r\n        # Table\/list row extraction.\r\n        for tag_name in (\"tr\", \"li\", \"p\", \"div\"):\r\n            for tag in soup.find_all(tag_name):\r\n                text = tag.get_text(\" \", strip=True)\r\n                if text:\r\n                    rows.append(text)\r\n\r\n        # Full text fallback as well; useful for pages that are not table-based.\r\n        rows.extend(soup.get_text(\"\\n\").splitlines())\r\n\r\n    except Exception:\r\n        # Standard library fallback: turn closing row\/block tags into newlines.\r\n        text = raw_html\r\n        text = re.sub(r\"(?is)&lt;script.*?&lt;\/script&gt;\", \"\\n\", text)\r\n        text = re.sub(r\"(?is)&lt;style.*?&lt;\/style&gt;\", \"\\n\", text)\r\n        text = re.sub(r\"(?i)&lt;\/(?:tr|li|p|div|h[1-6])\\s*&gt;\", \"\\n\", text)\r\n        text = re.sub(r\"(?i)&lt;br\\s*\/?&gt;\", \"\\n\", text)\r\n        text = re.sub(r\"(?s)&lt;[^&gt;]+&gt;\", \" \", text)\r\n        rows.extend(text.splitlines())\r\n\r\n    cleaned = []\r\n    seen = set()\r\n    for row in rows:\r\n        row = clean_text(row)\r\n        if row and row not in seen:\r\n            seen.add(row)\r\n            cleaned.append(row)\r\n\r\n    return cleaned\r\n\r\n\r\ndef clean_text(text: str) -&gt; str:\r\n    \"\"\"Normalise HTML text for regex parsing.\"\"\"\r\n    text = html.unescape(text)\r\n    text = text.replace(\"\\u00a0\", \" \")\r\n    text = text.replace(\"\u3000\", \" \")\r\n    text = re.sub(r\"\\s+\", \" \", text).strip()\r\n    return text\r\n\r\n\r\ndef extract_path_text(line: str) -&gt; str | None:\r\n    \"\"\"Extract the path part from a syntax binding row.\r\n\r\n    A row normally starts with:\r\n      \/ Invoice \/ cac:Something \/ cbc:ID 1..1 0..1 ibt-...\r\n      \/ ubl:Invoice \/ cac:Something \/ cbc:ID 1..1 0..1 ibt-...\r\n\r\n    The first cardinality token marks the end of the path.\r\n    \"\"\"\r\n    if not PATH_LINE_RE.match(line):\r\n        return None\r\n\r\n    match = CARDINALITY_RE.search(line)\r\n    if not match:\r\n        # Root row may be: \/ Invoice 1..1 ...\r\n        # If the page does not show cardinality after the root, ignore it.\r\n        return None\r\n\r\n    path_text = line[: match.start()].strip()\r\n    return path_text if path_text.startswith(\"\/\") else None\r\n\r\n\r\ndef split_path_outside_predicates(path_text: str) -&gt; List[str]:\r\n    \"\"\"Split \/-separated path segments, ignoring \/ inside [predicates].\"\"\"\r\n    s = path_text.strip()\r\n    if s.startswith(\"\/\"):\r\n        s = s[1:]\r\n    if s.endswith(\"\/\"):\r\n        s = s[:-1]\r\n\r\n    parts: List[str] = []\r\n    current: List[str] = []\r\n    depth = 0\r\n\r\n    for ch in s:\r\n        if ch == \"[\":\r\n            depth += 1\r\n            current.append(ch)\r\n        elif ch == \"]\":\r\n            depth = max(0, depth - 1)\r\n            current.append(ch)\r\n        elif ch == \"\/\" and depth == 0:\r\n            part = clean_path_part(\"\".join(current))\r\n            if part:\r\n                parts.append(part)\r\n            current = []\r\n        else:\r\n            current.append(ch)\r\n\r\n    part = clean_path_part(\"\".join(current))\r\n    if part:\r\n        parts.append(part)\r\n\r\n    return parts\r\n\r\n\r\ndef normalise_selector_predicates(text: str) -&gt; str:\r\n    \"\"\"Normalise only the special DocumentTypeCode != '130' selector.\r\n\r\n    Policy:\r\n      - Keep ordinary '=' and '!=' selectors unchanged.\r\n        Examples:\r\n          [cbc:ID\/@schemeID = 'SEPA']\r\n          [cbc:ID\/@schemeID != 'SEPA']\r\n          [cac:TaxScheme\/cbc:ID = 'VAT']\r\n          [cac:TaxScheme\/cbc:ID != 'VAT']\r\n\r\n      - Convert only this special selector:\r\n          [cbc:DocumentTypeCode != '130']\r\n        to:\r\n          [not(cbc:DocumentTypeCode = '130')]\r\n\r\n    Reason:\r\n      For AdditionalDocumentReference, absence of cbc:DocumentTypeCode should\r\n      be treated as the supporting-document case. Therefore, the negated\r\n      selector should also match when cbc:DocumentTypeCode is not present.\r\n    \"\"\"\r\n    text = re.sub(r\"\\s+\", \" \", text).strip()\r\n\r\n    # Normalise spaces around \"\/\" so that \"cbc:ID \/ @schemeID\" becomes\r\n    # \"cbc:ID\/@schemeID\". This does not change the comparison semantics.\r\n    text = re.sub(r\"\\s*\/\\s*\", \"\/\", text)\r\n\r\n    # Normalise the invoice root if it appears inside a selector.\r\n    text = re.sub(r\"\/\\s*(?:ubl:)?Invoice\\b\", \"\/ubl:Invoice\", text)\r\n\r\n    # Convert only:\r\n    #   [cbc:DocumentTypeCode != '130']\r\n    # to:\r\n    #   [not(cbc:DocumentTypeCode = '130')]\r\n    text = re.sub(\r\n        r\"\\[\\s*cbc:DocumentTypeCode\\s*!=\\s*(['\\\"])(130)\\1\\s*\\]\",\r\n        r\"[not(cbc:DocumentTypeCode = '\\2')]\",\r\n        text,\r\n    )\r\n\r\n    # Also canonicalise the equivalent explicit form if it appears with spaces.\r\n    text = re.sub(\r\n        r\"\\[\\s*not\\(\\s*cbc:DocumentTypeCode\\s*=\\s*(['\\\"])(130)\\1\\s*\\)\\s*\\]\",\r\n        r\"[not(cbc:DocumentTypeCode = '\\2')]\",\r\n        text,\r\n    )\r\n\r\n    # # If the source or an older generated tree already contains the previous\r\n    # # normalize-space form, canonicalise it here without using a separate\r\n    # # denormalise helper.\r\n    # text = re.sub(\r\n    #     r\"cbc:DocumentTypeCode\\[\\s*normalize-space\\(\\.\\)\\s*=\\s*(['\\\"])(130)\\1\\s*\\]\",\r\n    #     r\"cbc:DocumentTypeCode = '\\2'\",\r\n    #     text,\r\n    # )\r\n    # text = re.sub(\r\n    #     r\"not\\(\\s*cbc:DocumentTypeCode\\[\\s*normalize-space\\(\\.\\)\\s*=\\s*(['\\\"])(130)\\1\\s*\\]\\s*\\)\",\r\n    #     r\"not(cbc:DocumentTypeCode = '\\2')\",\r\n    #     text,\r\n    # )\r\n\r\n    return text\r\n\r\n\r\n\r\ndef normalise_path_to_path_selectors(text: str) -&gt; str:\r\n    \"\"\"Normalise common JP PINT path-to-path selector expressions.\r\n\r\n    The official syntax binding may show expressions such as:\r\n      [cac:TaxTotal\/TaxAmount\/@currency = cbc:DocumentCurrencyCode]\r\n\r\n    In the generated context this should be a predicate on cac:TaxTotal:\r\n      [cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:DocumentCurrencyCode]\r\n\r\n    This function assumes it receives a single path segment after slash splitting,\r\n    for example:\r\n      cac:TaxTotal[cac:TaxTotal\/TaxAmount\/@currency = cbc:DocumentCurrencyCode]\r\n      cac:TaxTotal[cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:DocumentCurrencyCode]\r\n    \"\"\"\r\n    text = re.sub(r\"\\s+\", \" \", text).strip()\r\n    text = re.sub(r\"\\s*\/\\s*\", \"\/\", text)\r\n    text = re.sub(r\"\/\\s*(?:ubl:)?Invoice\\b\", \"\/ubl:Invoice\", text)\r\n\r\n    # Fix TaxAmount namespace and currency attribute spelling.\r\n    #\r\n    # Do NOT use simple str.replace(\"TaxAmount\/@currency\", ...)\r\n    # because it also matches inside an already normalised\r\n    # \"cbc:TaxAmount\/@currencyID\" and can create:\r\n    #   cbc:cbc:TaxAmount\/@currencyID\r\n    #\r\n    # Cases handled:\r\n    #   TaxAmount\/@currency     -&gt; cbc:TaxAmount\/@currencyID\r\n    #   TaxAmount\/@currencyID   -&gt; cbc:TaxAmount\/@currencyID\r\n    #   cbc:TaxAmount\/@currency -&gt; cbc:TaxAmount\/@currencyID\r\n    # Already correct:\r\n    #   cbc:TaxAmount\/@currencyID\r\n    text = re.sub(\r\n        r\"(?&lt;!:)\\bTaxAmount\/@currency(?!ID)\\b\",\r\n        \"cbc:TaxAmount\/@currencyID\",\r\n        text,\r\n    )\r\n    text = re.sub(\r\n        r\"(?&lt;!:)\\bTaxAmount\/@currencyID\\b\",\r\n        \"cbc:TaxAmount\/@currencyID\",\r\n        text,\r\n    )\r\n    text = re.sub(\r\n        r\"\\bcbc:TaxAmount\/@currency(?!ID)\\b\",\r\n        \"cbc:TaxAmount\/@currencyID\",\r\n        text,\r\n    )\r\n\r\n    # Remove repeated outer cac:TaxTotal\/ inside its own predicate.\r\n    # Example:\r\n    #   cac:TaxTotal[cac:TaxTotal\/cbc:TaxAmount\/@currencyID = ...]\r\n    # becomes:\r\n    #   cac:TaxTotal[cbc:TaxAmount\/@currencyID = ...]\r\n    text = re.sub(\r\n        r\"cac:TaxTotal\\[\\s*cac:TaxTotal\/\",\r\n        \"cac:TaxTotal[\",\r\n        text,\r\n    )\r\n\r\n    # Document-level currency codes are children of \/ubl:Invoice.\r\n    text = re.sub(\r\n        r\"=\\s*cbc:DocumentCurrencyCode\\b\",\r\n        \"= \/ubl:Invoice\/cbc:DocumentCurrencyCode\",\r\n        text,\r\n    )\r\n    text = re.sub(\r\n        r\"=\\s*cbc:TaxCurrencyCode\\b\",\r\n        \"= \/ubl:Invoice\/cbc:TaxCurrencyCode\",\r\n        text,\r\n    )\r\n\r\n    # Whitespace cleanup around = inside predicates.\r\n    # Whitespace cleanup around standalone \"=\" inside predicates.\r\n    # Do not break \"!=\" into \"! =\".\r\n    text = re.sub(r\"(?&lt;![!&lt;&gt;=])\\s*=\\s*(?!=)\", \" = \", text)\r\n    text = re.sub(r\"\\[\\s+\", \"[\", text)\r\n    text = re.sub(r\"\\s+\\]\", \"]\", text)\r\n\r\n    return text\r\n\r\n\r\ndef clean_path_part(part: str) -&gt; str:\r\n    \"\"\"Normalise one path segment.\r\n\r\n    Examples:\r\n      \"Invoice\" -&gt; \"ubl:Invoice\"\r\n\r\n      \"ubl:Invoice\" -&gt; \"ubl:Invoice\"\r\n\r\n      \"cac:AdditionalDocumentReference [ cbc:DocumentTypeCode = '130' ]\"\r\n        -&gt; \"cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\"\r\n\r\n      \"cac:AdditionalDocumentReference [ cbc:DocumentTypeCode != '130' ]\"\r\n        -&gt; \"cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\"\r\n\r\n      \"cac:TaxTotal [ cac:TaxTotal \/ TaxAmount \/ @currency = cbc:TaxCurrencyCode ]\"\r\n        -&gt; \"cac:TaxTotal[cbc:TaxAmount\/@currencyID = \/ubl:Invoice\/cbc:TaxCurrencyCode]\"\r\n    \"\"\"\r\n    part = clean_text(part)\r\n    part = re.sub(r\"\\s+\\[\", \"[\", part)\r\n    part = re.sub(r\"\\[\\s+\", \"[\", part)\r\n    part = re.sub(r\"\\s+\\]\", \"]\", part)\r\n\r\n    # Normalise root element.\r\n    if part in (\"Invoice\", \"ubl:Invoice\"):\r\n        return \"ubl:Invoice\"\r\n\r\n    # Normalise selector syntax.\r\n    part = normalise_path_to_path_selectors(part)\r\n    part = normalise_selector_predicates(part)\r\n\r\n    return part\r\n\r\n\r\ndef normalise_xpath_context(context: str) -&gt; str:\r\n    \"\"\"Normalise selector predicates in a full XPath context.\r\n\r\n    This is a final safety pass used before storing or emitting contexts.\r\n    It handles cases where a selector remained in the older syntax-binding form,\r\n    for example:\r\n\r\n      \/ubl:Invoice\/...\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID\r\n\r\n    becomes:\r\n\r\n      \/ubl:Invoice\/...\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID\r\n\r\n    It also preserves strict selectors such as:\r\n      [cbc:ID\/@schemeID = 'SEPA']\r\n      [cbc:ID\/@schemeID != 'SEPA']\r\n      [cac:TaxScheme\/cbc:ID = 'VAT']\r\n      [cac:TaxScheme\/cbc:ID != 'VAT']\r\n    \"\"\"\r\n    if not context:\r\n        return context\r\n\r\n    parts = split_path_outside_predicates(context)\r\n    if not parts:\r\n        return context\r\n\r\n    # split_path_outside_predicates already applies clean_path_part() to each\r\n    # segment. Ensure the root is normalised as a final guard.\r\n    if parts[0] in (\"Invoice\", \"ubl:Invoice\"):\r\n        parts[0] = \"ubl:Invoice\"\r\n\r\n    return \"\/\" + \"\/\".join(parts)\r\n\r\n\r\ndef parse_path(path_text: str) -&gt; ParsedPath | None:\r\n    parts = tuple(split_path_outside_predicates(path_text))\r\n    if not parts:\r\n        return None\r\n    if parts[0] != \"ubl:Invoice\":\r\n        return None\r\n\r\n    is_attribute = parts[-1].startswith(\"@\")\r\n    return ParsedPath(original=path_text, parts=parts, is_attribute=is_attribute)\r\n\r\n\r\ndef collect_paths(lines: Iterable[str]) -&gt; List[ParsedPath]:\r\n    parsed: List[ParsedPath] = []\r\n    seen = set()\r\n\r\n    for line in lines:\r\n        path_text = extract_path_text(line)\r\n        if not path_text:\r\n            continue\r\n\r\n        pp = parse_path(path_text)\r\n        if not pp:\r\n            continue\r\n\r\n        if pp.xpath not in seen:\r\n            seen.add(pp.xpath)\r\n            parsed.append(pp)\r\n\r\n    return parsed\r\n\r\n\r\ndef build_model(\r\n    parsed_paths: Sequence[ParsedPath],\r\n) -&gt; Tuple[DefaultDict[str, Set[str]], DefaultDict[str, Set[str]], Set[str]]:\r\n    \"\"\"Return:\r\n      allowed_children[parent_xpath] -&gt; child segment strings\r\n      allowed_attributes[element_xpath] -&gt; attribute local names\r\n      all_element_paths -&gt; all element paths\r\n    \"\"\"\r\n    allowed_children: DefaultDict[str, Set[str]] = defaultdict(set)\r\n    allowed_attributes: DefaultDict[str, Set[str]] = defaultdict(set)\r\n    all_element_paths: Set[str] = set()\r\n\r\n    for pp in parsed_paths:\r\n        if pp.is_attribute:\r\n            parent = normalise_xpath_context(pp.parent_xpath)\r\n            attr_name = pp.last_part[1:]\r\n            if parent:\r\n                allowed_attributes[parent].add(attr_name)\r\n                all_element_paths.add(parent)\r\n            continue\r\n\r\n        xpath = normalise_xpath_context(pp.xpath)\r\n        parent = normalise_xpath_context(pp.parent_xpath)\r\n        last_part = clean_path_part(pp.last_part)\r\n\r\n        all_element_paths.add(xpath)\r\n\r\n        if parent:\r\n            allowed_children[parent].add(last_part)\r\n\r\n    return allowed_children, allowed_attributes, all_element_paths\r\n\r\n\r\ndef escape_xml(text: str) -&gt; str:\r\n    return (\r\n        text.replace(\"&amp;\", \"&amp;amp;\")\r\n        .replace(\"&lt;\", \"&amp;lt;\")\r\n        .replace(\"&gt;\", \"&amp;gt;\")\r\n        .replace('\"', \"&amp;quot;\")\r\n    )\r\n\r\n\r\ndef sort_paths(paths: Iterable[str]) -&gt; List[str]:\r\n    \"\"\"Sort XPath contexts by depth then lexical value.\"\"\"\r\n    return sorted(paths, key=lambda p: (p.count(\"\/\"), p))\r\n\r\n\r\ndef rule_id(prefix: str, number: int) -&gt; str:\r\n    return f\"{prefix}-{number:04d}\"\r\n\r\n\r\ndef child_self_test(child: str) -&gt; str:\r\n    \"\"\"Create a self::* test for a child path segment.\r\n\r\n    Examples:\r\n      cbc:ID -&gt; self::cbc:ID\r\n      cac:AdditionalDocumentReference[cbc:DocumentTypeCode[...]]\r\n        -&gt; self::cac:AdditionalDocumentReference[cbc:DocumentTypeCode[...]]\r\n    \"\"\"\r\n    return f\"self::{child}\"\r\n\r\n\r\ndef wrap_long_xpath_or(tests: Sequence[str], indent: str = \"                \") -&gt; str:\r\n    \"\"\"Join XPath tests with 'or', one test per line for readability.\"\"\"\r\n    if not tests:\r\n        return \"false()\"\r\n\r\n    lines: List[str] = []\r\n    for i, test in enumerate(tests):\r\n        suffix = \" or\" if i &lt; len(tests) - 1 else \"\"\r\n        lines.append(f\"{indent}{test}{suffix}\")\r\n    return \"\\n\".join(lines)\r\n\r\n\r\ndef append_attribute_pattern(\r\n    lines: List[str],\r\n    allowed_attributes: DefaultDict[str, Set[str]],\r\n    *,\r\n    prefix: str,\r\n    flag: str,\r\n) -&gt; None:\r\n    \"\"\"Append attribute whitelist pattern to a Schematron output list.\"\"\"\r\n    if not allowed_attributes:\r\n        return\r\n\r\n    lines.append(\"\")\r\n    lines.append('  &lt;sch:pattern id=\"PINT-JP-BASIC-MODEL-ATTRIBUTES\"&gt;')\r\n    a = 1\r\n\r\n    for raw_element in sort_paths(allowed_attributes.keys()):\r\n        element = normalise_xpath_context(raw_element)\r\n        attrs = sorted(allowed_attributes[raw_element])\r\n\r\n        # For attributes, use a single rule on the element and check unknown\r\n        # attributes explicitly. This is more stable than empty attribute rules.\r\n        attr_test = \" and \".join(\r\n            f\"local-name() != '{attr}'\" for attr in attrs\r\n        )\r\n        test = f\"not(@*[{attr_test}])\" if attrs else \"not(@*)\"\r\n\r\n        rid = f\"{prefix}-A{a:04d}\"\r\n        a += 1\r\n\r\n        lines.append(\"\")\r\n        lines.append(\r\n            f\"    &lt;!-- Allowed attributes of {escape_xml(element)}: \"\r\n            f\"{', '.join('@' + x for x in attrs)} --&gt;\"\r\n        )\r\n        lines.append(f'    &lt;sch:rule context=\"{escape_xml(element)}\"&gt;')\r\n        lines.append(\r\n            f'      &lt;sch:assert id=\"{rid}\" flag=\"{flag}\" '\r\n            f'test=\"{escape_xml(test)}\"&gt;'\r\n        )\r\n        lines.append(\r\n            f\"        [{rid}]-Element '{escape_xml(element)}' MUST NOT \"\r\n            f\"contain attributes other than \"\r\n            f\"{escape_xml(', '.join('@' + x for x in attrs))}.\"\r\n        )\r\n        lines.append(\"      &lt;\/sch:assert&gt;\")\r\n        lines.append(\"    &lt;\/sch:rule&gt;\")\r\n\r\n    lines.append(\"\")\r\n    lines.append(\"  &lt;\/sch:pattern&gt;\")\r\n\r\n\r\ndef schematron_header(title: str) -&gt; List[str]:\r\n    lines: List[str] = []\r\n    lines.append('&lt;!--')\r\n    lines.append('  Licensed under the MIT License.')\r\n    lines.append('  Copyright (c) 2026 SAMBUICHI, Nobuyuki')\r\n    lines.append('  (Sambuichi Professional Engineers Office)')\r\n    lines.append('--&gt;')\r\n    lines.append('&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;')\r\n    lines.append(\r\n        '&lt;sch:schema xmlns:sch=\"http:\/\/purl.oclc.org\/dsdl\/schematron\" '\r\n        'queryBinding=\"xslt2\"&gt;'\r\n    )\r\n    lines.append(f\"  &lt;sch:title&gt;{escape_xml(title)}&lt;\/sch:title&gt;\")\r\n    for pfx, uri in NS.items():\r\n        lines.append(f'  &lt;sch:ns prefix=\"{pfx}\" uri=\"{uri}\"\/&gt;')\r\n    return lines\r\n\r\n\r\ndef append_root_pattern(lines: List[str], *, prefix: str, flag: str) -&gt; None:\r\n    lines.append(\"\")\r\n    lines.append('  &lt;sch:pattern id=\"PINT-JP-BASIC-ROOT\"&gt;')\r\n    lines.append('    &lt;sch:rule context=\"\/*\"&gt;')\r\n    lines.append(\r\n        f'      &lt;sch:assert id=\"{prefix}-ROOT\" flag=\"{flag}\" '\r\n        'test=\"self::ubl:Invoice\"&gt;'\r\n    )\r\n    lines.append(\r\n        \"        [PINT-JP-BM-ROOT]-Document root element MUST be ubl:Invoice \"\r\n        \"for JP PINT Invoice.\"\r\n    )\r\n    lines.append(\"      &lt;\/sch:assert&gt;\")\r\n    lines.append(\"    &lt;\/sch:rule&gt;\")\r\n    lines.append(\"  &lt;\/sch:pattern&gt;\")\r\n\r\n\r\ndef generate_schematron_allow_shadow(\r\n    allowed_children: DefaultDict[str, Set[str]],\r\n    allowed_attributes: DefaultDict[str, Set[str]],\r\n    *,\r\n    prefix: str,\r\n    title: str,\r\n    flag: str,\r\n) -&gt; str:\r\n    \"\"\"Generate Schematron using empty allowed-child rules plus fallback rules.\"\"\"\r\n    lines = schematron_header(title)\r\n    append_root_pattern(lines, prefix=prefix, flag=flag)\r\n\r\n    lines.append(\"\")\r\n    lines.append('  &lt;sch:pattern id=\"PINT-JP-BASIC-MODEL-ELEMENTS\"&gt;')\r\n    n = 1\r\n\r\n    for parent in sort_paths(allowed_children.keys()):\r\n        children = sorted(allowed_children[parent])\r\n\r\n        lines.append(\"\")\r\n        lines.append(f\"    &lt;!-- Allowed children of {escape_xml(parent)} --&gt;\")\r\n\r\n        for child in children:\r\n            context = normalise_xpath_context(f\"{parent}\/{child}\")\r\n            lines.append(f'    &lt;sch:rule context=\"{escape_xml(context)}\"\/&gt;')\r\n\r\n        rid = rule_id(prefix, n)\r\n        n += 1\r\n        parent = normalise_xpath_context(parent)\r\n        fallback_context = f\"{parent}\/*\"\r\n        lines.append(f'    &lt;sch:rule context=\"{escape_xml(fallback_context)}\"&gt;')\r\n        lines.append(\r\n            f'      &lt;sch:assert id=\"{rid}\" flag=\"{flag}\" test=\"false()\"&gt;'\r\n        )\r\n        lines.append(\r\n            f\"        [{rid}]-Element \"\r\n            f\"'{escape_xml(parent)}' MUST NOT contain child elements \"\r\n            \"that are not part of the JP PINT data model.\"\r\n        )\r\n        lines.append(\"      &lt;\/sch:assert&gt;\")\r\n        lines.append(\"    &lt;\/sch:rule&gt;\")\r\n\r\n    lines.append(\"\")\r\n    lines.append(\"  &lt;\/sch:pattern&gt;\")\r\n\r\n    append_attribute_pattern(lines, allowed_attributes, prefix=prefix, flag=flag)\r\n\r\n    lines.append(\"\")\r\n    lines.append(\"&lt;\/sch:schema&gt;\")\r\n    lines.append(\"\")\r\n    return \"\\n\".join(lines)\r\n\r\n\r\ndef generate_schematron_whitelist(\r\n    allowed_children: DefaultDict[str, Set[str]],\r\n    allowed_attributes: DefaultDict[str, Set[str]],\r\n    *,\r\n    prefix: str,\r\n    title: str,\r\n    flag: str,\r\n) -&gt; str:\r\n    \"\"\"Generate Schematron using explicit whitelist asserts on parent\/*.\r\n\r\n    This mode is more robust in validators that do not reliably use empty rules\r\n    to shadow a later wildcard fallback rule.\r\n    \"\"\"\r\n    lines = schematron_header(title)\r\n    append_root_pattern(lines, prefix=prefix, flag=flag)\r\n\r\n    lines.append(\"\")\r\n    lines.append('  &lt;sch:pattern id=\"PINT-JP-BASIC-MODEL-ELEMENTS\"&gt;')\r\n    n = 1\r\n\r\n    for parent in sort_paths(allowed_children.keys()):\r\n        parent = normalise_xpath_context(parent)\r\n        children = sorted(clean_path_part(child) for child in allowed_children[parent])\r\n        tests = [child_self_test(child) for child in children]\r\n        rid = rule_id(prefix, n)\r\n        n += 1\r\n\r\n        lines.append(\"\")\r\n        lines.append(f\"    &lt;!-- Allowed children of {escape_xml(parent)} --&gt;\")\r\n        for child in children:\r\n            lines.append(f\"    &lt;!--   {escape_xml(child)} --&gt;\")\r\n\r\n        context = f\"{parent}\/*\"\r\n        test = wrap_long_xpath_or(tests)\r\n        lines.append(f'    &lt;sch:rule context=\"{escape_xml(context)}\"&gt;')\r\n        lines.append(f'      &lt;sch:assert id=\"{rid}\" flag=\"{flag}\" test=\"')\r\n        lines.append(escape_xml(test))\r\n        lines.append('              \"&gt;')\r\n        lines.append(\r\n            f\"        [{rid}]-Element \"\r\n            f\"'{escape_xml(parent)}' MUST NOT contain child elements \"\r\n            \"that are not part of the JP PINT data model.\"\r\n        )\r\n        lines.append(\"      &lt;\/sch:assert&gt;\")\r\n        lines.append(\"    &lt;\/sch:rule&gt;\")\r\n\r\n    lines.append(\"\")\r\n    lines.append(\"  &lt;\/sch:pattern&gt;\")\r\n\r\n    append_attribute_pattern(lines, allowed_attributes, prefix=prefix, flag=flag)\r\n\r\n    lines.append(\"\")\r\n    lines.append(\"&lt;\/sch:schema&gt;\")\r\n    lines.append(\"\")\r\n    return \"\\n\".join(lines)\r\n\r\n\r\ndef generate_schematron(\r\n    allowed_children: DefaultDict[str, Set[str]],\r\n    allowed_attributes: DefaultDict[str, Set[str]],\r\n    *,\r\n    prefix: str = \"PINT-JP-BM\",\r\n    title: str = \"Generated JP PINT Basic Model Rules\",\r\n    flag: str = \"fatal\",\r\n    mode: str = \"allow-shadow\",\r\n) -&gt; str:\r\n    \"\"\"Generate Schematron in the selected mode.\"\"\"\r\n    if mode == \"whitelist\":\r\n        return generate_schematron_whitelist(\r\n            allowed_children,\r\n            allowed_attributes,\r\n            prefix=prefix,\r\n            title=title,\r\n            flag=flag,\r\n        )\r\n\r\n    return generate_schematron_allow_shadow(\r\n        allowed_children,\r\n        allowed_attributes,\r\n        prefix=prefix,\r\n        title=title,\r\n        flag=flag,\r\n    )\r\n\r\n\r\ndef generate_report(parsed_paths: Sequence[ParsedPath]) -&gt; str:\r\n    element_count = sum(1 for p in parsed_paths if not p.is_attribute)\r\n    attribute_count = sum(1 for p in parsed_paths if p.is_attribute)\r\n\r\n    out = [\r\n        \"JP PINT syntax binding extraction report\",\r\n        \"========================================\",\r\n        f\"Total paths:       {len(parsed_paths)}\",\r\n        f\"Element paths:     {element_count}\",\r\n        f\"Attribute paths:   {attribute_count}\",\r\n        \"\",\r\n        \"Sample paths:\",\r\n    ]\r\n\r\n    for p in parsed_paths[:40]:\r\n        out.append(f\"  - {p.xpath}\")\r\n\r\n    return \"\\n\".join(out) + \"\\n\"\r\n\r\n\r\ndef main(argv: Sequence[str] | None = None) -&gt; int:\r\n    parser = argparse.ArgumentParser(\r\n        description=(\r\n            \"Generate Basic Model Schematron fallback rules from a JP PINT \"\r\n            \"syntax binding tree page.\"\r\n        )\r\n    )\r\n    parser.add_argument(\r\n        \"source\",\r\n        help=\"Syntax binding tree page URL or local HTML file.\",\r\n    )\r\n    parser.add_argument(\r\n        \"-o\",\r\n        \"--output\",\r\n        default=\"jp-pint-basic-model.sch\",\r\n        help=\"Output Schematron file path. Default: jp-pint-basic-model.sch\",\r\n    )\r\n    parser.add_argument(\r\n        \"--prefix\",\r\n        default=\"PINT-JP-BM\",\r\n        help=\"Rule ID prefix. Default: PINT-JP-BM\",\r\n    )\r\n    parser.add_argument(\r\n        \"--flag\",\r\n        default=\"fatal\",\r\n        choices=[\"fatal\", \"warning\"],\r\n        help=\"Schematron flag for generated fallback rules. Default: fatal\",\r\n    )\r\n    parser.add_argument(\r\n        \"--mode\",\r\n        default=\"allow-shadow\",\r\n        choices=[\"allow-shadow\", \"whitelist\"],\r\n        help=(\r\n            \"Generation mode. \"\r\n            \"'allow-shadow' creates empty allowed-child rules plus fallback rules. \"\r\n            \"'whitelist' creates explicit self::... whitelist asserts. \"\r\n            \"Default: allow-shadow.\"\r\n        ),\r\n    )\r\n    parser.add_argument(\r\n        \"--report\",\r\n        default=None,\r\n        help=\"Optional report output path.\",\r\n    )\r\n    parser.add_argument(\r\n        \"--insecure\",\r\n        action=\"store_true\",\r\n        help=(\r\n            \"Disable HTTPS certificate verification. Use only for trusted \"\r\n            \"sources under your control.\"\r\n        ),\r\n    )\r\n    parser.add_argument(\r\n        \"--ca-file\",\r\n        default=None,\r\n        help=\"Path to a CA bundle file used for HTTPS certificate verification.\",\r\n    )\r\n\r\n    args = parser.parse_args(argv)\r\n\r\n    raw_html = read_source(args.source, insecure=args.insecure, ca_file=args.ca_file)\r\n    lines = html_to_candidate_lines(raw_html)\r\n    parsed = collect_paths(lines)\r\n\r\n    if not parsed:\r\n        print(\r\n            \"No syntax binding paths were extracted. \"\r\n            \"Check that the source page contains '\/ Invoice \/ ...' or \"\r\n            \"'\/ ubl:Invoice \/ ...' rows.\",\r\n            file=sys.stderr,\r\n        )\r\n        return 2\r\n\r\n    allowed_children, allowed_attributes, _ = build_model(parsed)\r\n\r\n    sch = generate_schematron(\r\n        allowed_children,\r\n        allowed_attributes,\r\n        prefix=args.prefix,\r\n        flag=args.flag,\r\n        mode=args.mode,\r\n    )\r\n\r\n    Path(args.output).write_text(sch, encoding=\"utf-8\")\r\n\r\n    if args.report:\r\n        Path(args.report).write_text(generate_report(parsed), encoding=\"utf-8\")\r\n\r\n    print(f\"Extracted paths: {len(parsed)}\")\r\n    print(f\"Parent element contexts: {len(allowed_children)}\")\r\n    print(f\"Attribute contexts: {len(allowed_attributes)}\")\r\n    print(f\"Mode: {args.mode}\")\r\n    print(f\"Wrote: {args.output}\")\r\n    if args.report:\r\n        print(f\"Wrote: {args.report}\")\r\n\r\n    return 0\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    raise SystemExit(main())<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p><a id=\"ref2\"><\/a>[2] jp-pint-basic-model.sch<\/p>\n<div class=\"listingblock scroll-source\">\n<div class=\"content\" style=\"width: 100%; height: 600px; overflow-y: scroll; border: 1px #999 solid;\">\n<pre class=\"highlight\"><code class=\"language-xml\" data-lang=\"xml\">&lt;!--\r\n  Licensed under the MIT License.\r\n  Copyright (c) 2026 SAMBUICHI, Nobuyuki\r\n  (Sambuichi Professional Engineers Office)\r\n--&gt;\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;sch:schema xmlns:sch=\"http:\/\/purl.oclc.org\/dsdl\/schematron\" queryBinding=\"xslt2\"&gt;\r\n  &lt;sch:title&gt;Generated JP PINT Basic Model Rules&lt;\/sch:title&gt;\r\n  &lt;sch:ns prefix=\"ubl\" uri=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\"\/&gt;\r\n  &lt;sch:ns prefix=\"cac\" uri=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\"\/&gt;\r\n  &lt;sch:ns prefix=\"cbc\" uri=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"\/&gt;\r\n\r\n  &lt;sch:pattern id=\"PINT-JP-BASIC-ROOT\"&gt;\r\n    &lt;sch:rule context=\"\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-ROOT\" flag=\"fatal\" test=\"self::ubl:Invoice\"&gt;\r\n        [PINT-JP-BM-ROOT]-Document root element MUST be ubl:Invoice for JP PINT Invoice.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n  &lt;\/sch:pattern&gt;\r\n\r\n  &lt;sch:pattern id=\"PINT-JP-BASIC-MODEL-ELEMENTS\"&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ContractDocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:DespatchDocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoicePeriod\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OrderReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OriginatorDocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ProjectReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ReceiptDocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:AccountingCost\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:BuyerReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:CustomizationID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:DocumentCurrencyCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:DueDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:InvoiceTypeCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:IssueDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:IssueTime\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:Note\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:ProfileID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:TaxCurrencyCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cbc:TaxPointDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0001\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0001]-Element '\/ubl:Invoice' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0002\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0002]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0003\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0003]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:DocumentTypeCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0004\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0004]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cbc:DocumentDescription\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0005\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0005]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:AllowanceChargeReason\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:AllowanceChargeReasonCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:ChargeIndicator\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:MultiplierFactorNumeric\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0006\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0006]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:AllowanceChargeReason\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:AllowanceChargeReasonCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:ChargeIndicator\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:MultiplierFactorNumeric\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0007\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0007]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:BillingReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0008\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0008]-Element '\/ubl:Invoice\/cac:BillingReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:ContractDocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ContractDocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ContractDocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0009\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0009]-Element '\/ubl:Invoice\/cac:ContractDocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cbc:ActualDeliveryDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0010\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0010]-Element '\/ubl:Invoice\/cac:Delivery' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:DespatchDocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:DespatchDocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:DespatchDocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0011\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0011]-Element '\/ubl:Invoice\/cac:DespatchDocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:AccountingCost\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:InvoicedQuantity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:LineExtensionAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:Note\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0012\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0012]-Element '\/ubl:Invoice\/cac:InvoiceLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoicePeriod --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoicePeriod\/cbc:DescriptionCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoicePeriod\/cbc:EndDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoicePeriod\/cbc:StartDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoicePeriod\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0013\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0013]-Element '\/ubl:Invoice\/cac:InvoicePeriod' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:LegalMonetaryTotal --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:AllowanceTotalAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:ChargeTotalAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:LineExtensionAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableRoundingAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PrepaidAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxExclusiveAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxInclusiveAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0014\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0014]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:OrderReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OrderReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OrderReference\/cbc:SalesOrderID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OrderReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0015\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0015]-Element '\/ubl:Invoice\/cac:OrderReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:OriginatorDocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OriginatorDocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:OriginatorDocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0016\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0016]-Element '\/ubl:Invoice\/cac:OriginatorDocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PayeeParty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0017\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0017]-Element '\/ubl:Invoice\/cac:PayeeParty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentMeansCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0018\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0018]-Element '\/ubl:Invoice\/cac:PaymentMeans' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentTerms --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/cbc:InstallmentDueDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/cbc:Note\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/cbc:PaymentMeansID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0019\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0019]-Element '\/ubl:Invoice\/cac:PaymentTerms' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PrepaidPayment --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\/cbc:InstructionID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\/cbc:PaidAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\/cbc:ReceivedDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PrepaidPayment\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0020\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0020]-Element '\/ubl:Invoice\/cac:PrepaidPayment' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:ProjectReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ProjectReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ProjectReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0021\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0021]-Element '\/ubl:Invoice\/cac:ProjectReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:ReceiptDocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ReceiptDocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:ReceiptDocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0022\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0022]-Element '\/ubl:Invoice\/cac:ReceiptDocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0023\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0023]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cbc:EndpointID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0024\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0024]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0025\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0025]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cac:ExternalReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cbc:EmbeddedDocumentBinaryObject\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0026\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0026]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cbc:Percent\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0027\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0027]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cbc:Percent\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0028\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0028]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference\/cbc:IssueDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0029\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0029]-Element '\/ubl:Invoice\/cac:BillingReference\/cac:InvoiceDocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0030\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0030]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/cac:PartyName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0031\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0031]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:AllowanceChargeReason\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:AllowanceChargeReasonCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:ChargeIndicator\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:MultiplierFactorNumeric\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0032\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0032]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:AllowanceChargeReason\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:AllowanceChargeReasonCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:ChargeIndicator\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:MultiplierFactorNumeric\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0033\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0033]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cac:DocumentReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cbc:LineID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0034\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0034]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/cbc:DocumentTypeCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0035\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0035]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')]\/cbc:DocumentTypeCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')]\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0036\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0036]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[not(cbc:DocumentTypeCode = '130')]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod\/cbc:EndDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod\/cbc:StartDate\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0037\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0037]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:InvoicePeriod' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:BuyersItemIdentification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:OriginCountry\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:SellersItemIdentification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cbc:Description\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0038\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0038]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cac:OrderReference\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cbc:LineID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0039\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0039]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:BaseQuantity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:PriceAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0040\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0040]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0041\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0041]-Element '\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0042\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0042]-Element '\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PayeeParty\/cac:PartyName --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyName\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyName\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0043\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0043]-Element '\/ubl:Invoice\/cac:PayeeParty\/cac:PartyName' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount\/cbc:HolderName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount\/cbc:NetworkID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount\/cbc:PrimaryAccountNumberID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0044\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0044]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:CardAccount' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0045\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0045]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cac:PayerFinancialAccount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0046\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0046]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyName --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyName\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyName\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0047\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0047]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyName' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0048\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0048]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:AddressLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:Country\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cbc:AdditionalStreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cbc:CityName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cbc:CountrySubentity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cbc:PostalZone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cbc:StreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0049\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0049]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact\/cbc:ElectronicMail\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact\/cbc:Telephone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0050\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0050]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:Contact' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0051\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0051]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/cbc:RegistrationName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0052\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0052]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyName --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyName\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyName\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0053\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0053]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyName' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0054\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0054]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:Country\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cbc:AdditionalStreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cbc:CityName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cbc:CountrySubentity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cbc:PostalZone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cbc:StreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0055\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0055]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact\/cbc:ElectronicMail\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact\/cbc:Telephone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0056\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0056]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:Contact' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyLegalForm\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:RegistrationName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0057\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0057]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyName --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyName\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyName\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0058\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0058]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyName' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:Country\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cbc:AdditionalStreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cbc:CityName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cbc:CountrySubentity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cbc:PostalZone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cbc:StreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0059\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0059]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cac:ExternalReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cac:ExternalReference\/cbc:URI\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cac:ExternalReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0060\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0060]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cac:ExternalReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0061\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0061]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cac:TaxCategory\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0062\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0062]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cac:TaxCategory\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:AddressLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:Country\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cbc:AdditionalStreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cbc:CityName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cbc:CountrySubentity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cbc:PostalZone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cbc:StreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0063\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0063]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/cac:PartyName --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/cac:PartyName\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/cac:PartyName\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0064\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0064]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryParty\/cac:PartyName' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cac:DocumentReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cac:DocumentReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cac:DocumentReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0065\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0065]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:DespatchLineReference\/cac:DocumentReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty\/cbc:Name\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty\/cbc:Value\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0066\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0066]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:AdditionalItemProperty' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:BuyersItemIdentification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:BuyersItemIdentification\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:BuyersItemIdentification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0067\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0067]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:BuyersItemIdentification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cbc:PerUnitAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cbc:Percent\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0068\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0068]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\/cbc:ItemClassificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0069\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0069]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:OriginCountry --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:OriginCountry\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:OriginCountry\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0070\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0070]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:OriginCountry' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:SellersItemIdentification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:SellersItemIdentification\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:SellersItemIdentification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0071\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0071]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:SellersItemIdentification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0072\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0072]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cac:OrderReference --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cac:OrderReference\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cac:OrderReference\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0073\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0073]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:OrderLineReference\/cac:OrderReference' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:ChargeIndicator\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0074\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0074]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0075\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0075]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cac:PayerFinancialAccount --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cac:PayerFinancialAccount\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cac:PayerFinancialAccount\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0076\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0076]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PaymentMandate\/cac:PayerFinancialAccount' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0077\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0077]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PartyTaxScheme\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:AddressLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:AddressLine\/cbc:Line\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:AddressLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0078\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0078]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:AddressLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:Country --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:Country\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:Country\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0079\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0079]-Element '\/ubl:Invoice\/cac:TaxRepresentativeParty\/cac:PostalAddress\/cac:Country' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0080\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0080]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyTaxScheme\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\/cbc:Line\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0081\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0081]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:Country --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:Country\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:Country\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0082\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0082]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PostalAddress\/cac:Country' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0083\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0083]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0084\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0084]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0085\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0085]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT'] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cbc:CompanyID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0086\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0086]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\/cbc:Line\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0087\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0087]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:AddressLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:Country --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:Country\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:Country\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0088\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0088]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PostalAddress\/cac:Country' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:AddressLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:AddressLine\/cbc:Line\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:AddressLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0089\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0089]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:AddressLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:Country --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:Country\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:Country\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0090\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0090]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cac:Address\/cac:Country' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0091\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0091]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:ClassifiedTaxCategory\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:AddressLine\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:Country\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cbc:AdditionalStreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cbc:CityName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cbc:CountrySubentity\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cbc:PostalZone\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cbc:StreetName\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0092\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0092]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cbc:TaxAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0093\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0093]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode] --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cbc:TaxAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0094\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0094]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0095\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0095]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID != 'VAT']\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0096\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0096]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyTaxScheme[cac:TaxScheme\/cbc:ID = 'VAT']\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:AddressLine --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:AddressLine\/cbc:Line\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:AddressLine\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0097\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0097]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:AddressLine' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:Country --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:Country\/cbc:IdentificationCode\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:Country\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0098\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0098]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cac:FinancialInstitutionBranch\/cac:Address\/cac:Country' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxableAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0099\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0099]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0100\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0100]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cbc:Percent\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0101\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0101]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cbc:Percent\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0102\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0102]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed children of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme\/cbc:ID\"\/&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme\/*\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-0103\" flag=\"fatal\" test=\"false()\"&gt;\r\n        [PINT-JP-BM-0103]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cac:TaxCategory\/cac:TaxScheme' MUST NOT contain child elements that are not part of the JP PINT data model.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n  &lt;\/sch:pattern&gt;\r\n\r\n  &lt;sch:pattern id=\"PINT-JP-BASIC-MODEL-ATTRIBUTES\"&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0001\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0001]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0002\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0002]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0003\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0003]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0004\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0004]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0005\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0005]-Element '\/ubl:Invoice\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cbc:InvoicedQuantity: @unitCode --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:InvoicedQuantity\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0006\" flag=\"fatal\" test=\"not(@*[local-name() != 'unitCode'])\"&gt;\r\n        [PINT-JP-BM-A0006]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cbc:InvoicedQuantity' MUST NOT contain attributes other than @unitCode.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cbc:LineExtensionAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cbc:LineExtensionAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0007\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0007]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cbc:LineExtensionAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:AllowanceTotalAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:AllowanceTotalAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0008\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0008]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:AllowanceTotalAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:ChargeTotalAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:ChargeTotalAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0009\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0009]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:ChargeTotalAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:LineExtensionAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:LineExtensionAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0010\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0010]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:LineExtensionAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0011\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0011]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableRoundingAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableRoundingAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0012\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0012]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PayableRoundingAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PrepaidAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PrepaidAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0013\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0013]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:PrepaidAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxExclusiveAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxExclusiveAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0014\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0014]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxExclusiveAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxInclusiveAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxInclusiveAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0015\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0015]-Element '\/ubl:Invoice\/cac:LegalMonetaryTotal\/cbc:TaxInclusiveAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0016\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0016]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentMeansCode: @name --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentMeansCode\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0017\" flag=\"fatal\" test=\"not(@*[local-name() != 'name'])\"&gt;\r\n        [PINT-JP-BM-A0017]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cbc:PaymentMeansCode' MUST NOT contain attributes other than @name.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PaymentTerms\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentTerms\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0018\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0018]-Element '\/ubl:Invoice\/cac:PaymentTerms\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cbc:EndpointID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cbc:EndpointID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0019\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0019]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cbc:EndpointID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0020\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0020]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cbc:EndpointID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cbc:EmbeddedDocumentBinaryObject: @filename, @mimeCode --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cbc:EmbeddedDocumentBinaryObject\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0021\" flag=\"fatal\" test=\"not(@*[local-name() != 'filename' and local-name() != 'mimeCode'])\"&gt;\r\n        [PINT-JP-BM-A0021]-Element '\/ubl:Invoice\/cac:AdditionalDocumentReference[not(cbc:DocumentTypeCode = '130')]\/cac:Attachment\/cbc:EmbeddedDocumentBinaryObject' MUST NOT contain attributes other than @filename, @mimeCode.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0022\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0022]-Element '\/ubl:Invoice\/cac:Delivery\/cac:DeliveryLocation\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0023\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0023]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0024\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0024]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0025\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0025]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0026\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0026]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:AllowanceCharge[cbc:ChargeIndicator = true()]\/cbc:BaseAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0027\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0027]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:DocumentReference[cbc:DocumentTypeCode = '130']\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:BaseQuantity: @unitCode --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:BaseQuantity\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0028\" flag=\"fatal\" test=\"not(@*[local-name() != 'unitCode'])\"&gt;\r\n        [PINT-JP-BM-A0028]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:BaseQuantity' MUST NOT contain attributes other than @unitCode.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:PriceAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:PriceAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0029\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0029]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cbc:PriceAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0030\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0030]-Element '\/ubl:Invoice\/cac:PayeeParty\/cac:PartyIdentification\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\/cbc:CompanyID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\/cbc:CompanyID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0031\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0031]-Element '\/ubl:Invoice\/cac:PayeeParty\/cac:PartyLegalEntity\/cbc:CompanyID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0032\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0032]-Element '\/ubl:Invoice\/cac:PaymentMeans\/cac:PayeeFinancialAccount\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0033\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0033]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyIdentification\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0034\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0034]-Element '\/ubl:Invoice\/cac:AccountingCustomerParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0035\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0035]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyLegalEntity\/cbc:CompanyID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\/cbc:ItemClassificationCode: @listID, @listVersionID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\/cbc:ItemClassificationCode\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0036\" flag=\"fatal\" test=\"not(@*[local-name() != 'listID' and local-name() != 'listVersionID'])\"&gt;\r\n        [PINT-JP-BM-A0036]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:CommodityClassification\/cbc:ItemClassificationCode' MUST NOT contain attributes other than @listID, @listVersionID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0037\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0037]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Item\/cac:StandardItemIdentification\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0038\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0038]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:Amount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0039\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0039]-Element '\/ubl:Invoice\/cac:InvoiceLine\/cac:Price\/cac:AllowanceCharge[cbc:ChargeIndicator = false()]\/cbc:BaseAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0040\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0040]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID != 'SEPA']\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\/cbc:ID: @schemeID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\/cbc:ID\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0041\" flag=\"fatal\" test=\"not(@*[local-name() != 'schemeID'])\"&gt;\r\n        [PINT-JP-BM-A0041]-Element '\/ubl:Invoice\/cac:AccountingSupplierParty\/cac:Party\/cac:PartyIdentification[cbc:ID\/@schemeID = 'SEPA']\/cbc:ID' MUST NOT contain attributes other than @schemeID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cbc:TaxAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cbc:TaxAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0042\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0042]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cbc:TaxAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cbc:TaxAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cbc:TaxAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0043\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0043]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cbc:TaxAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0044\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0044]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxableAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxableAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0045\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0045]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:DocumentCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxableAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n    &lt;!-- Allowed attributes of \/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount: @currencyID --&gt;\r\n    &lt;sch:rule context=\"\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount\"&gt;\r\n      &lt;sch:assert id=\"PINT-JP-BM-A0046\" flag=\"fatal\" test=\"not(@*[local-name() != 'currencyID'])\"&gt;\r\n        [PINT-JP-BM-A0046]-Element '\/ubl:Invoice\/cac:TaxTotal[cbc:TaxAmount\/@currencyID =\/ubl:Invoice\/cbc:TaxCurrencyCode]\/cac:TaxSubtotal\/cbc:TaxAmount' MUST NOT contain attributes other than @currencyID.\r\n      &lt;\/sch:assert&gt;\r\n    &lt;\/sch:rule&gt;\r\n\r\n  &lt;\/sch:pattern&gt;\r\n\r\n&lt;\/sch:schema&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<p><a id=\"ref3\"><\/a>[3] JP PINT 2025-Q4, Invoice Transaction, Syntax binding<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/trn-invoice\/syntax\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/trn-invoice\/syntax\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref4\"><\/a>[4] Peppol BIS Billing 3.0, Rules<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref5\"><\/a>[5] Peppol BIS Billing 3.0, EN16931 model bound to UBL<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/ubl-tc434\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/ubl-tc434\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref6\"><\/a>[6] Peppol BIS Billing 3.0, Rules for Peppol BIS 3.0 Billing<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/ubl-peppol\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/ubl-peppol\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref7\"><\/a>[7] Peppol International (PINT) Specifications for the European Union, Schematrons<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref8\"><\/a>[8] Peppol International (PINT) Specifications for the European Union, Shared PINT rules<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/PINT-UBL-validation-preprocessed\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/PINT-UBL-validation-preprocessed\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref9\"><\/a>[9] Peppol International (PINT) Specifications for the European Union, EN16931 specific PINT rules<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/PINT-EN16931-aligned-rules\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/PINT-EN16931-aligned-rules\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref10\"><\/a>[10] Peppol International (PINT) Specifications for the European Union, Rule <code>UBL-CR-002<\/code><br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/UBL-CR-002\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/rule\/UBL-CR-002\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref11\"><\/a>[11] JP PINT 1.0 test site, billing Japan<br \/>\n<a href=\"https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/\" class=\"bare\">https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref12\"><\/a>[12] JP PINT syntax binding tree used for Basic Rule generation<br \/>\n<a href=\"https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/syntax2\/ubl-invoice\/tree\/en\/\" class=\"bare\">https:\/\/www.sambuichi.jp\/jp_pint\/billing-japan\/syntax2\/ubl-invoice\/tree\/en\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref13\"><\/a>[13] JP PINT 2025-Q4, Download resources<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/resources.zip\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/jp\/2025-Q4\/pint-jp\/resources.zip<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref14\"><\/a>[14] Peppol BIS Billing 3.0, <code>ubl:Invoice<\/code><br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref15\"><\/a>[15] Peppol BIS Billing 3.0, <code>cac:TaxTotal<\/code><br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref16\"><\/a>[16] Peppol BIS Billing 3.0, <code>cac:TaxCategory<\/code><br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/cac-TaxSubtotal\/cac-TaxCategory\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/cac-TaxSubtotal\/cac-TaxCategory\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref17\"><\/a>[17] Peppol BIS Billing 3.0, <code>cac:TaxScheme<\/code><br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/cac-TaxSubtotal\/cac-TaxCategory\/cac-TaxScheme\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/syntax\/ubl-invoice\/cac-TaxTotal\/cac-TaxSubtotal\/cac-TaxCategory\/cac-TaxScheme\/<\/a><\/p>\n<\/li>\n<li>\n<p><a id=\"ref18\"><\/a>[18] Peppol International (PINT) Specifications for the European Union, Invoice Transaction Syntax binding<br \/>\n<a href=\"https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/syntax\/\" class=\"bare\">https:\/\/docs.peppol.eu\/poac\/eu\/pint-eu\/trn-invoice\/syntax\/<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>==<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"footer\">\n<div id=\"footer-text\">\nLast updated 2026-05-10 14:22:45 +0900\n<\/div>\n<\/div>\n<div id=\"toc\" class=\"toc2\">\n<div id=\"toctitle\">Table of Contents<\/div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_\u306f\u3058\u3081\u306b\">1. \u306f\u3058\u3081\u306b<\/a><\/li>\n<li><a href=\"#_\u80cc\u666f_\u306a\u305cbasic_rule\u304c\u5fc5\u8981\u304b\">2. \u80cc\u666f: \u306a\u305cBasic Rule\u304c\u5fc5\u8981\u304b<\/a><\/li>\n<li><a href=\"#_openpeppol_bis_billing_3_0\u3068pint_eu\u306b\u304a\u3051\u308bbasic_rule\u76f8\u5f53\u306e\u30eb\u30fc\u30eb\">3. OpenPeppol BIS Billing 3.0\u3068PINT EU\u306b\u304a\u3051\u308bBasic Rule\u76f8\u5f53\u306e\u30eb\u30fc\u30eb<\/a><\/li>\n<li><a href=\"#_\u4eca\u56de\u4f7f\u7528\u3057\u305fsyntax_binding_tree\u306b\u3064\u3044\u3066\">4. \u4eca\u56de\u4f7f\u7528\u3057\u305fSyntax binding tree\u306b\u3064\u3044\u3066<\/a><\/li>\n<li><a href=\"#_\u4eca\u56de\u4f5c\u6210\u3057\u305fbasic_rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\">5. \u4eca\u56de\u4f5c\u6210\u3057\u305fBasic Rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8<\/a><\/li>\n<li><a href=\"#_\u751f\u6210\u3055\u308c\u308bschematron\u306e\u8003\u3048\u65b9\">6. \u751f\u6210\u3055\u308c\u308bSchematron\u306e\u8003\u3048\u65b9<\/a><\/li>\n<li><a href=\"#_\u691c\u8a3c\u5bfe\u8c61\u306e\u30b5\u30f3\u30d7\u30eb\">7. \u691c\u8a3c\u5bfe\u8c61\u306e\u30b5\u30f3\u30d7\u30eb<\/a><\/li>\n<li><a href=\"#_\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3067\u691c\u51fa\u3055\u308c\u305f\u4e0d\u6574\u5408\">8. \u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3067\u691c\u51fa\u3055\u308c\u305f\u4e0d\u6574\u5408<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_\u4e0d\u6574\u54081_cbcublversionid\">8.1. \u4e0d\u6574\u54081: cbc:UBLVersionID<\/a><\/li>\n<li><a href=\"#_\u4e0d\u6574\u54082_\u7a0e\u4f1a\u8a08\u901a\u8ca8tax_breakdown\u306ecactaxscheme\">8.2. \u4e0d\u6574\u54082: \u7a0e\u4f1a\u8a08\u901a\u8ca8Tax breakdown\u306ecac:TaxScheme<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_openpeppol_operation_office\u3078\u306e\u5831\u544a\">9. OpenPeppol Operation Office\u3078\u306e\u5831\u544a<\/a><\/li>\n<li><a href=\"#_ibt_192_1\u3068\u3057\u3066\u306e\u8ffd\u52a0\u63d0\u6848\">10. IBT-192-1\u3068\u3057\u3066\u306e\u8ffd\u52a0\u63d0\u6848<\/a><\/li>\n<li><a href=\"#_peppol_22903\u3068\u306e\u95a2\u4fc2\">11. PEPPOL-22903\u3068\u306e\u95a2\u4fc2<\/a><\/li>\n<li><a href=\"#_basic_rule\u751f\u6210\u306b\u3088\u3063\u3066\u5206\u304b\u3063\u305f\u3053\u3068\">12. Basic Rule\u751f\u6210\u306b\u3088\u3063\u3066\u5206\u304b\u3063\u305f\u3053\u3068<\/a><\/li>\n<li><a href=\"#_\u5b9f\u88c5\u4e0a\u306e\u6ce8\u610f\u70b9\">13. \u5b9f\u88c5\u4e0a\u306e\u6ce8\u610f\u70b9<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_selector\u306e\u6b63\u898f\u5316\">13.1. selector\u306e\u6b63\u898f\u5316<\/a><\/li>\n<li><a href=\"#_normalize_space\u3092\u4f7f\u308f\u306a\u3044\u65b9\u91dd\">13.2. normalize-space\u3092\u4f7f\u308f\u306a\u3044\u65b9\u91dd<\/a><\/li>\n<li><a href=\"#_allow_shadow\u65b9\u5f0f\u3068whitelist\u65b9\u5f0f\">13.3. allow-shadow\u65b9\u5f0f\u3068whitelist\u65b9\u5f0f<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_\u4eca\u5f8c\u306e\u6539\u5584\u63d0\u6848\">14. \u4eca\u5f8c\u306e\u6539\u5584\u63d0\u6848<\/a><\/li>\n<li><a href=\"#_\u307e\u3068\u3081\">15. \u307e\u3068\u3081<\/a><\/li>\n<li><a href=\"#_\u53c2\u8003\">16. \u53c2\u8003<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Views: 34 JP PINT Basic Rule\u751f\u6210\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3088\u308b\u30b5\u30f3\u30d7\u30eb\u691c\u8a3c\u3068\u516c\u958b\u4ed5\u69d8\u306e\u4e0d\u6574\u5408 ChatGPT\uff08\u7de8\u96c6\uff1a\u4e09\u5206\u4e00\u4fe1\u4e4b\uff09 2026-05-10 \u672c\u4ef6\uff1aPEPPOL-23541 Inconsisten [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":16737,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[45,49],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/16818"}],"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=16818"}],"version-history":[{"count":23,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/16818\/revisions"}],"predecessor-version":[{"id":16891,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/16818\/revisions\/16891"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/media\/16737"}],"wp:attachment":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}