|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Message Set Creation from FpML (XML type) Schema |
« View previous topic :: View next topic » |
Author |
Message
|
john arden |
Posted: Wed Feb 22, 2006 2:44 am Post subject: Message Set Creation from FpML (XML type) Schema |
|
|
Novice
Joined: 21 Feb 2006 Posts: 19
|
To whomsoever
I am using Websphere 5 and MQ Broker workbench 5.3
I have the requirement to generate a very large message set from an fpml type schema. This schema is set in multiple files, linked by include. them main difference as far as I can see is that the main message, and many complex groups, does not include a normal content but instead is of a "type" which is defined.
When attempting to create the message definition file no elements show up and no "message" is generated however a number of global elements are created.
What can I try.
Do I need to do each file individually or should it pull the message together, all the subfiles have been imported into the same folder on the MQ Broker workbench.
Do I need to specify the structure in a different mode?
Below is the start of the .xsd file
<?xml version="1.0" encoding="utf-8"?>
<!--
== Copyright (c) 2002-2005. All rights reserved.
== Financial Products Markup Language is subject to the FpML public license.
== A copy of this license is available at http://www.fpml.org/documents/license
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.fpml.org/2005/FpML-4-2" targetNamespace="http://www.fpml.org/2005/FpML-4-2" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:include schemaLocation="fpml-fx-4-2.xsd"/>
<xsd:include schemaLocation="fpml-ird-4-2.xsd"/>
<xsd:include schemaLocation="fpml-eqd-4-2.xsd"/>
<xsd:include schemaLocation="fpml-return-swaps-4-2.xsd"/>
<xsd:include schemaLocation="fpml-cd-4-2.xsd"/>
<xsd:include schemaLocation="fpml-valuation-4-2.xsd"/>
<xsd:include schemaLocation="fpml-pretrade-4-2.xsd"/>
<xsd:include schemaLocation="fpml-tradeexec-4-2.xsd"/>
<xsd:include schemaLocation="fpml-posttrade-4-2.xsd"/>
<xsd:include schemaLocation="fpml-reporting-4-2.xsd"/>
<xsd:complexType name="ValuationDocument">
<xsd:annotation>
<xsd:documentation xml:lang="en">A type defining a content model that includes valuation (pricing and risk) data without expressing any processing intention.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="DataDocument">
<xsd:sequence>
<xsd:element ref="market" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="valuationSet" minOccurs="0" maxOccurs="unbounded"/>
<!-- pricing and risk definitions -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="FpML" type="DataDocument">
<xsd:annotation>
<xsd:documentation xml:lang="en">The FpML element forms the root for any conforming FpML instance document. The actual structure of the document is determined by setting the 'type' attribute to an appropriate derived subtype of the complex type Document.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:schema>
_________________
John Arden _________________ John Arden |
|
Back to top |
|
 |
shanson |
Posted: Wed Feb 22, 2006 5:19 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
John, you should be able to simply import all the schema into one message set, and the includes should resolve themselves. You can import one by one using the wizard or all in one go using mqsicreatemsgdefs command. You'll only get messages created for global elements if you select the appropriate wizard/command option. But you can always create messages by hand using the editor after the import, via 'Add Message From Global Element' menu item from the Outline view Messages icon. |
|
Back to top |
|
 |
halbe01 |
Posted: Fri Feb 24, 2006 8:45 am Post subject: |
|
|
Novice
Joined: 02 Feb 2005 Posts: 16
|
We're doing a very similar thing here - albeit with MQ 6 and broker 6. We've imported the FpML v4.1 schemas and created a message set from them. We found no problems with the multiple import statements in the main.xsd, however there were some bits of the schema which Broker specifically doesn't support. One example is that in places the schema it uses a wildcard element within a choice - and this isn't supported in the broker. Our solution was to remove these elements from the message set after import, knowing that the specific areas of the FpML weren't needed for our project.
We are however having further problems - it seems as through the Schemas are so complicated that the broker is having trouble using the resultant messagesets - we suspect because the messagesets haven't been imported quite correctly. If anyone has successfully used FpML within Broker, I'd love to hear more about it... |
|
Back to top |
|
 |
