Au plus un CountrySubDivisionName

Erreur FX-SCH-A-000875 Factur-X

L'élément 'ram:CountrySubDivisionName' ne peut apparaître qu'une fois au maximum.

Règle obligatoire : tant qu'elle n'est pas respectée, la facture est invalide et sera rejetée par les validateurs.
Ce qui ne va pas

PostalTradeAddress contient CountrySubDivisionName plusieurs fois. Cet élément ne peut y apparaître qu’une seule fois au maximum.

Ce que signifie la règle

La règle limite à un seul élément l’indication de la subdivision du pays dans l’adresse postale.

Veuillez indiquer au plus une subdivision du pays dans l’adresse postale du destinataire de la facture

CountrySubDivisionName apparaît plusieurs fois dans l’adresse postale du destinataire de la facture. Vous pouvez corriger cela en limitant l’information à un seul élément au maximum.

Que faire ?
  1. Repérez PostalTradeAddress dans l’adresse du destinataire de la facture.
  2. Vérifiez combien de fois CountrySubDivisionName y apparaît.
  3. Conservez au plus un élément CountrySubDivisionName.
  4. Générez de nouveau la facture et vérifiez-la à nouveau.
À quoi cela ressemble
✗ Déclenche le message
<ram:PostalTradeAddress>
  <ram:CountrySubDivisionName>Region A</ram:CountrySubDivisionName>
  <ram:CountrySubDivisionName>Region B</ram:CountrySubDivisionName>
</ram:PostalTradeAddress>
✓ Correct
<ram:PostalTradeAddress>
  <ram:CountrySubDivisionName>Region A</ram:CountrySubDivisionName>
</ram:PostalTradeAddress>
Détails techniques

Dans le contexte de PostalTradeAddress, le nombre d’éléments directs CountrySubDivisionName est compté ; le test est satisfait s’il n’y en a pas plus d’un.

Où la règle s'applique

La règle s’applique à l’adresse postale du destinataire de la facture dans InvoiceeTradeParty.

Message d'origine du Schematron
Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.
Contexte (rule/@context)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:InvoiceeTradeParty/ram:PostalTradeAddress
Expression de contrôle (assert/@test)
count(ram:CountrySubDivisionName)<=1