XML output format problem

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
rajesh223
Participant
Posts: 26
Joined: Mon Dec 19, 2005 4:37 am

XML output format problem

Post by rajesh223 »

The below xml format is the expected output format which has 2 input records.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
<TIMSStockStatus xmlns="http://www.michelin.com/TIMS/stockstatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.michelin.com/TIMS/stockstatus
C:\Rajesh\Work\TIMS\NEWFOL~1\TIMS_SSF.xsd" customer_name="String" file_date="2001-12-17T09:30:47-05:00">
	<StockStatus sale_date="1967-08-13">
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
	</StockStatus>
	<StockStatus sale_date="1967-08-13">
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
	</StockStatus>
</TIMSStockStatus>

I have designed a job with source as a flat file>>Transformer>>XML_output stage which generate xml file

The below xml is the generated xml format which is incorrect because
"<defns:LineItem>" is not repeting 2 times (2 input records) under "<defns:StockStatus sale_date="1960-01-01">" and "<defns:StockStatus sale_date="1960-01-02">". Please compare the above expected xml format with the below xml format.

I am dam sure there is something need to work in the xpath and the order of the xpath in the column description. Please share some solution for this problem asap.

This problem occur both in server and parallel. I am expecting solution on the parallel.

Code: Select all

<!--Generated by Ascential Software Corporation, DataStage - XMLOutput stage - Thu Sep  6 17:30:18 2007  -->
<defns:TIMSStockStatus xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:defns="http://www.michelin.com/TIMS/stockstatus" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xsi:schemaLocation="http://www.michelin.com/TIMS/stockstatus/TIMS_SSF.xsd" customer_name="ABC" file_date="2007-01-01T00:00:00-05:00">
	<defns:StockStatus sale_date="1960-01-01">
		<defns:LineItem>
			<defns:SupplierBrand>aaaa</defns:SupplierBrand>
			<defns:Store>aaaa</defns:Store>
			<defns:CPN>aaaaaaaaaaaaaaa</defns:CPN>
			<defns:RetailUnits>917053</defns:RetailUnits>
			<defns:WholesaleUnits>917053</defns:WholesaleUnits>
			<defns:OnHandUnits>917053</defns:OnHandUnits>
			<defns:ServiceLevelKey>aaaaaaaaaaaaaaaaaaaa</defns:ServiceLevelKey>
			<defns:SupplierDesc>aaaaa</defns:SupplierDesc>
			<defns:StyleDesc>aaaaaaaaaaaaaaaaaaaaaa</defns:StyleDesc>
			<defns:MSPN>aaaaa</defns:MSPN>
			<defns:SizeDesc>aaaaaaaaaaaaaaa</defns:SizeDesc>
			<defns:MarketGroup>aaaaa</defns:MarketGroup>
			<defns:OnOrderUnits>917053</defns:OnOrderUnits>
			<defns:CommitUnits>917053</defns:CommitUnits>
			<defns:BackOrderUnits>917053</defns:BackOrderUnits>
			<defns:OrderUnits>917053</defns:OrderUnits>
			<defns:ReturnUnits>917053</defns:ReturnUnits>
			<defns:OrderActiveSKU>aaaa</defns:OrderActiveSKU>
			<defns:PalletQty>53 </defns:PalletQty>
			<defns:TireWeight>00.0</defns:TireWeight>
		</defns:LineItem>
	</defns:StockStatus>
	<defns:StockStatus sale_date="1960-01-02">
		<defns:LineItem>
			<defns:SupplierBrand>bbbb</defns:SupplierBrand>
			<defns:Store>bbbb</defns:Store>
			<defns:CPN>bbbbbbbbbbbbbbb</defns:CPN>
			<defns:RetailUnits>302914</defns:RetailUnits>
			<defns:WholesaleUnits>302914</defns:WholesaleUnits>
			<defns:OnHandUnits>302914</defns:OnHandUnits>
			<defns:ServiceLevelKey>bbbbbbbbbbbbbbbbbbbb</defns:ServiceLevelKey>
			<defns:SupplierDesc>bbbbb</defns:SupplierDesc>
			<defns:StyleDesc>bbbbbbbbbbbbbbbbbbbbbb</defns:StyleDesc>
			<defns:MSPN>bbbbb</defns:MSPN>
			<defns:SizeDesc>bbbbbbbbbbbbbbb</defns:SizeDesc>
			<defns:MarketGroup>bbbbb</defns:MarketGroup>
			<defns:OnOrderUnits>302914</defns:OnOrderUnits>
			<defns:CommitUnits>302914</defns:CommitUnits>
			<defns:BackOrderUnits>302914</defns:BackOrderUnits>
			<defns:OrderUnits>302914</defns:OrderUnits>
			<defns:ReturnUnits>302914</defns:ReturnUnits>
			<defns:OrderActiveSKU>bbbb</defns:OrderActiveSKU>
			<defns:PalletQty>914</defns:PalletQty>
			<defns:TireWeight> 00.</defns:TireWeight>
		</defns:LineItem>
	</defns:StockStatus>
