DBA Data[Home] [Help]

PACKAGE BODY: APPS.PAY_PRL_XML_UTILS

Source


1 PACKAGE BODY pay_prl_xml_utils AS
2 /* $Header: pyprxutl.pkb 120.0 2005/05/29 07:53 appldev noship $ */
3 
4   --------------------------------------------------------------------------
5   --                                                                      --
6   -- Name           : TWOCOLUMNAR	                                  --
7   -- Type           : PROCEDURE                                           --
8   -- Access         : Public                                              --
9   -- Description    : This procedure creates the XML tag and its data     --
10   -- Parameters     :                                                     --
11   --             IN : p_type			VARCHAR2                  --
12   --                  p_data			tXMLTable                 --
13   --                  p_count			NUMBER                    --
14   --                  p_xml_data	        CLOB	                  --
15   --                                                                      --
16   --            OUT : N/A                                                 --
17   --                                                                      --
18   -- Change History :                                                     --
19   --------------------------------------------------------------------------
20   -- Rev#  Date           Userid    Description                           --
21   --------------------------------------------------------------------------
22   -- 115.0 07-Apr-2005    pgongada   Initial Version                      --
23   --------------------------------------------------------------------------
24   PROCEDURE twoColumnar(p_type  IN VARCHAR2
25                        ,p_data  IN tXMLTable
26                        ,p_count IN NUMBER
27 		       ,p_xml_data IN OUT NOCOPY CLOB)
28   IS
29      l_tag VARCHAR2(2000);
30   BEGIN
31   --
32      FOR i in 1..p_count
33      LOOP
34      --
35         IF p_data.exists(i) THEN
36         --
37           -- Start Main tag
38           l_tag := '<'||p_type||'>';
39           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
40 	  --
41         -- Put Description tag
42           l_tag := getTag('SEGMENT', p_data(i).Name);
43           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
44 	--
45         -- Put amount tag
46           l_tag := getTag('VALUE', p_data(i).Value);
47           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
48 	--
49         -- End Main tag
50           l_tag := '</'||p_type||'>';
51           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
52         --
53         END IF;
54      --
55      END LOOP;
56   --
57   END twoColumnar;
58 
59   --------------------------------------------------------------------------
60   --                                                                      --
61   -- Name           : MULTICOLUMNAR	                                  --
62   -- Type           : PROCEDURE                                           --
63   -- Access         : Public                                              --
64   -- Description    : This procedure creates the XML tag and its data     --
65   --									  --
66   -- Parameters     :                                                     --
67   --             IN : p_type			VARCHAR2                  --
68   --                  p_data			tXMLTable                 --
69   --                  p_count			NUMBER                    --
70   --                  p_xml_data	        CLOB	                  --
71   --                                                                      --
72   --            OUT : N/A                                                 --
73   --                                                                      --
74   -- Change History :                                                     --
75   --------------------------------------------------------------------------
76   -- Rev#  Date           Userid    Description                           --
77   --------------------------------------------------------------------------
78   -- 115.0 05-Apr-2005    pgongada   Initial Version                      --
79   --------------------------------------------------------------------------
80   --
81   PROCEDURE multiColumnar(p_type  IN VARCHAR2
82                          ,p_data  IN tXMLTable
83                          ,p_count IN NUMBER
84 		         ,p_xml_data IN OUT NOCOPY CLOB)
85   IS
86     l_tag VARCHAR2(2000);
87   BEGIN
88   --
89      l_tag := '<'||p_type||'>';
90      dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
91 
92      FOR i in 1..p_count
93      LOOP
94      --
95         IF p_data.exists(i) THEN
96         --
97           l_tag := getTag(p_data(i).Name, p_data(i).Value);
98           dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
99         --
100         END IF;
101      --
102      END LOOP;
103      --
104      l_tag := '</'||p_type||'>';
105      dbms_lob.writeAppend(p_xml_data, length(l_tag), l_tag);
106   --
107   END multiColumnar;
108   --
109   --
110   --------------------------------------------------------------------------
111   --                                                                      --
112   -- Name           : ENCODE_HTML_STRING                                  --
113   -- Type           : FUNCTION                                            --
114   -- Access         : Public                                              --
115   -- Description    : This function encodes the XML tag and its data      --
116   -- Parameters     :                                                     --
117   --             IN : p_value		VARCHAR2	                  --
118   --            OUT : N/A                                                 --
119   --                                                                      --
120   -- Change History :                                                     --
121   --------------------------------------------------------------------------
122   -- Rev#  Date           Userid    Description                           --
123   --------------------------------------------------------------------------
124   -- 115.0 08-Apr-2005    pgongada   Initial Version                      --
125   --------------------------------------------------------------------------
126 
127   FUNCTION encode_html_string(p_value IN VARCHAR2)
128   RETURN VARCHAR2
129   IS
130     TYPE html_rec IS RECORD
131            (html_char VARCHAR2(2)
132 	   ,encoded   VARCHAR2(10)
133 	   );
134 
135     TYPE html_char_tab IS TABLE OF  html_rec INDEX BY binary_integer;
136 
137     char_list html_char_tab;
138     i  NUMBER;
139     l_value VARCHAR2(1000);
140   begin
141    IF p_value IS NULL then
142       RETURN null;
143    END IF;
144 
145    char_list(0).html_char:='&';
146    char_list(0).encoded:='&';
147 
148    char_list(1).html_char:='>';
149    char_list(1).encoded:='>';
150 
151    char_list(2).html_char:='<';
152    char_list(2).encoded:='<';
153 
154    i:=0;
155    l_value := p_value;
156    while(i<char_list.count())
157    LOOP
158        l_value:=replace(l_value,char_list(i).html_char,char_list(i).encoded);
159        i:=i+1;
160    END LOOP;
161 
162   RETURN l_value;
163 
164   END encode_html_string;
165 
166   --
167   --------------------------------------------------------------------------
168   --                                                                      --
169   -- Name           : GETTAG		                                  --
170   -- Type           : FUNCTION                                            --
171   -- Access         : Public                                              --
172   -- Description    : This function creates the XML tag and its data      --
173   -- Parameters     :                                                     --
174   --             IN : p_tag_name	VARCHAR2	                  --
175   --                  p_tag_value	VARCHAR2		          --
176   --            OUT : N/A                                                 --
177   --                                                                      --
178   -- Change History :                                                     --
179   --------------------------------------------------------------------------
180   -- Rev#  Date           Userid    Description                           --
181   --------------------------------------------------------------------------
182   -- 115.0 05-Apr-2005    pgongada   Initial Version                      --
183   --------------------------------------------------------------------------
184   --
185   FUNCTION getTag(p_tag_name  IN VARCHAR2
186                  ,p_tag_value IN VARCHAR2)
187   RETURN VARCHAR2
188   IS
189     l_tag_value VARCHAR2(2000);
190   BEGIN
191 
192   IF p_tag_value IS NULL THEN
193          RETURN '<' || p_tag_name || ' />';
194   ELSE
195          l_tag_value := encode_html_string(p_tag_value);
196 	 RETURN '<'||p_tag_name||'>'||l_tag_value||'</'||p_tag_name||'>';
197   END IF;
198 --
199 END getTag;
200 
201 END pay_prl_xml_utils;