how to register the .DTD file in Oracle Apps
918769Feb 20 2012 — edited Feb 22 2012Hi,
I am getting below error while generating XML file by concurrent program:
Attaching XML file and .DTD file.
Do I need to register this .DTD file somewhere?
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
System error: -2146697210. Error processing resource 'http://mbci-ebsdev.itciss.com/OA_CGI/label.dtd'.
Below is the stored procedure I created to generate the XML file
create or replace
PROCEDURE Demo_XML_Publisher (errbuf VARCHAR2,retcode NUMBER,v_customer_id VARCHAR2)
AS
/*Cursor to fetch Customer Records*/
CURSOR xml_parent
is
SELECT header_id,ordered_item
FROM oe_order_lines_all
WHERE header_id = v_customer_id;
/*Cursor to fetch customer invoice records*/
CURSOR xml_detail(p_customer_id NUMBER)
is
select a.order_number,a.header_id,a.order_type_id
from oe_order_headers_all a,oe_order_lines_all b
where a.HEADER_ID = B.HEADER_ID
and a.header_id = p_customer_id
AND ROWNUM<4;
BEGIN
/*First line of XML data should be <?xml version=”1.0??>*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<?xml version="1.0" encoding="UTF-8"?>');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<!DOCTYPE labels SYSTEM "label.dtd">');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<labels FORMAT="order.btw" PRINTERNAME="KIMBALL1872A" _QUANTITY="1">' );
FOR v_customer IN xml_parent
LOOP
/*For each record create a group tag <P_CUSTOMER> at the start*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<label>');
/*Embed data between XML tags for ex:- <CUSTOMER_NAME>ABCD</CUSTOMER_NAME>*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<HEADER_ID>' || V_CUSTOMER.header_id
|| '</HEADER_ID>');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<ORDERED_ITEM>' || v_customer.ordered_item ||
'</ORDERED_ITEM>');
FOR v_details IN xml_detail(v_customer.header_id)
LOOP
/*For customer invoices create a group tag <P_INVOICES> at the
start*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<P_INVOICES>');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<variable name= "Order_no">' ||
V_DETAILS.ORDER_NUMBER || '</variable>');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<variable name= "Headr_Id">' ||
V_DETAILS.HEADER_ID || '</variable>');
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'<variable name= "Order_Type_Id">'||
v_details.order_type_id||'</variable>');
/*Close the group tag </P_INVOICES> at the end of customer invoices*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'</P_INVOICES>');
END LOOP;
/*Close the group tag </P_CUSTOMER> at the end of customer record*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'</label>');
END LOOP;
/*Finally Close the starting Report tag*/
FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'</labels>');
exception when others then
FND_FILE.PUT_LINE(FND_FILE.log,'Entered into exception');
END Demo_XML_Publisher;
Below is the Label.dtd file structure m using:
<!ELEMENT labels (label)*>
<!ATTLIST labels _FORMAT CDATA #IMPLIED>
<!ATTLIST labels _JOBNAME CDATA #IMPLIED>
<!ATTLIST labels _QUANTITY CDATA #IMPLIED>
<!ATTLIST labels _PRINTERNAME CDATA #IMPLIED>
<!ELEMENT label (variable)*>
<!ATTLIST label _FORMAT CDATA #IMPLIED>
<!ATTLIST label _JOBNAME CDATA #IMPLIED>
<!ATTLIST label _QUANTITY CDATA #IMPLIED>
<!ATTLIST label _PRINTERNAME CDATA #IMPLIED>
<!ELEMENT variable (#PCDATA)>
<!ATTLIST variable name CDATA #IMPLIED>
Thanks in Advance