</defns:TIMSStockStatus>
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

I'm confused...can you describe your input records in more detail...in the first example, there are four output rows.... as 4 line items.... in the second, there are only two.... and also the data is vastly different.

Also, can you try this with some real data, where the values aren't duplicated (not test values).

Then it will be more clear to offer some suggestions.

Thanks.

Ernie
rajesh223
Participant
Posts: 26
Joined: Mon Dec 19, 2005 4:37 am

Post by rajesh223 »

Please forget about the content of the attributes i.e. data/values, just for sample format I have given.

The first expected xml output file generated from xmlspy tool with 2 input records.
i.e. for 1st sale_date it generate 2 Lineitem and for 2nd sale date it generate 2 Lineitem. My output should look like this format.

But from datastage xml output stage, I am able to generate incorrect format, Please find the below actual xml format.
VCInDSX
Premium Member
Premium Member
Posts: 223
Joined: Fri Apr 13, 2007 10:02 am
Location: US

Post by VCInDSX »

rajesh223 wrote:The first expected xml output file generated from xmlspy tool with 2 input records.
i.e. for 1st sale_date it generate 2 Lineitem and for 2nd sale date it generate 2 Lineitem. My output should look like this format.
But from datastage xml output stage, I am able to generate incorrect format, Please find the below actual xml format.
To add to Ernie's feedback, all 4 lineitems in the output from XMLSpy appear to have the same values. The <StockStatus sale_date="1967-08-13"> is also a duplicate entry. Is this by design? does your XSD allow this?
In such cases, it would be helpful if you provide some additional information on your XPath. There are various other posts that discuss XML Output generation issues e.g
viewtopic.php?t=109789 (I benefited from this post)

Also, Duke has an interesting piece of document at the following link http://www.duke-consulting.com/Download ... ctices.zip
You can avoid having the "defns:" namespace prefix in your output by following a tip in this document.

Could you provide more details about your job design, input file and also the XPaths?

Good luck
-V
rajesh223
Participant
Posts: 26
Joined: Mon Dec 19, 2005 4:37 am

Post by rajesh223 »

Here is the xsd file

Code: Select all

<xs:complexType name="TIMSRootType">
		<xs:sequence>
			<xs:element name="StockStatus" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="LineItem" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="SupplierBrand" type="xs:string"/>
									<xs:element name="Store" type="xs:string"/>
									<xs:element name="CPN" type="xs:string"/>
									<xs:element name="RetailUnits" type="xs:integer"/>
									<xs:element name="WholesaleUnits" type="xs:integer"/>
									<xs:element name="OnHandUnits" type="xs:integer"/>
									<xs:element name="ServiceLevelKey" type="xs:string"/>
									<xs:element name="SupplierDesc" type="xs:string"/>
									<xs:element name="StyleDesc" type="xs:string"/>
									<xs:element name="MSPN" type="xs:string"/>
									<xs:element name="SizeDesc" type="xs:string"/>
									<xs:element name="MarketGroup" type="xs:string"/>
									<xs:element name="OnOrderUnits" type="xs:integer"/>
									<xs:element name="CommitUnits" type="xs:integer"/>
									<xs:element name="BackOrderUnits" type="xs:integer"/>
									<xs:element name="OrderUnits" type="xs:integer"/>
									<xs:element name="ReturnUnits" type="xs:integer"/>
									<xs:element name="OrderActiveSKU" type="xs:string"/>
									<xs:element name="PalletQty" type="xs:integer"/>
									<xs:element name="TireWeight" type="xs:double"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="saledate" type="xs:date" use="required"/>
					<!--sale date from line items -->
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="customername" type="xs:string" use="required"/>
		<xs:attribute name="filedate" type="xs:dateTime" use="required"/>
		<!--today's date (System Date)-->
	</xs:complexType>

