cancel
Showing results for 
Search instead for 
Did you mean: 

MII XML Schema

Former Member
0 Kudos

Hello,

Does anyone have (or can point me to) an XML Schema (.XSD) that describes the standard Rowsets/Rowset/Row structure of the MII XML document? I presumed it to be installed somewhere during the 11.5 installation, but if it is I can't find it.

Thanks in advance,

Dave

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

There is no "standard" structure, since the child elements of the "Row" element will be specific to a given xMII dataset. A schema could be defined for the "standard" parts, but would require use of the xsd:any type to deal with the indeterminate elements described above, thus rendering it pretty much useless for most applications.

Essentially, you need to use the specific results of a given query or BLS transaction to determine the "schema".

One exception to this is when invoking BLS transactions via the web service interface. When you use "WSDLGen" to provide the web service definition, it will automatically generate you a schema for a specific BLS transaction's input and output signature.

You could extract this schema if you wanted to, I suppose.

Former Member
0 Kudos

Thanks for your suggestions.

A little more insight on what I am doing: I am getting the XML data via HTTP from a Query Template to display in Crystal Reports. The CR XML driver requires a schema in order to determine the structure of the data. This was my problem.

My solution, effective though maybe not ideal, was to create a Stylesheet (XSL) to tack on the schema definition inline to the Rowsets\Rowset\Row XML dataset returned. The only dynamics in the XSL is the row element definition. The result is XML data with a "dynamically-created" XML schema. I apply the Stylesheet in the HTTP call and don't store it with the Query Template, so that the Query Template can be used elsewhere in its standard form.

I'm not sure whether this is approach is going to come back and bite me down the road with CR. Any further advice would be appreciated.

Dave

Former Member
0 Kudos

Good approach! The other more extreme approach that I've done is that I have written both JDBC and ADO.NET drivers/providers that "wrap" xMII to make queries and BLS transactions look like they were database tables. Works great with lots of different client applications (e.g. Crystal Reports). Took a lot of work, though!

Answers (1)

Answers (1)

0 Kudos

David,

I don't know where the schema would be either, but you can reverse engineer it pretty easily by just building a sample.

Build a Business Logic Services transaction similar to this:

Sequence_0

Create a SAP xMII XML Output action block of type Document . Configure it with some fields. I did it with field names same as their datatypes.

Sequence_1

Create a SAP xMII XML Output action block of type Row and configure it to Document_0.Output from the first action block. Create links to map some data to a field or two or all of them.

Sequence_2

Link Document_0.Output to a Tracer and when you execute your transaction, you will receive:

<?xml version="1.0" encoding="UTF-8"?>

<Rowsets DateCreated="2008-04-21T16:20:49" EndDate="2008-04-21T16:18:21" StartDate="2008-04-21T16:18:21" Version="12.0.2 Build(88)"><Rowset><Columns><Column Description="" MaxRange="1" MinRange="0" Name="DateTime" SQLDataType="93" SourceColumn="DateTime"/><Column Description="" MaxRange="1" MinRange="0" Name="String" SQLDataType="1" SourceColumn="String"/><Column Description="" MaxRange="1" MinRange="0" Name="Integer" SQLDataType="4" SourceColumn="Integer"/><Column Description="" MaxRange="1" MinRange="0" Name="Double" SQLDataType="8" SourceColumn="Double"/></Columns><Row><DateTime>2008-04-21T16:20:49</DateTime><String>String</String><Integer>99</Integer><Double>109.5446</Double></Row></Rowset></Rowsets>

This is your basic xMII XML structure.

Hope this helps.

Mike