@@ -479,7 +479,6 @@ def find_attr_value_(attr_name, node):
479479class GDSParseError (Exception ):
480480 pass
481481
482-
483482def raise_parse_error (node , msg ):
484483 if XMLParser_import_library == XMLParser_import_lxml :
485484 msg = '%s (element %s/line %d)' % (
@@ -489,6 +488,13 @@ def raise_parse_error(node, msg):
489488 raise GDSParseError (msg )
490489
491490
491+ class GDSValueError (Exception ):
492+ pass
493+
494+ def raise_value_error (value , msg ):
495+ msg = '%s (got "%s")' % (msg , value , )
496+ raise GDSValueError (msg )
497+
492498class MixedContainer :
493499 # Constants for category:
494500 CategoryNone = 0
@@ -676,10 +682,26 @@ def get_Version(self): return self.Version
676682 def set_Version (self , Version ): self .Version = Version
677683 def validate_genericStringType5_35 (self , value ):
678684 # Validate type genericStringType5_35, a restriction on xs:string.
679- pass
685+ if ( 5 <= value .__len__ () <= 35 ):
686+ pass
687+ else :
688+ raise_parse_error ( value .__len__ (), 'Expected value between 5..35 characters' )
689+ return value
680690 def validate_YesNoType (self , value ):
681691 # Validate type YesNoType, a restriction on xs:NMTOKEN.
682- pass
692+ if ( value != "YES" and value != "NO" ):
693+ raise_parse_error ( value , 'Expected "YES" or "NO"' )
694+ return value
695+ def validate_genericStringValue5_35 (self , value ):
696+ if ( 5 <= value .__len__ () <= 35 ):
697+ pass
698+ else :
699+ raise_value_error ( value .__len__ (), 'Expected value between 5..35 characters' )
700+ return value
701+ def validate_YesNoValue (self , value ):
702+ if ( value != "YES" and value != "NO" ):
703+ raise_value_error ( value , 'Expected "YES" or "NO"' )
704+ return value
683705 def hasContent_ (self ):
684706 if (
685707 self .MessageDetails is not None or
@@ -726,6 +748,7 @@ def exportChildren(self, outfile, level, namespace_='', name_='FinvoiceSenderInf
726748 if self .SellerPartyDetails is not None :
727749 self .SellerPartyDetails .export (outfile , level , namespace_ , name_ = 'SellerPartyDetails' , pretty_print = pretty_print )
728750 if self .SellerOrganisationUnitNumber is not None :
751+ self .validate_genericStringValue5_35 (self .SellerOrganisationUnitNumber )
729752 showIndent (outfile , level , pretty_print )
730753 outfile .write ('<%sSellerOrganisationUnitNumber>%s</%sSellerOrganisationUnitNumber>%s' % (namespace_ , self .gds_format_string (quote_xml (self .SellerOrganisationUnitNumber ).encode (ExternalEncoding ), input_name = 'SellerOrganisationUnitNumber' ), namespace_ , eol_ ))
731754 if self .InvoiceSenderInformationDetails is not None :
@@ -735,9 +758,11 @@ def exportChildren(self, outfile, level, namespace_='', name_='FinvoiceSenderInf
735758 if self .SellerInvoiceDetails is not None :
736759 self .SellerInvoiceDetails .export (outfile , level , namespace_ , name_ = 'SellerInvoiceDetails' , pretty_print = pretty_print )
737760 if self .ProposedDueDateAccepted is not None :
761+ self .validate_YesNoValue (self .ProposedDueDateAccepted )
738762 showIndent (outfile , level , pretty_print )
739763 outfile .write ('<%sProposedDueDateAccepted>%s</%sProposedDueDateAccepted>%s' % (namespace_ , self .gds_format_string (quote_xml (self .ProposedDueDateAccepted ).encode (ExternalEncoding ), input_name = 'ProposedDueDateAccepted' ), namespace_ , eol_ ))
740764 if self .ProposedInvoicePeriodAccepted is not None :
765+ self .validate_YesNoValue (self .ProposedInvoicePeriodAccepted )
741766 showIndent (outfile , level , pretty_print )
742767 outfile .write ('<%sProposedInvoicePeriodAccepted>%s</%sProposedInvoicePeriodAccepted>%s' % (namespace_ , self .gds_format_string (quote_xml (self .ProposedInvoicePeriodAccepted ).encode (ExternalEncoding ), input_name = 'ProposedInvoicePeriodAccepted' ), namespace_ , eol_ ))
743768 def exportLiteral (self , outfile , level , name_ = 'FinvoiceSenderInfo' ):
@@ -765,6 +790,7 @@ def exportLiteralChildren(self, outfile, level, name_):
765790 showIndent (outfile , level )
766791 outfile .write ('),\n ' )
767792 if self .SellerOrganisationUnitNumber is not None :
793+ self .validate_genericStringValue5_35 (self .SellerOrganisationUnitNumber )
768794 showIndent (outfile , level )
769795 outfile .write ('SellerOrganisationUnitNumber=%s,\n ' % quote_python (self .SellerOrganisationUnitNumber ).encode (ExternalEncoding ))
770796 if self .InvoiceSenderInformationDetails is not None :
@@ -792,9 +818,11 @@ def exportLiteralChildren(self, outfile, level, name_):
792818 showIndent (outfile , level )
793819 outfile .write ('),\n ' )
794820 if self .ProposedDueDateAccepted is not None :
821+ self .validate_YesNoValue (self .ProposedDueDateAccepted )
795822 showIndent (outfile , level )
796823 outfile .write ('ProposedDueDateAccepted=%s,\n ' % quote_python (self .ProposedDueDateAccepted ).encode (ExternalEncoding ))
797824 if self .ProposedInvoicePeriodAccepted is not None :
825+ self .validate_YesNoValue (self .ProposedInvoicePeriodAccepted )
798826 showIndent (outfile , level )
799827 outfile .write ('ProposedInvoicePeriodAccepted=%s,\n ' % quote_python (self .ProposedInvoicePeriodAccepted ).encode (ExternalEncoding ))
800828 def build (self , node ):
@@ -884,16 +912,60 @@ def get_NewInvoiceSenderIntermediatorAddress(self): return self.NewInvoiceSender
884912 def set_NewInvoiceSenderIntermediatorAddress (self , NewInvoiceSenderIntermediatorAddress ): self .NewInvoiceSenderIntermediatorAddress = NewInvoiceSenderIntermediatorAddress
885913 def validate_genericStringType0_70 (self , value ):
886914 # Validate type genericStringType0_70, a restriction on xs:string.
887- pass
915+ if ( 0 <= value .__len__ () <= 70 ):
916+ pass
917+ else :
918+ raise_parse_error ( value .__len__ (), 'Expected value between 0..70 characters' )
919+ return value
888920 def validate_genericStringType0_512 (self , value ):
889921 # Validate type genericStringType0_512, a restriction on xs:string.
890- pass
922+ if ( 0 <= value .__len__ () <= 512 ):
923+ pass
924+ else :
925+ raise_parse_error ( value .__len__ (), 'Expected value between 0..512 characters' )
926+ return value
891927 def validate_genericStringType0_35 (self , value ):
892928 # Validate type genericStringType0_35, a restriction on xs:string.
893- pass
929+ if ( 0 <= value .__len__ () <= 35 ):
930+ pass
931+ else :
932+ raise_parse_error ( value .__len__ (), 'Expected value between 0..35 characters' )
933+ return value
894934 def validate_genericNMtokenType8_11 (self , value ):
895935 # Validate type genericNMtokenType8_11, a restriction on genericNMtokenType.
896- pass
936+ if ( 8 <= value .__len__ () <= 11 ):
937+ pass
938+ else :
939+ raise_parse_error ( value .__len__ (), 'Expected value between 8..11 characters' )
940+ return value
941+ def validate_genericStringValue0_70 (self , value ):
942+ # Validate type genericStringType0_70, a restriction on xs:string.
943+ if ( 0 <= value .__len__ () <= 70 ):
944+ pass
945+ else :
946+ raise_value_error ( value .__len__ (), 'Expected value between 0..70 characters' )
947+ return value
948+ def validate_genericStringValue0_512 (self , value ):
949+ # Validate type genericStringType0_512, a restriction on xs:string.
950+ if ( 0 <= value .__len__ () <= 512 ):
951+ pass
952+ else :
953+ raise_value_error ( value .__len__ (), 'Expected value between 0..512 characters' )
954+ return value
955+ def validate_genericStringValue0_35 (self , value ):
956+ # Validate type genericStringType0_35, a restriction on xs:string.
957+ if ( 0 <= value .__len__ () <= 35 ):
958+ pass
959+ else :
960+ raise_value_error ( value .__len__ (), 'Expected value between 0..35 characters' )
961+ return value
962+ def validate_genericNMtokenValue8_11 (self , value ):
963+ # Validate type genericNMtokenType8_11, a restriction on genericNMtokenType.
964+ if ( 8 <= value .__len__ () <= 11 ):
965+ pass
966+ else :
967+ raise_value_error ( value .__len__ (), 'Expected value between 8..11 characters' )
968+ return value
897969 def hasContent_ (self ):
898970 if (
899971 self .SellerWebaddressNameText is not None or
@@ -932,21 +1004,27 @@ def exportChildren(self, outfile, level, namespace_='', name_='InvoiceSenderInfo
9321004 else :
9331005 eol_ = ''
9341006 if self .SellerWebaddressNameText is not None :
1007+ self .validate_genericStringValue0_70 (self .SellerWebaddressNameText )
9351008 showIndent (outfile , level , pretty_print )
9361009 outfile .write ('<%sSellerWebaddressNameText>%s</%sSellerWebaddressNameText>%s' % (namespace_ , self .gds_format_string (quote_xml (self .SellerWebaddressNameText ).encode (ExternalEncoding ), input_name = 'SellerWebaddressNameText' ), namespace_ , eol_ ))
9371010 if self .SellerWebaddressText is not None :
1011+ self .validate_genericStringValue0_512 (self .SellerWebaddressText )
9381012 showIndent (outfile , level , pretty_print )
9391013 outfile .write ('<%sSellerWebaddressText>%s</%sSellerWebaddressText>%s' % (namespace_ , self .gds_format_string (quote_xml (self .SellerWebaddressText ).encode (ExternalEncoding ), input_name = 'SellerWebaddressText' ), namespace_ , eol_ ))
9401014 if self .InvoiceSenderAddress is not None :
1015+ self .validate_genericStringValue0_35 (self .InvoiceSenderAddress )
9411016 showIndent (outfile , level , pretty_print )
9421017 outfile .write ('<%sInvoiceSenderAddress>%s</%sInvoiceSenderAddress>%s' % (namespace_ , self .gds_format_string (quote_xml (self .InvoiceSenderAddress ).encode (ExternalEncoding ), input_name = 'InvoiceSenderAddress' ), namespace_ , eol_ ))
9431018 if self .InvoiceSenderIntermediatorAddress is not None :
1019+ self .validate_genericNMtokenValue8_11 (self .InvoiceSenderIntermediatorAddress )
9441020 showIndent (outfile , level , pretty_print )
9451021 outfile .write ('<%sInvoiceSenderIntermediatorAddress>%s</%sInvoiceSenderIntermediatorAddress>%s' % (namespace_ , self .gds_format_string (quote_xml (self .InvoiceSenderIntermediatorAddress ).encode (ExternalEncoding ), input_name = 'InvoiceSenderIntermediatorAddress' ), namespace_ , eol_ ))
9461022 if self .NewInvoiceSenderAddress is not None :
1023+ self .validate_genericStringValue0_35 (self .NewInvoiceSenderAddress )
9471024 showIndent (outfile , level , pretty_print )
9481025 outfile .write ('<%sNewInvoiceSenderAddress>%s</%sNewInvoiceSenderAddress>%s' % (namespace_ , self .gds_format_string (quote_xml (self .NewInvoiceSenderAddress ).encode (ExternalEncoding ), input_name = 'NewInvoiceSenderAddress' ), namespace_ , eol_ ))
9491026 if self .NewInvoiceSenderIntermediatorAddress is not None :
1027+ self .validate_genericNMtokenValue8_11 (self .NewInvoiceSenderIntermediatorAddress )
9501028 showIndent (outfile , level , pretty_print )
9511029 outfile .write ('<%sNewInvoiceSenderIntermediatorAddress>%s</%sNewInvoiceSenderIntermediatorAddress>%s' % (namespace_ , self .gds_format_string (quote_xml (self .NewInvoiceSenderIntermediatorAddress ).encode (ExternalEncoding ), input_name = 'NewInvoiceSenderIntermediatorAddress' ), namespace_ , eol_ ))
9521030 def exportLiteral (self , outfile , level , name_ = 'InvoiceSenderInformationDetailsType' ):
@@ -959,21 +1037,27 @@ def exportLiteralAttributes(self, outfile, level, already_processed, name_):
9591037 pass
9601038 def exportLiteralChildren (self , outfile , level , name_ ):
9611039 if self .SellerWebaddressNameText is not None :
1040+ self .validate_genericStringValue0_70 (self .SellerWebaddressNameText )
9621041 showIndent (outfile , level )
9631042 outfile .write ('SellerWebaddressNameText=%s,\n ' % quote_python (self .SellerWebaddressNameText ).encode (ExternalEncoding ))
9641043 if self .SellerWebaddressText is not None :
1044+ self .validate_genericStringValue0_512 (self .SellerWebaddressText )
9651045 showIndent (outfile , level )
9661046 outfile .write ('SellerWebaddressText=%s,\n ' % quote_python (self .SellerWebaddressText ).encode (ExternalEncoding ))
9671047 if self .InvoiceSenderAddress is not None :
1048+ self .validate_genericStringValue0_35 (self .InvoiceSenderAddress )
9681049 showIndent (outfile , level )
9691050 outfile .write ('InvoiceSenderAddress=%s,\n ' % quote_python (self .InvoiceSenderAddress ).encode (ExternalEncoding ))
9701051 if self .InvoiceSenderIntermediatorAddress is not None :
1052+ self .validate_genericNMtokenValue8_11 (self .InvoiceSenderIntermediatorAddress )
9711053 showIndent (outfile , level )
9721054 outfile .write ('InvoiceSenderIntermediatorAddress=%s,\n ' % quote_python (self .InvoiceSenderIntermediatorAddress ).encode (ExternalEncoding ))
9731055 if self .NewInvoiceSenderAddress is not None :
1056+ self .validate_genericStringValue0_35 (self .NewInvoiceSenderAddress )
9741057 showIndent (outfile , level )
9751058 outfile .write ('NewInvoiceSenderAddress=%s,\n ' % quote_python (self .NewInvoiceSenderAddress ).encode (ExternalEncoding ))
9761059 if self .NewInvoiceSenderIntermediatorAddress is not None :
1060+ self .validate_genericNMtokenValue8_11 (self .NewInvoiceSenderIntermediatorAddress )
9771061 showIndent (outfile , level )
9781062 outfile .write ('NewInvoiceSenderIntermediatorAddress=%s,\n ' % quote_python (self .NewInvoiceSenderIntermediatorAddress ).encode (ExternalEncoding ))
9791063 def build (self , node ):
@@ -2896,6 +2980,10 @@ def factory(*args_, **kwargs_):
28962980 factory = staticmethod (factory )
28972981 def get_valueOf_ (self ): return self .valueOf_
28982982 def set_valueOf_ (self , valueOf_ ): self .valueOf_ = valueOf_
2983+ def validate_valueOf_value (self , value ):
2984+ if ( value .__len__ () > 35 ):
2985+ raise_value_error ( value .__len__ (), 'Expected value less than 35 characters' )
2986+ return value
28992987 def hasContent_ (self ):
29002988 if (
29012989 self .valueOf_ or
@@ -2911,6 +2999,7 @@ def export(self, outfile, level, namespace_='', name_='SellerInvoiceTypeTextType
29112999 eol_ = ''
29123000 if self .original_tagname_ is not None :
29133001 name_ = self .original_tagname_
3002+ self .validate_valueOf_value (self .valueOf_ ) # validate valueOf_
29143003 showIndent (outfile , level , pretty_print )
29153004 outfile .write ('<%s%s%s' % (namespace_ , name_ , namespacedef_ and ' ' + namespacedef_ or '' , ))
29163005 already_processed = set ()
0 commit comments