shanson |
Posted: Fri Feb 24, 2006 8:55 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
Which parser are you using, MRM XML or XMLNS/XMLNSC? What precisely are the problems you are seeing? |
|
Back to top |
|
 |
Pete |
Posted: Sat Feb 25, 2006 10:04 am Post subject: |
|
|
Apprentice
Joined: 25 Nov 2003 Posts: 43
|
Hi,
I'm working with halbe01 on this issue .
We are using the MRM XML parser and performing content and value validation.
The error we see is:
Quote: |
( MYMSGBROKER.myFpMLExeGrp ) Message Validation failure. Invalid member for content validation 'Closed'
Element, 'http://www.fpml.org/2004/FpML-4-1:trade', which is defined as a child of a complex type or group which has a type
content of 'Closed', has failed to validate successfully.
This could be because it :
a) has not been defined as a member of its parent complex type or group,
b) has been created out of order in the logical tree, for a composition of 'Ordered Set' or 'Sequence',
c) is a duplicate, which is not allowed for a composition of 'Ordered Set' or 'Unordered Set'.
The parent complex type or group has content validation of 'Closed'. The parent element is
'/http://www.fpml.org/2004/FpML-4-1:FpML'.
Modify the message set or messageflow and redeploy to the broker or modify the input message and resubmit to the broker.
|
The message we have modeled is named 'FpML' and is based on the FpML global element within the 'fpml-main-4-1.xsd' schema.
The 'FpML' element is of type 'Document' which is an abstract type.
From the 'FpML' annotation field:
Quote: |
The FpML element forms the root for any conforming FpML instance document. The actual structure of the document is
determined by setting the 'type' attribute to an appropriate derived subtype of the complex type Document.
|
The message we are passing is of type 'DataDocument', see:
Code: |
<FpML version="4-1" xsi:type="DataDocument" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fpml.org/2004/FpML-4-1 ../fpml-main-4-1.xsd" xmlns="http://www.fpml.org/2004/FpML-4-1">
<trade>
<tradeHeader>
<partyTradeIdentifier>
...message continues...
|
-----
As I understand it, the message should validate:
1) FpML is of type Document and Document is abstract.
2) DataDocument is a concrete extension of Document.
3) DataDocument has a 'Trade' as a child element.
Are we attempting something unsupported by WMBv6?
Thanks and regards,
Pete |
|
Back to top |
|
 |
venusboy |
Posted: Sun Feb 26, 2006 8:20 am Post subject: |
|
|
Acolyte
Joined: 11 Jun 2002 Posts: 51
|
If you have imported the FpML schema directly, then the exception is occuring due to the validation element declared as non-optional within the FpML message. This is rather strange as the underlying group is defined as optional, but the element is not. Change the the fpml-doc-4-1.mxsd 'validation' element to be optional and then it will not fail, as your sample message does not contain a validation attribute.
I would recommend you then test each of the sample FpML documents, as around 5% of these will fail with similar problems.
Regards,
Tom. |
|
Back to top |
|
 |
venusboy |
Posted: Sun Feb 26, 2006 10:59 pm Post subject: |
|
|
Acolyte
Joined: 11 Jun 2002 Posts: 51
|
Pete/halbe01,
Continuing from the previous reply. The next signification change is the hourMinuteTime element's physical properties. By default the physical definition of a xsd:time is to use UTC. Therefore change the physical properties from HH:mm:ssZZZ to HH:mm:ss.
The last change is the fxFeature element, the id attribute with referenceCurrency element does not seem to be validating correctly. I haven’t got this successfully working as I only had ½ a day to get the message set working and tested, and then some colleagues took over.
Ignoring the referenceCurrency id attribute problem, then these changes allow you to successfully validate all the 100 or so sample FpML documents.
There is a annoying problem with the performance of the WMB toolkit in building the workspace with ESQL files that reference these large message set projects. This just seems to be size/complexity issue and not to do with the multiple schemas. For example I did originally merged the xml schemas into one, but this didn’t make a significant performance change. I also attempt to change the eclipse java memory settings but this didn’t make too much difference either. The most significant performance increase was when I performed a wmbt.exe –clean, but I assume this was due to previous references.
After turning most of the builders off and not performing validation it still takes around 4 minutes to build the project, so it's best to turn off the auto-build and only build when you need to. In a similar line when attempting to use the ESQL auto-complete on the message set takes around the same time with 100% CPU utilization.
The toolkit ESQL MRM warnings will still be present as the root element type is abstract and therefore cannot resolve any concrete types. I would suggest that a concrete global element is created per abstract document type (e.g. DataDocument) so that toolkit can successfully highlight invalid global element references.
However the good news is that the message mapping node within the toolkit does not suffer from any performance issues, and more importantly the broker does not have a performance issue with these large message sets.
Hope this helps.
Tom. |
|
Back to top |
|
 |
Pete |
Posted: Mon Feb 27, 2006 1:56 am Post subject: |
|
|
Apprentice
Joined: 25 Nov 2003 Posts: 43
|
Tom,
Thanks for the help. Sorry to hear about your colleagues taking over, must be frustrating.....
Pete |
|
Back to top |
|
 |
venusboy |
Posted: Mon Feb 27, 2006 2:34 am Post subject: |
|
|
Acolyte
Joined: 11 Jun 2002 Posts: 51
|
|
Back to top |
|
 |
ak |
Posted: Wed Apr 25, 2007 1:44 am Post subject: WMB Message Set Creation uusing fpML 4.2 schema. |
|
|
Apprentice
Joined: 07 Aug 2006 Posts: 48 Location: England
|
Folks
I tried to import the standard fpML 4.2 schema as an MRM message set but I get peculiar warnings. I enabled namespaces and also using the XMLNS physical format. Messages are automatically created from all Global elemets .
Has anyone encounted this ?
Here are some of the warnings.
1. Message 'underlyingAsset' directly references an abstract Global Element. It can only be used within a multi-part message, which is then substituted in instance documents.
2. Element 'basketId' in complex type 'Basket' is rendered as XMLElement or XMLElementAttrVal and duplicates the values of element 'basketId' for the member properties (XML name, Namespace). Physical format: 'XMLNS'.
3. Message 'FpML' directly references a global element that has an abstract complex type. This is only supported on a broker running at version 6.0 or above.
4. Broker will treat Complex Type Definition 'Math' as <open> because it has mixed content.
5. Wildcard Element specifies a namespace, but the broker will allow elements from all namespaces in this position.
6. Simple Type Definition 'http://www.fpml.org/2005/FpML-4-2#HourMinuteTime' has a base type that is 'time' and contains pattern facets, which is not supported and will be ignored by the broker.
venusboy wrote: |
Pete/halbe01,
Continuing from the previous reply. The next signification change is the hourMinuteTime element's physical properties. By default the physical definition of a xsd:time is to use UTC. Therefore change the physical properties from HH:mm:ssZZZ to HH:mm:ss.
The last change is the fxFeature element, the id attribute with referenceCurrency element does not seem to be validating correctly. I haven’t got this successfully working as I only had ½ a day to get the message set working and tested, and then some colleagues took over.
Ignoring the referenceCurrency id attribute problem, then these changes allow you to successfully validate all the 100 or so sample FpML documents.
There is a annoying problem with the performance of the WMB toolkit in building the workspace with ESQL files that reference these large message set projects. This just seems to be size/complexity issue and not to do with the multiple schemas. For example I did originally merged the xml schemas into one, but this didn’t make a significant performance change. I also attempt to change the eclipse java memory settings but this didn’t make too much difference either. The most significant performance increase was when I performed a wmbt.exe –clean, but I assume this was due to previous references.
After turning most of the builders off and not performing validation it still takes around 4 minutes to build the project, so it's best to turn off the auto-build and only build when you need to. In a similar line when attempting to use the ESQL auto-complete on the message set takes around the same time with 100% CPU utilization.
The toolkit ESQL MRM warnings will still be present as the root element type is abstract and therefore cannot resolve any concrete types. I would suggest that a concrete global element is created per abstract document type (e.g. DataDocument) so that toolkit can successfully highlight invalid global element references.
However the good news is that the message mapping node within the toolkit does not suffer from any performance issues, and more importantly the broker does not have a performance issue with these large message sets.
Hope this helps.
Tom. |
|
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|