OFXAggregate Class
Properties Methods Events Config Settings Errors
The OFXAggregate class supports parsing of XML aggregates that can be retrieved from other classes.
Syntax
class inebank.OFXAggregate
Remarks
The OFXAggregate class supports simple XML aggregate traversal functionality. Simply set the aggregate property to the value received from any aggregate property of any class in the package (e.g. the TxAggregate property from BankStatement or CCStatement). You can then use xpath to walk the Document Object Model (DOM) tree.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
aggregate | The full text of the current aggregate. |
namespace_count | The number of records in the Namespace arrays. |
namespace_prefix | This property contains the Prefix for the Namespace . |
namespace_uri | This property contains the namespace URI associated with the corresponding Prefix . |
xchild_count | The number of records in the XChild arrays. |
xchild_name | The Name property provides the local name (without a prefix) of the element. |
xchild_namespace | This property contains the namespace of the element. |
xchild_prefix | This property contains the prefix of the element (if any). |
xchild_x_text | This property contains the inner text of the element. |
xelement | This property includes the name of the current element. |
xnamespace | This property includes the namespace of the current element. |
xparent | This property includes the parent of the current element. |
xpath | This property provides a way to point to a specific element in the document. |
xprefix | This property includes the prefix of the current element. |
xtext | This property includes the text of the current element. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
config | Sets or retrieves a configuration setting. |
has_xpath | Checks whether a certain XPath exists inside the aggregate. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
on_error | Fired when information is available about errors during data delivery. |
Config Settings
The following is a list of config settings for the class with short descriptions. Click on the links for further details.
CacheContent | If true, the original XML is saved in a buffer. |
Charset | Specifies the charset used when encoding data. |
EOL | The characters to use for separating lines. |
ErrorOnEmptyAttr | If true, passing an invalid attribute to the Attr method will throw an exception. |
ExtraNameChars | Extra characters for the parser to consider as name characters. |
ExtraSpaceChars | Extra characters for the parser to consider as white space. |
FlushOnEOL | If set, the parser flushes its text buffer after every line of text. |
IgnoreBadAttributePrefixes | If true, bad (unknown) attribute prefixes are ignored. |
IgnoreBadElementPrefixes | If true, bad (unknown) element prefixes are ignored. |
IncludeElementPrefix | Whether to include the prefix in the element name. |
IncludeXMLDeclaration | Whether to include the XML declaration when writing XML. |
Indent | The characters to use for each indentation level. |
Interrupt | Whether to stop parsing the current XML document. |
Offset | Current offset of the document being parsed. |
PreserveWhitespace | If true, leading and trailing whitespace in element text is preserved. |
QuoteChar | Quote character to use for attribute values. |
StringProcessingOptions | Defines options to use when processing string values. |
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
MaskSensitiveData | Whether sensitive data is masked in log messages. |
ProcessIdleEvents | Whether the class uses its internal event loop to process events when the main thread is idle. |
SelectWaitMillis | The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process. |
UseInternalSecurityAPI | Whether or not to use the system security libraries or an internal implementation. |
aggregate Property
The full text of the current aggregate.
Syntax
def get_aggregate() -> str: ... def set_aggregate(value: str) -> None: ...
aggregate = property(get_aggregate, set_aggregate)
Default Value
""
Remarks
aggregate contains the full text of the XML aggregate currently being represented by the class's DOM. You may set this to a value obtained from any aggregate property of any other control (such as SignOnInfoAggregate from FIProfile). Once set, you can use xpath to walk the DOM tree. xelement and xtext will retrieve the current element's name and contents, and xchildren can be used to get the number of children.
namespace_count Property
The number of records in the Namespace arrays.
Syntax
def get_namespace_count() -> int: ... def set_namespace_count(value: int) -> None: ...
namespace_count = property(get_namespace_count, set_namespace_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at namespace_count - 1.namespace_prefix Property
This property contains the Prefix for the Namespace .
Syntax
def get_namespace_prefix(namespace_index: int) -> str: ... def set_namespace_prefix(namespace_index: int, value: str) -> None: ...
Default Value
""
Remarks
This property contains the namespace_prefix for the namespace.
The namespace_index parameter specifies the index of the item in the array. The size of the array is controlled by the namespace_count property.
namespace_uri Property
This property contains the namespace URI associated with the corresponding Prefix .
Syntax
def get_namespace_uri(namespace_index: int) -> str: ... def set_namespace_uri(namespace_index: int, value: str) -> None: ...
Default Value
""
Remarks
This property contains the namespace URI associated with the corresponding namespace_prefix. This URL is usually pointing to the XML schema for the namespace.
The namespace_index parameter specifies the index of the item in the array. The size of the array is controlled by the namespace_count property.
xchild_count Property
The number of records in the XChild arrays.
Syntax
def get_xchild_count() -> int: ... def set_xchild_count(value: int) -> None: ...
xchild_count = property(get_xchild_count, set_xchild_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at xchild_count - 1.xchild_name Property
The Name property provides the local name (without a prefix) of the element.
Syntax
def get_xchild_name(xchild_index: int) -> str: ...
Default Value
""
Remarks
The xchild_name property provides the local name (without a prefix) of the element.
The xchild_index parameter specifies the index of the item in the array. The size of the array is controlled by the xchild_count property.
This property is read-only.
xchild_namespace Property
This property contains the namespace of the element.
Syntax
def get_xchild_namespace(xchild_index: int) -> str: ...
Default Value
""
Remarks
This property contains the namespace of the element.
The xchild_index parameter specifies the index of the item in the array. The size of the array is controlled by the xchild_count property.
This property is read-only.
xchild_prefix Property
This property contains the prefix of the element (if any).
Syntax
def get_xchild_prefix(xchild_index: int) -> str: ...
Default Value
""
Remarks
This property contains the prefix of the element (if any). If the element does not have a prefix, this property is empty.
The xchild_index parameter specifies the index of the item in the array. The size of the array is controlled by the xchild_count property.
This property is read-only.
xchild_x_text Property
This property contains the inner text of the element.
Syntax
def get_xchild_x_text(xchild_index: int) -> str: ...
Default Value
""
Remarks
This property contains the inner text of the element.
The xchild_index parameter specifies the index of the item in the array. The size of the array is controlled by the xchild_count property.
This property is read-only.
xelement Property
This property includes the name of the current element.
Syntax
def get_xelement() -> str: ... def set_xelement(value: str) -> None: ...
xelement = property(get_xelement, set_xelement)
Default Value
""
Remarks
The current element is specified through the xpath property.
xnamespace Property
This property includes the namespace of the current element.
Syntax
def get_xnamespace() -> str: ... def set_xnamespace(value: str) -> None: ...
xnamespace = property(get_xnamespace, set_xnamespace)
Default Value
""
Remarks
The current element is specified through the xpath property.
xparent Property
This property includes the parent of the current element.
Syntax
def get_xparent() -> str: ...
xparent = property(get_xparent, None)
Default Value
""
Remarks
The current element is specified through the xpath property.
This property is read-only.
xpath Property
This property provides a way to point to a specific element in the document.
Syntax
def get_xpath() -> str: ... def set_xpath(value: str) -> None: ...
xpath = property(get_xpath, set_xpath)
Default Value
""
Remarks
xpath implements a subset of the XML XPath specification, allowing you to point to specific elements in the XML documents.
The path is a series of one or more element accessors separated by '/'. The path can be absolute (starting with '/') or relative to the current xpath location.
The following are possible values for an element accessor:
'name' | A particular element name |
name[i] | The i-th subelement of the current element with the given name |
[i] | The i-th subelement of the current element |
[last()] | The last subelement of the current element |
[last()-i] | The subelement located at the last location minus i in the current element |
name[@attrname="attrvalue"] | The subelement containing a particular value for a given attribute (supports single AND double quotes) |
.. | The parent of the current element |
build_dom must be set to True before parsing the document for the xpath functionality to be available.
Example. Setting XPath:
Document root | XML.XPath = "/" |
Specific Element | XML.XPath = "/root/SubElement1/SubElement2/" |
i-th Child | XML.XPath = "/root/SubElement1[i]" |
xprefix Property
This property includes the prefix of the current element.
Syntax
def get_xprefix() -> str: ... def set_xprefix(value: str) -> None: ...
xprefix = property(get_xprefix, set_xprefix)
Default Value
""
Remarks
The current element is specified through the xpath property.
xtext Property
This property includes the text of the current element.
Syntax
def get_xtext() -> str: ... def set_xtext(value: str) -> None: ...
xtext = property(get_xtext, set_xtext)
Default Value
""
Remarks
The current element is specified through the xpath property.
config Method
Sets or retrieves a configuration setting.
Syntax
def config(configuration_string: str) -> str: ...
Remarks
config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
has_xpath Method
Checks whether a certain XPath exists inside the aggregate.
Syntax
def has_xpath(xpath: str) -> bool: ...
Remarks
Used when there is no assurance that a certain XPath exists inside an aggregate.
on_error Event
Fired when information is available about errors during data delivery.
Syntax
class OFXAggregateErrorEventParams(object): @property def error_code() -> int: ... @property def description() -> str: ... # In class OFXAggregate: @property def on_error() -> Callable[[OFXAggregateErrorEventParams], None]: ... @on_error.setter def on_error(event_hook: Callable[[OFXAggregateErrorEventParams], None]) -> None: ...
Remarks
The on_error event is fired in case of exceptional conditions during message processing. Normally the class fails with an error.
The ErrorCode parameter contains an error code, and the Description parameter contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the Error Codes section.
OFXAggregate Config Settings
The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the config method.
XML Config Settings
This option should be combined with Indent for full effect.
If you would like any other characters to be considered as name characters, you may set them as a string into this property.
If you would like any other characters to be considered as white space, you may set them as a string into this property.
If False (default) and validate is set to False, the prefix is included in the Element parameter (e.g., ds:DigestMethod).
If True and validate is set to False, the prefix is not included in the Element parameter (e.g., DigestMethod).
This setting is applicable only when validate is False.
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> ...
This option should be combined with EOL for full effect.
void xml_OnStartElement(object sender, XMLStartElementEventArgs e)
{
xml.Config("Interrupt");
}
Offset values start at 1.
Note: This applies only when build_dom is False.
By default, no additional processing is performed and the string is returned as is from the document. Strings may also be XML unescaped. Possible values are as follows:
0 (none - default) | No additional processing is performed. |
1 | Strings are XML unescaped. |
For instance, when set to 0, the following text may be fired through the on_characters event:
&"<>
When set to 1, the following text would be fired through the on_characters event:
&"<>
Base Config Settings
The following is a list of valid code page identifiers:
Identifier | Name |
037 | IBM EBCDIC - U.S./Canada |
437 | OEM - United States |
500 | IBM EBCDIC - International |
708 | Arabic - ASMO 708 |
709 | Arabic - ASMO 449+, BCON V4 |
710 | Arabic - Transparent Arabic |
720 | Arabic - Transparent ASMO |
737 | OEM - Greek (formerly 437G) |
775 | OEM - Baltic |
850 | OEM - Multilingual Latin I |
852 | OEM - Latin II |
855 | OEM - Cyrillic (primarily Russian) |
857 | OEM - Turkish |
858 | OEM - Multilingual Latin I + Euro symbol |
860 | OEM - Portuguese |
861 | OEM - Icelandic |
862 | OEM - Hebrew |
863 | OEM - Canadian-French |
864 | OEM - Arabic |
865 | OEM - Nordic |
866 | OEM - Russian |
869 | OEM - Modern Greek |
870 | IBM EBCDIC - Multilingual/ROECE (Latin-2) |
874 | ANSI/OEM - Thai (same as 28605, ISO 8859-15) |
875 | IBM EBCDIC - Modern Greek |
932 | ANSI/OEM - Japanese, Shift-JIS |
936 | ANSI/OEM - Simplified Chinese (PRC, Singapore) |
949 | ANSI/OEM - Korean (Unified Hangul Code) |
950 | ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) |
1026 | IBM EBCDIC - Turkish (Latin-5) |
1047 | IBM EBCDIC - Latin 1/Open System |
1140 | IBM EBCDIC - U.S./Canada (037 + Euro symbol) |
1141 | IBM EBCDIC - Germany (20273 + Euro symbol) |
1142 | IBM EBCDIC - Denmark/Norway (20277 + Euro symbol) |
1143 | IBM EBCDIC - Finland/Sweden (20278 + Euro symbol) |
1144 | IBM EBCDIC - Italy (20280 + Euro symbol) |
1145 | IBM EBCDIC - Latin America/Spain (20284 + Euro symbol) |
1146 | IBM EBCDIC - United Kingdom (20285 + Euro symbol) |
1147 | IBM EBCDIC - France (20297 + Euro symbol) |
1148 | IBM EBCDIC - International (500 + Euro symbol) |
1149 | IBM EBCDIC - Icelandic (20871 + Euro symbol) |
1200 | Unicode UCS-2 Little-Endian (BMP of ISO 10646) |
1201 | Unicode UCS-2 Big-Endian |
1250 | ANSI - Central European |
1251 | ANSI - Cyrillic |
1252 | ANSI - Latin I |
1253 | ANSI - Greek |
1254 | ANSI - Turkish |
1255 | ANSI - Hebrew |
1256 | ANSI - Arabic |
1257 | ANSI - Baltic |
1258 | ANSI/OEM - Vietnamese |
1361 | Korean (Johab) |
10000 | MAC - Roman |
10001 | MAC - Japanese |
10002 | MAC - Traditional Chinese (Big5) |
10003 | MAC - Korean |
10004 | MAC - Arabic |
10005 | MAC - Hebrew |
10006 | MAC - Greek I |
10007 | MAC - Cyrillic |
10008 | MAC - Simplified Chinese (GB 2312) |
10010 | MAC - Romania |
10017 | MAC - Ukraine |
10021 | MAC - Thai |
10029 | MAC - Latin II |
10079 | MAC - Icelandic |
10081 | MAC - Turkish |
10082 | MAC - Croatia |
12000 | Unicode UCS-4 Little-Endian |
12001 | Unicode UCS-4 Big-Endian |
20000 | CNS - Taiwan |
20001 | TCA - Taiwan |
20002 | Eten - Taiwan |
20003 | IBM5550 - Taiwan |
20004 | TeleText - Taiwan |
20005 | Wang - Taiwan |
20105 | IA5 IRV International Alphabet No. 5 (7-bit) |
20106 | IA5 German (7-bit) |
20107 | IA5 Swedish (7-bit) |
20108 | IA5 Norwegian (7-bit) |
20127 | US-ASCII (7-bit) |
20261 | T.61 |
20269 | ISO 6937 Non-Spacing Accent |
20273 | IBM EBCDIC - Germany |
20277 | IBM EBCDIC - Denmark/Norway |
20278 | IBM EBCDIC - Finland/Sweden |
20280 | IBM EBCDIC - Italy |
20284 | IBM EBCDIC - Latin America/Spain |
20285 | IBM EBCDIC - United Kingdom |
20290 | IBM EBCDIC - Japanese Katakana Extended |
20297 | IBM EBCDIC - France |
20420 | IBM EBCDIC - Arabic |
20423 | IBM EBCDIC - Greek |
20424 | IBM EBCDIC - Hebrew |
20833 | IBM EBCDIC - Korean Extended |
20838 | IBM EBCDIC - Thai |
20866 | Russian - KOI8-R |
20871 | IBM EBCDIC - Icelandic |
20880 | IBM EBCDIC - Cyrillic (Russian) |
20905 | IBM EBCDIC - Turkish |
20924 | IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol) |
20932 | JIS X 0208-1990 & 0121-1990 |
20936 | Simplified Chinese (GB2312) |
21025 | IBM EBCDIC - Cyrillic (Serbian, Bulgarian) |
21027 | Extended Alpha Lowercase |
21866 | Ukrainian (KOI8-U) |
28591 | ISO 8859-1 Latin I |
28592 | ISO 8859-2 Central Europe |
28593 | ISO 8859-3 Latin 3 |
28594 | ISO 8859-4 Baltic |
28595 | ISO 8859-5 Cyrillic |
28596 | ISO 8859-6 Arabic |
28597 | ISO 8859-7 Greek |
28598 | ISO 8859-8 Hebrew |
28599 | ISO 8859-9 Latin 5 |
28605 | ISO 8859-15 Latin 9 |
29001 | Europa 3 |
38598 | ISO 8859-8 Hebrew |
50220 | ISO 2022 Japanese with no halfwidth Katakana |
50221 | ISO 2022 Japanese with halfwidth Katakana |
50222 | ISO 2022 Japanese JIS X 0201-1989 |
50225 | ISO 2022 Korean |
50227 | ISO 2022 Simplified Chinese |
50229 | ISO 2022 Traditional Chinese |
50930 | Japanese (Katakana) Extended |
50931 | US/Canada and Japanese |
50933 | Korean Extended and Korean |
50935 | Simplified Chinese Extended and Simplified Chinese |
50936 | Simplified Chinese |
50937 | US/Canada and Traditional Chinese |
50939 | Japanese (Latin) Extended and Japanese |
51932 | EUC - Japanese |
51936 | EUC - Simplified Chinese |
51949 | EUC - Korean |
51950 | EUC - Traditional Chinese |
52936 | HZ-GB2312 Simplified Chinese |
54936 | Windows XP: GB18030 Simplified Chinese (4 Byte) |
57002 | ISCII Devanagari |
57003 | ISCII Bengali |
57004 | ISCII Tamil |
57005 | ISCII Telugu |
57006 | ISCII Assamese |
57007 | ISCII Oriya |
57008 | ISCII Kannada |
57009 | ISCII Malayalam |
57010 | ISCII Gujarati |
57011 | ISCII Punjabi |
65000 | Unicode UTF-7 |
65001 | Unicode UTF-8 |
Identifier | Name |
1 | ASCII |
2 | NEXTSTEP |
3 | JapaneseEUC |
4 | UTF8 |
5 | ISOLatin1 |
6 | Symbol |
7 | NonLossyASCII |
8 | ShiftJIS |
9 | ISOLatin2 |
10 | Unicode |
11 | WindowsCP1251 |
12 | WindowsCP1252 |
13 | WindowsCP1253 |
14 | WindowsCP1254 |
15 | WindowsCP1250 |
21 | ISO2022JP |
30 | MacOSRoman |
10 | UTF16String |
0x90000100 | UTF16BigEndian |
0x94000100 | UTF16LittleEndian |
0x8c000100 | UTF32String |
0x98000100 | UTF32BigEndian |
0x9c000100 | UTF32LittleEndian |
65536 | Proprietary |
- Product: The product the license is for.
- Product Key: The key the license was generated from.
- License Source: Where the license was found (e.g., RuntimeLicense, License File).
- License Type: The type of license installed (e.g., Royalty Free, Single Server).
- Last Valid Build: The last valid build number for which the license will work.
This setting only works on these classes: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to True tells the class to use the internal implementation instead of using the system security libraries.
On Windows, this setting is set to False by default. On Linux/macOS, this setting is set to True by default.
To use the system security libraries for Linux, OpenSSL support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.
OFXAggregate Errors
XML Errors
101 | Invalid attribute index. |
102 | No attributes available. |
103 | Invalid namespace index. |
104 | No namespaces available. |
105 | Invalid element index. |
106 | No elements available. |
107 | Attribute does not exist. |
201 | Unbalanced element tag. |
202 | Unknown element prefix (cannot find namespace). |
203 | Unknown attribute prefix (cannot find namespace). |
204 | Invalid XML markup. |
205 | Invalid end state for parser. |
206 | Document contains unbalanced elements. |
207 | Invalid xpath. |
208 | No such child. |
209 | Top element does not match start of path. |
210 | DOM tree unavailable (set build_dom to True and reparse). |
302 | Cannot open file. |
401 | Invalid XML would be generated. |
402 | An invalid XML name has been specified. |