-- ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ CLOB-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
SELECT STYLESHEET.CONTENT
INTO stylesheetCLOB
FROM STYLESHEET, SOURCE
WHERE SOURCE.ID = sourceID AND SOURCE.STYLESHEETID = STYLESHEET.ID;
-- ΠΡΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ - NULL, ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ
-- ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ NULL
IF sourceCLOB IS NULL OR stylesheetCLOB IS NULL THEN
RETURN NULL;
END IF;
-- Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ CLOB-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
XMLPARSER.parseCLOB(parser, sourceCLOB);
sourceXML := XMLPARSER.getDocument(parser);
-- Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ CLOB-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
XMLPARSER.parseCLOB(parser, stylesheetCLOB);
stylesheetXML := XMLPARSER.getDocument(parser);
-- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
stylesheet := XSLPROCESSOR.newStylesheet(stylesheetXML, NULL);
-- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
XSLPROCESSOR.processXSL(processor, stylesheet, sourceXML, result);
-- ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ΡΡΡΡΡ
XSLPROCESSOR.freeProcessor(processor);
XMLPARSER.freeParser(parser);
XMLDOM.freeDocument(sourceXML);
XMLDOM.freeDocument(stylesheetXML);
RETURN result;
-- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
EXCEPTION
-- ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ
WHEN OTHERS THEN
-- ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ΡΡΡΡΡ
XSLPROCESSOR.freeProcessor(processor);
XMLPARSER.freeParser(parser);
XMLDOM.freeDocument(sourceXML);
XMLDOM.freeDocument(stylesheetXML);
-- ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π»ΡΡΠ΅
RAISE;
END;
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ.
ΠΠΈΡΡΠΈΠ½Π³ 9.20. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ PROCESSED_SOURCECREATE OR REPLACE VIEW PROCESSED_SOURCE AS
SELECT ID, PROCESS(ID) AS CONTENT
FROM SOURCE;
ΠΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ PROCESS ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ PROCESS_SOURCE Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠΈΡΡΠΈΠ½Π³ 9.21. ΠΠ°ΠΏΡΠΎΡΡ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ SOURCE ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ PROCESSED_SOURCESQL> SELECT * FROM SOURCE;
ID CONTENT STYLESHEETID
-- ------------ ------------
1 <A>value</A> 1
SQL> SELECT * FROM PROCESSED_SOURCE;
ID CONTENT
-- -------------------------------------------------------
1 <?xml version = '1.0' encoding = 'UTF-8'?> <B>value</B>
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ XSLT-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² Java
Π―Π·ΡΠΊ Java ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ XML-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ½Π°ΡΠ°Π»Π° Π½Π° Java ΠΈ ΡΠΆ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ΅ ΡΡΠ°Π» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ XSLT. ΠΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ XSLT-ΡΡΠ΅Π΄ΡΡΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Java, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ XSLT-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ XSLT Π² Java, ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ΡΠ²Π»Π΅ΡΠ°), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ HTTP-ΡΠ΅Π°Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HTML.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ²Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ "ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ". Π Π½Π΅ΠΌ HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ out.println(...), ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡ Π² Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ HTML-ΡΠ΅Π³Π°ΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π°Π½ΡΠ΅.
ΠΠΈΡΡΠΈΠ½Π³ 9.22. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class example extends HttpServlet {
/**
* ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/**
* ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°
*/
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// ΠΡΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ
response.setContentType("text/html");
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ
OutputStreamWriter osw =
new OutputStreamWriter(response.getOutputStream());
PrintWriter out = new PrintWriter (response.getOutputStream());
// ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ HTML-ΡΡΡΠ°Π½ΠΈΡΡ
out.println("<html>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΡ HTML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
out.println(" <head>");
out.println(" <title>Request information</title>");
out.println(" </head>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π»ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
out.println(" <body>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΏΡΠΎΡΠ΅
out.println(" <h1>General information</h1>");
out.println(" <table>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
out.println(" <tr>");
out.println(" <td>Server name</td>");
out.println(" <td>" + request.getServerName() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
out.println(" <tr>");
out.println(" <td>Server port</td>");
out.println(" <td>" + request.getServerPort() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π°Π΄ΡΠ΅Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ
out.println(" <tr>");
out.println(" <td>Remote address</td>") ;
out.println(" <td>" + request.getRemoteAddr() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π°ΠΏΡΠΎΡΠ°
out.println(" <tr>");
out.println(" <td>Protocol</td>");
out.println(" <td>" + request.getProtocol() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΠΎΡΠ°
out.println(" <tr>") ;
out.println(" <td>Method</td>");
out.println(" <td>" + request.getMethod() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ URI Π·Π°ΠΏΡΠΎΡΠ°
out.println(" <tr>");
out.println(" <td>Request URI</td>");
out.println(" <td>" + request.getRequestURI() + "</td>");
out.println(" </tr>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ Π·Π°ΠΏΡΠΎΡΠ°
out.println(" <tr>");
out.println(" <td>Query String</td>");
out.println(" <td>" + request.getQueryString() + "</td>");
out.println(" </tr>");
out.println(" </table>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°
out.println(" <h1>Request parameters</h1>");
out.println(" <table>");
for (Enumeration e = request.getParameterNames();
e.hasMoreElements();) {
String name = e.nextElement().toString();
String[] values = request.getParameterValues(name);
for (int i=0; i < values.length; i++) {
out.println(" <tr>");
out.println(" <td>" + name + "</td>");
out.println(" <td>" + values[i] + "</td>");
out.println(" </tr>");
}
}
out.println(" </table>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ HTTP-ΡΠ΅ΡΡΠΈΠΈ
out.println(" <h1>Session parameters</h1>");
out.println(" <table>");
HttpSession session = request.getSession(true);
String[] names = session.getValueNames();
for (int i=0; i < names.length; i++) {
String name = session.getValueNames()[i];
out.println(" <tr>");
out.println(" <td>" + name + "</td>");
out.println(" <td>" +
session.getValue(name).toString() + "</td>");
out.println(" </tr>");
}
out.println(" </table>");
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ cookies
response.addCookie(new Cookie("content", "apple jam"));
out.println(" <h1>Cookies</h1>");
out.println(" <table>");
Cookie[] cookies = request.getCookies();
for (int i=0; i < cookies.length; i++) {
out.println(" <tr>");
out.println(" <td>" + cookies[i].getName() + "</td>");
out.println(" <td>" + cookies[i].getValue() + "</td>");
out.println(" </tr>");
}
out.println(" </table>");
out.println(" </body>");
out.println("</html>");
// ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ
out.close();
}
}
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅ΡΠ²Π»Π΅ΡΡ ΠΏΠΎ URL Π²ΠΈΠ΄Π°
http://localhost/servlet/example?x=1&y=2&z=3&x=4&y=5&z=6
Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ Π½Π° ΡΠΈΡ. 9.13.
Π ΠΈΡ. 9.13. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π»Π΅ΡΡ
ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ΡΡΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π»Π΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ : Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π² ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΌ ΡΠ΅ΡΠ²Π»Π΅Ρ, ΡΡΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΡΡΡ, β Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΠΌΠΎΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠΌ Π½ΠΈΠΆΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ XSLT ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΈΡ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ. ΠΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°: Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ DOM-ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ XSLT-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ HTML-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π ΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠ΅ΡΠ²Π»Π΅ΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Java-Π²Π΅ΡΡΠΈΡ XML-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Oracle XDK (Oracle XML SDK, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ XML-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π² Oracle Corp.). Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ XSLT-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ (ΠΊΠ»Π°ΡΡ XSLProcessor) ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ DOM-ΠΌΠΎΠ΄Π΅Π»ΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΠΊΠ»Π°ΡΡ XMLDocument). ΠΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Java-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° DOM, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠΎΠΌ W3. DOM-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π½Π°ΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π° ΡΠ·Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.