The below file is the generated sample xml file with 2 records from xmlspy tool.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v2004 rel. 4 U (http://www.xmlspy.com)-->
<TIMSStockStatus xmlns="http://www.michelin.com/TIMS/stockstatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.michelin.com/TIMS/stockstatus
C:\Rajesh\Work\TIMS\TIMS_SSF\Ken\TIMS_StockStatus.xsd" customername="String" filedate="2001-12-17T09:30:47-05:00">
	<StockStatus saledate="1967-08-13">
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
	</StockStatus>
	<StockStatus saledate="1967-08-13">
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
		<LineItem>
			<SupplierBrand>String</SupplierBrand>
			<Store>String</Store>
			<CPN>String</CPN>
			<RetailUnits>0</RetailUnits>
			<WholesaleUnits>0</WholesaleUnits>
			<OnHandUnits>0</OnHandUnits>
			<ServiceLevelKey>String</ServiceLevelKey>
			<SupplierDesc>String</SupplierDesc>
			<StyleDesc>String</StyleDesc>
			<MSPN>String</MSPN>
			<SizeDesc>String</SizeDesc>
			<MarketGroup>String</MarketGroup>
			<OnOrderUnits>0</OnOrderUnits>
			<CommitUnits>0</CommitUnits>
			<BackOrderUnits>0</BackOrderUnits>
			<OrderUnits>0</OrderUnits>
			<ReturnUnits>0</ReturnUnits>
			<OrderActiveSKU>String</OrderActiveSKU>
			<PalletQty>0</PalletQty>
			<TireWeight>3.14159265358979</TireWeight>
		</LineItem>
	</StockStatus>
</TIMSStockStatus>

I have digged into xml stages, analyzed all the xml related documents but still I am unable to generate the expected xml format.( The attached above xsd and sample xml is the expected format). The below code is what I am getting which is incorrect.

Please share your ideas on this issue asap

Code: Select all

<!--Generated by Ascential Software Corporation, DataStage - XMLOutput stage - Sat Sep  8 17:52:59 2007  -->
<TIMSStockStatus xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" customername="ABC" filedate="2007-09-08T17:52:59-05:00">
	<StockStatus saledate="1967-08-13">
		<LineItem>
			<SupplierBrand>aaaa</SupplierBrand>
			<Store>aaaa</Store>
			<CPN>aaaaaaaaaaaaaaa</CPN>
			<RetailUnits>917053</RetailUnits>
			<WholesaleUnits>917053</WholesaleUnits>
			<OnHandUnits>917053</OnHandUnits>
			<ServiceLevelKey>aaaaaaaaaaaaaaaaaaaa</ServiceLevelKey>
			<SupplierDesc>aaaaa</SupplierDesc>
			<StyleDesc>aaaaaaaaaaaaaaaaaaaaaa</StyleDesc>
			<MSPN>aaaaa</MSPN>
			<SizeDesc>aaaaaaaaaaaaaaa</SizeDesc>
			<MarketGroup>aaaaa</MarketGroup>
			<OnOrderUnits>917053</OnOrderUnits>
			<CommitUnits>917053</CommitUnits>
			<BackOrderUnits>917053</BackOrderUnits>
			<OrderUnits>917053</OrderUnits>
			<ReturnUnits>917053</ReturnUnits>
			<OrderActiveSKU>aaaa</OrderActiveSKU>
			<PalletQty>533</PalletQty>
			<TireWeight>10</TireWeight>
		</LineItem>
	</StockStatus>
	<StockStatus saledate="1967-08-13">
		<LineItem>
			<SupplierBrand>aaaa</SupplierBrand>
			<Store>aaaa</Store>
			<CPN>aaaaaaaaaaaaaaa</CPN>
			<RetailUnits>917053</RetailUnits>
			<WholesaleUnits>917053</WholesaleUnits>
			<OnHandUnits>917053</OnHandUnits>
			<ServiceLevelKey>aaaaaaaaaaaaaaaaaaaa</ServiceLevelKey>
			<SupplierDesc>aaaaa</SupplierDesc>
			<StyleDesc>aaaaaaaaaaaaaaaaaaaaaa</StyleDesc>
			<MSPN>aaaaa</MSPN>
			<SizeDesc>aaaaaaaaaaaaaaa</SizeDesc>
			<MarketGroup>aaaaa</MarketGroup>
			<OnOrderUnits>917053</OnOrderUnits>
			<CommitUnits>917053</CommitUnits>
			<BackOrderUnits>917053</BackOrderUnits>
			<OrderUnits>917053</OrderUnits>
			<ReturnUnits>917053</ReturnUnits>
			<OrderActiveSKU>aaaa</OrderActiveSKU>
			<PalletQty>533</PalletQty>
			<TireWeight>10</TireWeight>
		</LineItem>
	</StockStatus>
</TIMSStockStatus>
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Etiquette Note
We don't do "asap" or "urgent" here. This is an all-volunteer site whose participants post as and when they can, if they have something to contribute. If you want urgent help, sign up with your support provider for premium service, and learn the true cost of "urgent".
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply