asBag, asSet, asOrderedSet, asSequence
Table of contents
Description of the method
Description: | Methods asBag, asSet, asOrderedSet and asSequence create a collection of the specified type. Please note the usage in collections wiki page.
|
Available for: | base64binary, boolean, datetime, double/decimal, date, hexBinary, integer, string, double/decimal and integer |
Parameters: | - |
Return type: | - |
Example1
Context: | Message |
OCL: | self.Header.ControlSum = self.Transaction->asBag().Amount->sum()
|
Description: | Compares the value of ControlSum against the sum of values in Transaction, which is defined to be in collection type bag. |
The XML snippet below would pass this check. Note the second occurrence of transaction, expression is true because amount is not above 200.
<?xml version="1.0" encoding="UTF-8"?> <Message xmlns="http://www.XMLdation.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Header> <Id>a</Id> <TimeStamp>2015-07-03T12:17:50</TimeStamp> <ControlSum>2</ControlSum> <NumberOfTransactions>1</NumberOfTransactions> </Header> <Transaction> <Id>TransactionId1</Id> <Amount>1</Amount> <Debtor> <Name>Debtor1</Name> </Debtor> <Creditor> <Name>Creditor1</Name> </Creditor> </Transaction> <Transaction> <Id>TransactionId2</Id> <Amount>1</Amount> <Debtor> <Name>Debtor2</Name> </Debtor> <Creditor> <Name>Creditor2</Name> </Creditor> </Transaction> </Message> |
The other snippet below however would not pass
<ControlSum>4</ControlSum> |
(with everything else similar than in the valid file)