Au maximum un ram:CountrySubDivisionName

Erreur FX-SCH-A-000920 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

Le ram:PostalTradeAddress contient plusieurs éléments ram:CountrySubDivisionName. Cet élément ne peut apparaître qu'une seule fois au maximum.

Ce que signifie la règle

Cette règle limite à un seul élément l'indication de la subdivision du pays dans cette adresse.

Veuillez n'utiliser qu'un seul `ram:CountrySubDivisionName` pour la subdivision du pays

La subdivision du pays est indiquée plusieurs fois dans l'adresse du bénéficiaire du paiement. La vérification peut être satisfaite en ne conservant qu'une seule indication.

Que faire ?
  1. Repérez le ram:PostalTradeAddress sous ram:SpecifiedLegalOrganization du bénéficiaire du paiement.
  2. Comptez les éléments ram:CountrySubDivisionName qu'il contient et n'en conservez qu'un au maximum.
  3. Générez de nouveau la facture et vérifiez-la à nouveau.
À quoi cela ressemble
✗ Déclenche le message
<ram:PostalTradeAddress>
  <ram:CountrySubDivisionName>A</ram:CountrySubDivisionName>
  <ram:CountrySubDivisionName>B</ram:CountrySubDivisionName>
</ram:PostalTradeAddress>
✓ Correct
<ram:PostalTradeAddress>
  <ram:CountrySubDivisionName>A</ram:CountrySubDivisionName>
</ram:PostalTradeAddress>
Détails techniques

Le contrôle vérifie que le contexte contient au maximum un élément direct ram:CountrySubDivisionName.

Où la règle s'applique

Dans le ram:PostalTradeAddress du bénéficiaire du paiement, au sein de ram:SpecifiedLegalOrganization.

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