ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Message Set Creation from FpML (XML type) Schema

Post new topic  Reply to topic
 Message Set Creation from FpML (XML type) Schema « View previous topic :: View next topic » 
Author Message
john arden
PostPosted: Wed Feb 22, 2006 2:44 am    Post subject: Message Set Creation from FpML (XML type) Schema Reply with quote

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
View user's profile Send private message
shanson
PostPosted: Wed Feb 22, 2006 5:19 am    Post subject: Reply with quote

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
View user's profile Send private message
halbe01
PostPosted: Fri Feb 24, 2006 8:45 am    Post subject: Reply with quote

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
View user's profile Send private message
shanson
PostPosted: Fri Feb 24, 2006 8:55 am    Post subject: Reply with quote

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
View user's profile Send private message
Pete
PostPosted: Sat Feb 25, 2006 10:04 am    Post subject: Reply with quote

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
View user's profile Send private message
venusboy
PostPosted: Sun Feb 26, 2006 8:20 am    Post subject: Reply with quote

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
View user's profile Send private message
venusboy
PostPosted: Sun Feb 26, 2006 10:59 pm    Post subject: Reply with quote

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
View user's profile Send private message
Pete
PostPosted: Mon Feb 27, 2006 1:56 am    Post subject: Reply with quote

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
View user's profile Send private message
venusboy
PostPosted: Mon Feb 27, 2006 2:34 am    Post subject: Reply with quote

Acolyte

Joined: 11 Jun 2002
Posts: 51

Back to top
View user's profile Send private message
ak
PostPosted: Wed Apr 25, 2007 1:44 am    Post subject: WMB Message Set Creation uusing fpML 4.2 schema. Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Message Set Creation from FpML (XML type) Schema
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.