XSLProcessor.Process throws oracle.xml.xpath.XPathException:
I have a java application which is parsing an XMLDocument using XMLProcessor.process(xsl,doc);
It works for many XML messages, and their related XSL transformers, but throws this error regarding a dayTimeDuration() function.
I'm using XDK version 10g, Java release:xdk_linux_10.2.0.2.0_production
Other transformations without this function work fine. What am I doing wrong?
Any help is appreciated.
The Error is:
oracle.xml.xpath.XPathException: Parse Error in dayTimeDuration function.
The XML is:
<SPLIMCreatedUpdatedOrder Destination="RTS">
<HeaderData>
<TransactionCode>3001</TransactionCode>
</HeaderData>
<TaskData>
<FieldOrderNumber>TEST00001</FieldOrderNumber>
<OrderStatus>Unassigned</OrderStatus>
<DivisionName>Oregon</DivisionName>
<DistrictName>Albany District</DistrictName>
<CustomerName>Kathy Foote</CustomerName>
<CustomerAddress1>105 CORCORAN LN</CustomerAddress1>
<CustomerAddress2>Apt 101</CustomerAddress2>
<CustomerCityState>CENTRAL POINT, OR</CustomerCityState>
<CustomerZipCode>97502</CustomerZipCode>
<OrderType>CON</OrderType>
<TaskNumber>0</TaskNumber>
<TaskDuration>10</TaskDuration>
<TaskPriority>3</TaskPriority>
<TaskExternalPriority></TaskExternalPriority>
<Longitude>-122.923269</Longitude>
<Latitude>42.370841</Latitude>
<EnrouteDateTime></EnrouteDateTime>
<OnsiteDateTime></OnsiteDateTime>
<CompletionDateTime></CompletionDateTime>
<PrimaryOrderNumber></PrimaryOrderNumber>
<DatabaseAction>U</DatabaseAction>
<ServiceAreaName>Serviceman - OR - 11256</ServiceAreaName>
<DivisionCode>OR</DivisionCode>
<DistrictCode>11256</DistrictCode>
<ServiceAreaCode>SVC01</ServiceAreaCode>
<CompletionStatusCode>O</CompletionStatusCode>
<TrackingStatusCode>U</TrackingStatusCode>
</TaskData>
<SchedulingData>
<EarlyStartDateTime>2007-01-17T08:00:00</EarlyStartDateTime>
<DueOnDateTime>2007-01-31T17:00:00</DueOnDateTime>
<ApptStartDateTime></ApptStartDateTime>
<ApptFinishDateTime></ApptFinishDateTime>
<TimeZone></TimeZone>
</SchedulingData>
<AssignmentData>
<PreferredCrewName></PreferredCrewName>
<RequiredCrewName></RequiredCrewName>
<PrimaryFunction>Service</PrimaryFunction>
<SkillData></SkillData>
<CapabilityData></CapabilityData>
</AssignmentData>
</SPLIMCreatedUpdatedOrder>
The XSL is:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xdt="http://www.w3.org/2003/05/xpath-datatypes" xmlns:eg="local" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="SPLIMCreatedUpdatedOrder">
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns2="http://mwm.splwg.com/webservices/packets/"
xmlns:ns1="http://mwm.splwg.com/webservices/"
xmlns:ns3="http://mwm.splwg.com/webservices/methods/">
<xsl:variable name="databaseAction">
<xsl:value-of select="TaskData/DatabaseAction"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$databaseAction='A'">
<NEW_STOP>
<NEW_STOP_DATA>
<PLAN_STOP>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<STATUS>
<xsl:value-of select="TaskData/OrderStatus"/>
</STATUS>
<STARTED_DATE>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,1,4)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,6,2)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,9,2)"/>
</STARTED_DATE>
<STARTED_TIME>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,12,2)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,15,2)"/>
</STARTED_TIME>
<COMPLETION_DATE>
<xsl:value-of select="substring(TaskData/CompletionDateTime,1,4)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,6,2)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,9,2)"/>
</COMPLETION_DATE>
<COMPLETION_TIME>
<xsl:value-of select="substring(TaskData/CompletionDateTime,12,2)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,15,2)"/>
</COMPLETION_TIME>
</PLAN_STOP>
<STOP>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<INITIAL_STATUS>FREE</INITIAL_STATUS>
<JOB_DELAY>
<xsl:value-of select="xs:int(TaskData/TaskDuration) * 60"/>
</JOB_DELAY>
<R_MUSTHAVE>
<xsl:for-each select="AssignmentData">
<xsl:for-each select="SkillData">
<xsl:value-of select="."/>,</xsl:for-each>
</xsl:for-each>
</R_MUSTHAVE>
<LATITUDE>
<xsl:value-of select="TaskData/Latitude"/>
</LATITUDE>
<LONGTITUDE>
<xsl:value-of select="TaskData/Latitude"/>
</LONGTITUDE>
<PRIMARY_STOP_ID>
<xsl:value-of select="TaskData/PrimaryOrderNumber"/>
</PRIMARY_STOP_ID>
<STREET_NO>
<xsl:value-of select="substring-before(TaskData/CustomerAddress1,' ')"/>
</STREET_NO>
<STREET>
<xsl:value-of select="substring-after(TaskData/CustomerAddress1,' ')"/>
</STREET>
<CITY>
<xsl:value-of select="substring-before(TaskData/CustomerCityState,',')"/>
</CITY>
<STATE>
<xsl:value-of select="substring-after(TaskData/CustomerCityState,',')"/>
</STATE>
<POSTCODE>
<xsl:value-of select="TaskData/CustomerZipCode"/>
</POSTCODE>
</STOP>
<STOP_TW>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<STOP>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</STOP>
<xsl:if test="string-length(SchedulingData/ApptStartDateTime) > 0">
<xsl:variable name="apptDuration">
<xsl:value-of select="xs:dayTimeDuration(xs:dateTime(SchedulingData/ApptFinishDateTime)-xs:dateTime(SchedulingData/ApptStartDateTime))"/>
</xsl:variable>
<START_DATE>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,1,4)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,6,2)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,9,2)"/>
</START_DATE>
<START_TIME>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,12,2)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,15,2)"/>
</START_TIME>
<xsl:variable name="iTotalHours">
<xsl:value-of select="xs:int(days-from-duration($apptDuration) * 24 + hours-from-duration($apptDuration))"/>
</xsl:variable>
<xsl:variable name="iMinutes">
<xsl:value-of select="xs:int(minutes-from-duration($apptDuration))"/>
</xsl:variable>
<DURATION>
<xsl:if test="not ($iTotalHours > 99)">0</xsl:if>
<xsl:if test="not ($iTotalHours > 9)">0</xsl:if>
<xsl:value-of select="xs:string($iTotalHours)"/>
<xsl:if test="not ($iMinutes > 60)">0</xsl:if>
<xsl:value-of select="xs:string($iMinutes) "/>
</DURATION>
</xsl:if>
<!---->
<xsl:if test="string-length(SchedulingData/ApptStartDateTime) = 0">
<xsl:variable name="apptDuration">
<xsl:value-of select="xs:dayTimeDuration(xs:dateTime(SchedulingData/DueOnDateTime) - xs:dateTime(SchedulingData/EarlyStartDateTime))"/>
</xsl:variable>
<START_DATE>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,1,4)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,6,2)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,9,2)"/>
</START_DATE>
<START_TIME>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,12,2)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,15,2)"/>
</START_TIME>
<xsl:variable name="iTotalHours">
<xsl:value-of select="xs:int(days-from-duration($apptDuration) * 24 + hours-from-duration($apptDuration))"/>
</xsl:variable>
<xsl:variable name="iMinutes">
<xsl:value-of select="xs:int(minutes-from-duration($apptDuration))"/>
</xsl:variable>
<DURATION>
<xsl:if test="not ($iTotalHours > 99)">0</xsl:if>
<xsl:if test="not ($iTotalHours > 9)">0</xsl:if>
<xsl:value-of select="xs:string($iTotalHours)"/>
<xsl:if test="not ($iMinutes > 60)">0</xsl:if>
<xsl:value-of select="xs:string($iMinutes) "/>
</DURATION>
</xsl:if>
</STOP_TW>
</NEW_STOP_DATA>
</NEW_STOP>
</xsl:when>
<xsl:when test="$databaseAction='U'">
<UPDATE_STOP>
<UPDATE_STOP_DATA>
<PLAN_STOP>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<STOP>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</STOP>
<STATUS>
<xsl:value-of select="TaskData/OrderStatus"/>
</STATUS>
<STARTED_DATE>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,1,4)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,6,2)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,9,2)"/>
</STARTED_DATE>
<STARTED_TIME>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,12,2)"/>
<xsl:value-of select="substring(TaskData/OnsiteDateTime,15,2)"/>
</STARTED_TIME>
<COMPLETION_DATE>
<xsl:value-of select="substring(TaskData/CompletionDateTime,1,4)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,6,2)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,9,2)"/>
</COMPLETION_DATE>
<COMPLETION_TIME>
<xsl:value-of select="substring(TaskData/CompletionDateTime,12,2)"/>
<xsl:value-of select="substring(TaskData/CompletionDateTime,15,2)"/>
</COMPLETION_TIME>
</PLAN_STOP>
<STOP>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<INITIAL_STATUS>FREE</INITIAL_STATUS>
<JOB_DELAY>
<xsl:value-of select="xs:int(TaskData/TaskDuration) * 60"/>
</JOB_DELAY>
<R_MUSTHAVE>
<xsl:for-each select="AssignmentData">
<xsl:for-each select="SkillData">
<xsl:value-of select="."/>,</xsl:for-each>
</xsl:for-each>
</R_MUSTHAVE>
<LATITUDE>
<xsl:value-of select="TaskData/Latitude"/>
</LATITUDE>
<LONGTITUDE>
<xsl:value-of select="TaskData/Latitude"/>
</LONGTITUDE>
<PRIMARY_STOP_ID>
<xsl:value-of select="TaskData/PrimaryOrderNumber"/>
</PRIMARY_STOP_ID>
<STREET_NO>
<xsl:value-of select="substring-before(TaskData/CustomerAddress1,' ')"/>
</STREET_NO>
<STREET>
<xsl:value-of select="substring-after(TaskData/CustomerAddress1,' ')"/>
</STREET>
<CITY>
<xsl:value-of select="substring-before(TaskData/CustomerCityState,',')"/>
</CITY>
<STATE>
<xsl:value-of select="substring-after(TaskData/CustomerCityState,',')"/>
</STATE>
<POSTCODE>
<xsl:value-of select="TaskData/CustomerZipCode"/>
</POSTCODE>
</STOP>
<STOP_TW>
<IDENT>
<xsl:value-of select="TaskData/FieldOrderNumber"/>
</IDENT>
<xsl:if test="string-length(SchedulingData/ApptStartDateTime) > 0">
<xsl:variable name="apptDuration">
<xsl:value-of select="xs:dayTimeDuration(xs:dateTime(SchedulingData/ApptFinishDateTime)-xs:dateTime(SchedulingData/ApptStartDateTime))"/>
</xsl:variable>
<START_DATE>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,1,4)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,6,2)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,9,2)"/>
</START_DATE>
<START_TIME>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,12,2)"/>
<xsl:value-of select="substring(SchedulingData/ApptStartDateTime,15,2)"/>
</START_TIME>
<DURATION>
<xsl:if test="not (xs:hours-from-duration($apptDuration) > 99)">0</xsl:if>
<xsl:if test="not (xs:hours-from-duration($apptDuration) > 9)">0</xsl:if>
<xsl:value-of select="xs:hours-from-duration($apptDuration)"/>
<xsl:if test="not (xs:minutes-from-duration($apptDuration) > 9)">0</xsl:if>
<xsl:value-of select="xs:minutes-from-duration($apptDuration)"/>
</DURATION>
</xsl:if>
<!---->
<xsl:if test="string-length(SchedulingData/ApptStartDateTime) = 0">
<xsl:variable name="apptDuration">
<xsl:value-of select="xs:dayTimeDuration(xs:dateTime(SchedulingData/DueOnDateTime) - xs:dateTime(SchedulingData/EarlyStartDateTime))"/>
</xsl:variable>
<START_DATE>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,1,4)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,6,2)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,9,2)"/>
</START_DATE>
<START_TIME>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,12,2)"/>
<xsl:value-of select="substring(SchedulingData/EarlyStartDateTime,15,2)"/>
</START_TIME>
<xsl:variable name="iTotalHours">
<xsl:value-of select="xs:int(days-from-duration($apptDuration) * 24 + hours-from-duration($apptDuration))"/>
</xsl:variable>
<xsl:variable name="iMinutes">
<xsl:value-of select="xs:int(minutes-from-duration($apptDuration))"/>
</xsl:variable>
<DURATION>
<!-- Add leading zeros -->
<xsl:if test="not ($iTotalHours > 99)">0</xsl:if>
<xsl:if test="not ($iTotalHours > 9)">0</xsl:if>
<xsl:value-of select="xs:string($iTotalHours)"/>
<xsl:if test="not ($iMinutes > 60)">0</xsl:if>
<xsl:value-of select="xs:string($iMinutes) "/>
</DURATION>
</xsl:if>
</STOP_TW>
</UPDATE_STOP_DATA>
</UPDATE_STOP>
</xsl:when>
</xsl:choose>
</SOAP-ENV:Envelope>
</xsl:template>
</xsl:stylesheet>
The code is appended:
public XMLElement TransformDoc(XMLDocument doc, String xslFile){
DOMParser parser;
XMLDocument xsldoc;
URL xslURL;
try {
// Parse xsl and xml documents
xsldoc = new XMLDocument();
parser = new DOMParser();
// Parse the XSL file
xslURL = createURL(xslFile);
parser.parse(xslURL);
xsldoc = parser.getDocument();
// Instantiate a stylesheet
XSLProcessor processor = new XSLProcessor();
processor.setBaseURL(xslURL);
XSLStylesheet xsl = processor.newXSLStylesheet(xsldoc);
// Display any warnings that may occur
processor.showWarnings(true);
processor.setErrorStream(System.err);
XMLDocumentFragment result = processor.processXSL(xsl, doc);
Similar Messages
-
Oracle.xdo11g.xpath.XPathException: Variable not defined
Hello,
I got two pivot tables in the RTF Word PlugIn, when I take the second one out, the HTLM output shows fine, when I out the second one in, I get the error "oracle.xdo11g.xpath.XPathException: Variable not defined". I used the wizard to create the tables.
If I upload the layout and try to execute the report online, I get this error" oracle.xdo.XDOException: java.lang.reflect.InvocationTargetException"
anyone an Idea how I can add two pivot tables to my template without causing xml errors?I got those two in a WORD table and as soon as I put the second one in the table (a word layout table by putting my pivot table in it) the error comes.
-
ANN: Oracle XML Parser for C - v2.0.7
A new release of the Oracle XML Parser for C (release 2.0.7) for Solaris and NT is now available from OTN at http://technet.oracle.com/tech/xml.
Key new features include:
XSLT improvements: This release further improves upon the processing speed and memory requirements for XSLT.
By using -r directive the effect of <xsl:output> instruction and "disable-escape" attributes can be taken in to account while doing XSLT processing.
Oracle XML TeamA new release of the Oracle XML Parser for C (release 2.0.7) for Solaris and NT is now available from OTN at http://technet.oracle.com/tech/xml.
Key new features include:
XSLT improvements: This release further improves upon the processing speed and memory requirements for XSLT.
By using -r directive the effect of <xsl:output> instruction and "disable-escape" attributes can be taken in to account while doing XSLT processing.
Oracle XML Team -
Hi all,
When I am trying to call an external java function in XSLT it is throwing the following exception .
Exception in thread "main" oracle.xml.parser.v2.XPathException: Extension functi
on error: Method not found 'getValue'
at oracle.xml.parser.v2.XSLExtFunctions.getMethod(XSLExtFunctions.java:2
85)
at oracle.xml.parser.v2.XPathExtFunction.evaluateMethod(XPathExtFunction
.java:178)
at oracle.xml.parser.v2.XPathExtFunction.getValue(XPathExtFunction.java:
137)
at oracle.xml.parser.v2.XSLExprBase.getStringValue(XSLExprBase.java:369)
at oracle.xml.parser.v2.XSLValueOf.processAction(XSLValueOf.java:99)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLResultElement.processAction(XSLResultElement.
java:176)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLResultElement.processAction(XSLResultElement.
java:176)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:200)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplate
s.java:214)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplate
s.java:120)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:200)
at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:474)
at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:451)
at oracle.xml.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:248)
at oracle.xml.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:138)
at oracle.xml.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:210)
at Transformer.main(Transformer.java:25)
My small code is of XSL is:
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:XYZ="http://www.oracle.com/XSL/Transform/java/pack/XYZ">
<xsl:template match="PatientRecord">
<patientKey>
<LastName>
<xsl:value-of select="XYZ:getValue()"/>
</LastName>
<DOB>
<xsl:value-of select="DOB"/>
</DOB>
</patientKey>
</xsl:template>
</xsl:stylesheet>
My small code of java is :
package pack;
public class XYZ{
public String getValue(){
return "Hello World";
My small piece of XML is:
<PatientRecord>
<RecordType>P</RecordType>
<FirstName>JAVA</FirstName>
<LastName>DEVELOPER</LastName>
<SSN>737747777</SSN>
<DOB>19740310</DOB>
<DoctorID>20874</DoctorID>
<VisitReason>
Programming stress disorders
</VisitReason>
</PatientRecord>
I added the xmlparserv2.jar and xyz.jar file to classpath and XYZ.class file is in xyz.jar file .
Could any body help me if they have encounter or know the answer.
Thanks,
ReddyHi Vetsrini, Thank you for your response.
1. I checked the values in the xml and found no nulls. I see all 0 or non-zero numbers.
2. Following MetaLink Doc ID 362496.1, I find:
- PDF Producer: PDF file properties shows PDF Producer "Oracle XML Publisher 5.6.3"
- AD_BUGS SQL: The SQL results show that I have the 5.6.3 patch, but the SQL in the Doc only includes patch numbers up to 5.6.3. I'm not sure how I can find out the patch numbers of more recent patches, to see if i have those.
- File version of the MetaInfo.class: $Header MetaInfo.java 115.28 2006/08/17 01:24:59 bgkim noship $
What is the latest XDO patch? I can't find anything newer than what I have in MetaLink, but I probably am missing something... -
Oracle.xml.parser.v2.XPathException: Extension functi
Hi all,
When I am trying to call an external java function in XSLT it is throwing the following exception .
Exception in thread "main" oracle.xml.parser.v2.XPathException: Extension functi
on error: Class not found 'pack/XYZ'
at oracle.xml.parser.v2.XSLExtFunctions.getConstructor(XSLExtFunctions.j
ava:166)
at oracle.xml.parser.v2.XPathExtFunction.evaluateMethod(XPathExtFunction
.java:172)
at oracle.xml.parser.v2.XPathExtFunction.getValue(XPathExtFunction.java:
137)
at oracle.xml.parser.v2.XPathExtFunction.getValue(XPathExtFunction.java:
135)
at oracle.xml.parser.v2.XSLExprBase.getStringValue(XSLExprBase.java:369)
at oracle.xml.parser.v2.XSLValueOf.processAction(XSLValueOf.java:99)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLResultElement.processAction(XSLResultElement.
java:176)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLResultElement.processAction(XSLResultElement.
java:176)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:200)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplate
s.java:214)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplate
s.java:120)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:369)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:200)
My small code is of XSL is:
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:XYZ="http://www.oracle.com/XSL/Transform/java/pack/XYZ">
<xsl:template match="PatientRecord">
<patientKey>
<LastName>
<xsl:value-of select="XYZ:getValue()"/>
</LastName>
<DOB>
<xsl:value-of select="DOB"/>
</DOB>
</patientKey>
</xsl:template>
</xsl:stylesheet>
My small code of java is :
package pack;
public class XYZ{
public String getValue(){
return "Hello World";
My small piece of XML is:
<PatientRecord>
<RecordType>P</RecordType>
<FirstName>JAVA</FirstName>
<LastName>DEVELOPER</LastName>
<SSN>737747777</SSN>
<DOB>19740310</DOB>
<DoctorID>20874</DoctorID>
<VisitReason>
Programming stress disorders
</VisitReason>
</PatientRecord>
I added the xmlparserv2.jar and xyz.jar file to classpath and XYZ.class file is in xyz.jar file .
Could any body help me if they have encounter or know the answer.
Thanks,
ReddyThis occurs because of a bug in the IBM JVM's JIT compiler. You should file a bug with IBM to get this fixed, using your stylesheet as a testcase. Lots of people have hit this problem.
Disable your JIT compiler (or switch JVM's) and you won't have the error. -
Hi there Masters
I am new in Java and I would need your help please..
I am calling a function in Java passing 1 parameter and returning an XML back but at the point of execution I get an error below... At the end I have attached my java code...PLEASE HELP
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/xml/parser/v2/XMLParseException
at oracle.xdb.XMLTypeFactory.create(XMLTypeFactory.java:78)
at oracle.sql.OPAQUE.toClass(OPAQUE.java:328)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:278)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:259)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:190)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:117)
at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:1578)
at oracle.jdbc.driver.OracleCallableStatementWrapper.getObject(OracleCallableStatementWrapper.java:815)
at hospitaltool.RunAsnIn.runAsnIn(RunAsnIn.java:41)
at hospitaltool.HospitalTool.main(HospitalTool.java:38)
Caused by: java.lang.ClassNotFoundException: oracle.xml.parser.v2.XMLParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 10 more
=====================JAVA CODE====================================
package hospitaltool;
import java.sql.*;
import oracle.jdbc.*;
import oracle.xdb.XMLType;
public class RunAsnIn {
public void runAsnIn(Connection con, Boolean fam) throws SQLException {
System.out.println("RunASNIn Section");
String messStatus;
int numRecs = 0; //to hold the number of Records processed
int totRecs = 0; //to hold the number of total records processed
ResultSet rs = null;
Statement stmt = null;
stmt = con.createStatement();
//Delete all already caused messages
try {
rs = stmt.executeQuery("DELETE FROM asnin WHERE message_num IN(SELECT message_num FROM asnin MINUS SELECT message_num FROM hospital WHERE family = 'ASNIn')");
//Select all the uncaused messages
rs = stmt.executeQuery("SELECT message_num FROM hospital WHERE family = 'ASNIn' and rownum <= 1 MINUS SELECT message_num FROM asnin");
//Go thru the uncaused messages
} catch (Exception e) {
while (rs.next()) {
String messageNum = rs.getString(1);
// System.out.println("tableName=" + messageNum);
System.out.println(messageNum);
//Get the XMLDoc
XMLType xml = null;
//Get the XML Doc
CallableStatement cs1 = null;
//CallableStatement proc = con.prepareCall("? {call rmsauto.hospitaltool.getmessagedoc(?)}");
try {
cs1 = con.prepareCall("{? = call rmsauto.hospitaltool.getmessagedoc(?)}");
cs1.registerOutParameter(1, OracleTypes.OPAQUE, "SYS.XMLTYPE");
cs1.setString(2, messageNum);
cs1.execute();
} catch (Exception e) {
xml = (XMLType) cs1.getObject(1);
System.out.println(xml.getStringVal());
}I did google this and found that I needed a specific jar file called xmlparserv2.jar and I did download it and loaded it on as part of my Libraries the I got a new error... I am using NetBeans
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/xml/binxml/BinXMLMetadataProvider
at oracle.xdb.XMLTypeFactory.create(XMLTypeFactory.java:78)
at oracle.sql.OPAQUE.toClass(OPAQUE.java:328)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:278)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:259)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:190)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:117)
at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:1578)
at oracle.jdbc.driver.OracleCallableStatementWrapper.getObject(OracleCallableStatementWrapper.java:815)
at hospitaltool.RunAsnIn.runAsnIn(RunAsnIn.java:41)
at hospitaltool.HospitalTool.main(HospitalTool.java:38)
Caused by: java.lang.ClassNotFoundException: oracle.xml.binxml.BinXMLMetadataProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 10 more
Java Result: 1 -
Hi!
I am trying to reuse a code in JDeveloper to get XML from a query. I have copied the code from a method and created a new method with the copied code and changed it. The problem is that when I run the old code I now get following error:
Ett oförväntat fel har inträffat: Application: FND, Message Name: FND_GENERIC_MESSAGE.
Tokens: MESSAGE = oracle.xml.sql.OracleXMLSQLException: Det här objektet har stängts.
Vill du inte att objektet ska stängas automatiskt mellan anropen kan du granska metoden 'keepObjectOpen()'.;
This means in english something like:
An unexpected error accoured: Application: FND, Message Name: FND_GENERIC_MESSAGE = oracle.xml.sql.OracleXMLSQLException: This object is closed. If you don't want the object to close automatically between calls you can check method 'keepObjectOpen()';
the code I'm running is:
public String punchoutSomething()
throws Exception
StringBuffer sqlForXml =new StringBuffer("select pv.*"
+", cursor(select * from XXPOS_PUNCHOUT_TABLE2 c where c.vendor_id=pv.vendor_id) as contacts"
+" from XXPOS_PUNCHOUT_TABLE1 pv where vendor_id in (");
// add all ids
SuppSummVOImpl vendorView = getSuppSummVO();
Row row;
int punchoutCnt=0;
// vendorView.reset();
Row[] selectedRows = vendorView.getFilteredRows("SelectStatus","Y");
for(int i=0;i<selectedRows.length;i++)
if(punchoutCnt>0)
sqlForXml.append(",");
sqlForXml.append(((Number)selectedRows.getAttribute("VendorId")).toString());
punchoutCnt++;
if(punchoutCnt==0)
sqlForXml.append("-1"); // make sql valid, will not return rows
sqlForXml.append(")");
// System.out.println(sqlForXml); // DEBUG
OADBTransaction tx = (OADBTransaction)getOADBTransaction();
OracleXMLQuery xq = new OracleXMLQuery( tx.getJdbcConnection()
, sqlForXml.toString()
xq.setRaiseException(true); // in case of error raise an exception (default
// is to generate an error document
xq.setEncoding("UTF-8"); // not necessary?
xq.useLowerCaseTagNames();
xq.setRowsetTag("vendors");
xq.setRowTag("vendors_row");
//System.out.println(xq.getXMLString()); // DEBUG
XMLDocument suppl = (XMLDocument)xq.getXMLDOM();
XSLProcessor xslt = new XSLProcessor();
InputStream sheetStream = this.getClass().getResourceAsStream("mystylesheet.xsl");
if(sheetStream==null)
throw new Exception("Could not load stylesheet");
XSLStylesheet sheet = xslt.newXSLStylesheet(
sheetStream
StringWriter serialize = new StringWriter();
xslt.processXSL(sheet,suppl,new PrintWriter(serialize));
String returnXML = serialize.getBuffer().toString();
// System.out.println("X:"+returnXML); // DEBUG
sheetStream.close();
return returnXML;
===================
i've copied the same code into another method and only changed the sql-statment to be used and the stylesheet to use to transform the xml. Is something wrong with that?
Another question: if the xsl refers to a xsd but wihtout any path where should it be?
Thanks for the help,
PatriciaActually, having looked at Metalink, seems that although this message may be accurate and correct,
it has been 'introduced' as part of the 9i JDBC driver.
So, I used the 8i JDBC driver I happened to have instead and that worked fine. -
Nls support with oracle xml parser in java
I'm using The JAXP interface to manipulate xml with xsl. the implementation that I use is Oracle xml parser.
My xml contains a lot of hebrew chars, and in the result stream each char translated into 5-6 chars, which makes the result to be 5-6 times bigger than it suppose to be, and harder for me to debug my application.
The client's browser shows the results well.
How can I make the transformator to transform the hebrew chars to hebrew char istead of longer and not readable string ?Oracle XML Team wrote:
: Stephen Flinter (guest) wrote:
: : Environment: WinNT 4.0/SP4, Apache 1.3.6, JServ 1.0, Oracle
: 8.1.5
: : I have downloaded the new Java v2 XML Parser (2.0.2), and
have
: : replaced the wrapper.classpath entry in my jserv.properties
: file
: : with the path to the new parser.
: : When I rerun the "Employee Page" demo, I get the following
: : exception message:
: : [15/09/1999 11:02:22:974 GMT] java.lang.NoSuchMethodError:
: : oracle.xml.parser.v2.XSLProcessor: method
: : processXSL
: (Loracle/xml/parser/v2/XSLStylesheet;Loracle/xml/parser
: : /v2/XMLDocument;)Lorg/w3c/dom/DocumentFragment; not found
: : at oracle.xml.xsql.XSLHelper.process(XSLHelper.java:34)
: : at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java,
: : Compiled Code)
: : at
: : javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
: : at
: : javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
: : at
: : org.apache.jserv.JServConnection.processRequest
: (JServConnection.j
: : ava)
: : at
: : org.apache.jserv.JServConnection.run(JServConnection.java)
: : at java.lang.Thread.run(Thread.java:479)
: : This demo was works fine with the parser shipped with the
: : xsql_servlet download.
: : Regards,
: : Steve
: Version 2.0.2 uses the August XSLT WD which is incompatible
with
: the April WD on which our previous releases including the demos
: were based.
: Oracle XML Team
: http://technet.oracle.com
: Oracle Technology Network
Hi,
Can someone from the Oracle XML Team point us to a fix so we can
continue our testing???
Steve...
null -
Fatal Error and NullPointerException in Oracle XML Transformer
Hi,
I'm building a dom tree in memory with oracle xml parser. Then I transform the dom document into a string to send xml to the client. But I get an fatal error on calling transform.
I don't know what could be the problem, because apache and weblogic parser works, an when I create a dom document with org.w3c.dom elements and statements then the xml document can't be invalid,
because the document implementation would throw an exception if wrong nodes or something like this should be inserted...
I'm using oracle xml parser 9.2.0.4 for java, bea weblogic 7.0 and win2k.
Thanks for help.
XSL-1900: (Fatal Error) An internal error condition occurred.
javax.xml.transform.TransformerException: XSL-1900: (Fatal Error) An internal error condition occurred.
at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:681)
at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:309)
java.lang.NullPointerException
at oracle.xml.parser.v2.XSLSAXPrintDriver.printAttributes(XSLSAXPrintDriver.java:394)
at oracle.xml.parser.v2.XSLSAXPrintDriver.startElement(XSLSAXPrintDriver.java:322)
at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:993)
at oracle.xml.parser.v2.XMLNode.reportChildSAXEvents(XMLNode.java:1014)
at oracle.xml.parser.v2.XMLDocument.reportSAXEvents(XMLDocument.java:942)
at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:294)Hi,
I'm having that problem to:
I'm getting the following exception
javax.xml.transform.TransformerException: XSL-1900: (Fatal Error) An internal error condition occurred.
at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:723)
at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:340)
at com.ac.mqif.control.Handler.handleLong(Handler.java:835)
at com.ac.mqif.control.Handler.run(Handler.java:951)
Caused by: java.lang.NullPointerException
at oracle.xml.parser.v2.XPathStep.getSelectedNodes(XPathStep.java:380)
at oracle.xml.parser.v2.PathExpr.getValue(XSLNodeSetExpr.java:483)
at oracle.xml.parser.v2.XSLExprBase.getStringValue(XSLExprBase.java:363)
at oracle.xml.parser.v2.XSLValueOf.processAction(XSLValueOf.java:99)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:367)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:199)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:214)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:207)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:207)
at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:120)
at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:367)
at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:199)
at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:471)
at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:448)
at oracle.xml.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:246)
at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:327)
... 2 more
when using a stylesheet which has a template match condition of more than 1600 characters.
The second thing is that the Oracle XML transformer is
NOT threadsafe. I was using several threads using different templates to transform an incoming XML simultaneously but was ALWAYS getting internal XSL errors
and Nullpointer Exceptions. I solved this by synchronizing the transformation, but I don't like it.
I'm using the following versions on Windows XP:
Oracle IDE: 9.0.3.10.35
Business Components Version: 9.0.3.10.7
SCM Support Version: 9.0.3.9.4
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Thanx,
Ellcrys -
Oracle.xml.parse.v2.XMLParserException: Whitespace Exception
Can any body help to sort out this problem, When I am trying to transform an XML to another XML using XSLT I am getting the following exception oracle.xml.parser.v2.XMLParserException: Whitespace Exception. My piece of codes are as below .
XSLT:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:quipmentGenerator="http://www.oracle.com/XSL/Transform/java/EquipmentGenerator xmlns:TypeGenerator="http://www.oracle.com/XSL/Transform/java/TypeGenerator xmlns:ShelfGenerator="http://www.oracle.com/XSL/Transform/java/ShelfGenerator">
</xsl:stylesheet>
JAVA :
import java.io.*;
import java.net.URL;
import java.net.MalformedURLException;
import oracle.xml.parser.v2.*;
public class Transformer
public static void main(String args[]) throws Exception{
String fileName = "abc.xsl", XMLStr = "C:\\dev\\task2\\abc.xml";
XSLProcessor processor = new XSLProcessor();
// you can also use a standard HTTP URL instead of
// the file protocol shown below
// URL xslURL = new URL(fileName);
// instantiate a stylesheet
InputStream xslInput = new FileInputStream(fileName);
XSLStylesheet stylesheet = processor.newXSLStylesheet(xslInput);
DOMParser parser = new DOMParser();
URL xslURL = new URL("file://" + XMLStr);
parser.setPreserveWhitespace(true);
parser.parse(xslURL);
// Preparing the XML document
XMLDocument xml = parser.getDocument();
XMLDocumentFragment result;
result = processor.processXSL(stylesheet, xml);
// create an output document to hold the result
XMLDocument out = new XMLDocument();
// create a dummy document element for the
// output document
out.appendChild(result);
ByteArrayOutputStream outStream = new ByteArrayOutputStream( );
out.print(outStream);
String transformedXML = outStream.toString();
System.out.println(transformedXML);
}Remove any blank spaces or empty lines before the XML declaration.
-
Some RTF commands not working in Oracle XML Publisher Desktop 5.6.3
Hello,
I am using Oracle XML Publisher Desktop 5.6.3 (Patch 5887917) and seems like some of the RTF command are not working. I am following Tim Dexter's blog (http://blogs.oracle.com/xmlpublisher/2007/10/here_are_my_terms_conditions.html ) and could not make the "new" commands from his blog, work in my template.
<?section:force-page-count;'end-on-even-layout'?> -- even with this on the template, I'm still getting output with odd total numpages
<?section:xdofo:blank-on;'even-skip-page-count'?> -- cannot suppress the NUMPAGES value of MS Word
Do I need to apply additional patch(es) on top of Patch 5887917 for the MS Word add-on? Could you please tell me what am I missing?
Thanks.Hello,
I am trying to install the latest version but getting the error below when performing Preview.
ConfFile: C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\config\xdo.cfg
Font Dir: C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\fonts
Run XDO Start
Template: C:\Documents and Settings\rmembrere\My Documents\MyDelorme\XML Publisher Project\CONVERSIONS\templates\DEL_POs\DEL\PO_TEST_AGAIN.rtf
RTFProcessor setLocale: en-us
RTFProcessor setConfig: C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\config\xdo.cfg
FOProcessor setData: C:\Documents and Settings\rmembrere\My Documents\MyDelorme\XML Publisher Project\CONVERSIONS\templates\DEL_POs\DEL\PO_Sample_2020870.xml
FOProcessor setLocale: en-us
FOProcessor setConfig: C:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\config\xdo.cfg
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at oracle.apps.xdo.common.xml.XSLT10gR1.invokeProcessXSL(Unknown Source)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(Unknown Source)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(Unknown Source)
at oracle.apps.xdo.common.xml.XSLTWrapper.transform(Unknown Source)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(Unknown Source)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(Unknown Source)
at oracle.apps.xdo.template.FOProcessor.createFO(Unknown Source)
at oracle.apps.xdo.template.FOProcessor.generate(Unknown Source)
at RTF2PDF.runRTFto(RTF2PDF.java:629)
at RTF2PDF.runXDO(RTF2PDF.java:439)
at RTF2PDF.main(RTF2PDF.java:289)
Caused by: oracle.xdo.parser.v2.XPathException: Variable not defined: '_XDONFSEPARATORS'.
at oracle.xdo.parser.v2.XSLStylesheet.flushErrors(XSLStylesheet.java:1534)
at oracle.xdo.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:521)
at oracle.xdo.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:489)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:271)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:155)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:192)
... 15 more
Anybody who has used the commands (page suppression) provided by Tim in his blog? May I know from what version you have done it? The blog was posted back in 2007.
Thanks! -
I need to use query-database functionality in transform activity to make a stored function call. My sql query parameter should be
Select CDMB_BPEL_UTILS_PKG.get_coa(null) from dual
Corresponding XML is
?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.example.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" exclude-result-prefixes="xsl ns0 xsd ldap xp20 bpws ora orcl">
<xsl:template match="/">
<ns0:OracleRoot>
<ns0:OracleMappedOut>
<ns0:ExpType>
<xsl:value-of select="orcl:query-database('select cdmb_bpel_utils_pkg.get_coa(null) from dual',false(),false(),'eis/JNDI/GDB2')"/>
</ns0:ExpType>
</ns0:OracleMappedOut>
=========But I get the following error when testing the same===========
oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XML tag name
========================================================
I guess I need to use escape characters to pass ( . I tried using " and ' but in vain. Any help is appreciated to resolve this issue.Siva,
version: 10.1.3.4
Your inputs may be of high use for me as well.
I have similar requirement. I have to execute the following sql query
select sum(salary) from emp. When I run this query using ora:orcl:query-database, I got the same exception what you have got. So do you mean if i use an alias for this, it would solve my pbm?
select sum(salary) sal from emp+
rgds,
sen -
Building Oracle XML Application Book....
Has anyone purchased the 'Building Oracle XML Applications' book and do they have any opinions on it? Useful?
It it currently orderable, and is planned to ship by September 31st/October 1st, just in time for the Oracle OpenWorld conference.
The full table of contents (which eventually should be put also up on the O'Reilly Site) is:
Preface
Audience for This Book
Which Platform and Version?
Structure of This Book
Chapter Summaries
About the Examples
About the CD-ROM
Conventions Used in this Book
Comments and Questions
Acknowledgements
Part 1: XML Basics
Chapter 1: Introduction to XML
What Is XML?
What Can I Do With XML?
Why Should I Use It?
What XML Technology Does Oracle Provide?
Chapter 2: Working with XML
Creating and Validating XML
Modularizing XML
Searching XML with XPath
Part 2: Oracle XML Fundamentals
Chapter 3: Combining XML and Oracle
Hosting the XML FAQ System on Oracle
Serving XML in Any Format
Acquiring Web-Based XML Content
Chapter 4: Using JDeveloper for XML Development
Working with XML, XSQL, and JSP Files
Working with Database Objects
Using JDeveloper with Oracle XDK Components
Chapter 5: Processing XML with PL/SQL
Loading External XML Files
Parsing XML
Searching XML Documents with XPath
Working with XML Messages
Producing and Transforming XML Query Results
Chapter 6: Processing XML with Java
Introduction to Oracle8i JServer
Parsing and Programmatically Constructing XML
Searching XML Documents in Memory Using XPath
Working with XML Messages
Producing and Transforming XML Query Results
Chapter 7: Transforming XML with XSLT
XSLT Processing Mechanics
Single-Template Stylesheets
Understanding Input and Output Options
Improving Flexibility with Multiple Templates
Chapter 8: Publishing Data with XSQL Pages
Introduction to XSQL Pages
Transforming XSQL Page Results with XSLT
Troubleshooting Your XSQL Pages
Chapter 9: XSLT Beyond the Basics
Using XSLT Variables
The Talented Identity Transformation
Grouping Repeating Data Using SQL
Sorting and Grouping Repeating Data with XSLT
Chapter 10: Generating Datagrams with PL/SQL
Programmatically Generating XML Using PL/SQL
Automatic XML Generation with DBXML
Chapter 11: Generating Datagrams With Java
Generating XML Using Java
Serving XML Datagrams Over the Web
Automatic XML from SQL Queries
Chapter 12: Storing XML Datagrams
Overview of XML Storage Approaches
Loading Datagrams with the XML SQL Utility
Storing Posted XML Using XSQL Servlet
Inserting Datagrams Using Java
Chapter 13: Searching XML with interMedia
Why Use interMedia Text?
What is interMedia Text?
The interMedia Text Query Language
Handling Heterogeneous Doctypes
Handling Doctype Evolution
Advanced interMedia Text
Chapter 14: Advanced XML Loading Techniques
Storing Datagrams in Multiple Tables
Building an XMLLoader Utility
Creating Insert Transformations Automatically
Part 3: Oracle XML Applications
Chapter 15: Using XSQL as a Publishing Framework
Overview of All XSQL Pages Facilities
Additional XML Delivery Options
Chapter 16: Extending XSQL and XSLT with Java
Developing Custom XSQL Actions
Integrating Custom XML Sources
XSLT Extension Functions
Chapter 17: XSLT-Powered Portals and Applications
XSLT-Powered Web Store
Personalized News Portal
Online Discussion Forum
Part 4: Appendices
Appendix 1: XML Helper Packages
Installing the XML Helper Packages
Source Code for the XML Helper Packages
Appendix 2: Installing Oracle XSQL Servlet
Installing
Appendix 3: Conceptual Map to XML Family
Appendix 4: Quick References -
Does Oracle XML Parser support double byte charset?
Hi,
Does Oracle XML Parser support double byte characters such as Korean or Chinese? If so, please tell me what version and how to construct xml/xsl files (...encoding="???")?
Thanks for any help,
TuanHi Raymond,
Thank you for your help. It worked when I running in JDeveloper with your posted code. However, when I tried in my real application, it won't work.
The problem is for localization purposes, my application using some texts display in browsers are saved in Unicode file. Later, application runs and depends on languages setting in browsers, with JavaServlet retrieves those texts and saves in formated xml StringBuffer. Then, using existed XSL Stylesheet file and OracleXMLParser to generate an output HTML.
It has worked fine with English, France or others (single byte characters), but it can't
for double bytes character such as Korean or Chinese. I also tried different charset in xml file.
The following is one of returning errors:
-- oracle.xml.parser.v2.XSLException: XSL-1004: Error while parsing input XML document (<Line 1, Column 552>: XML-0221: (Fatal Error) Invalid char in text.)
I run this app in win2000/IIS with ServletExec3.0, JDK1.2.2 and OracleXMLParser v2.0.2.10
Thank you for any helps,
Tuan
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Raymond Hayes Jr ([email protected]):
Nothing fancy 'cause I'm half asleep but I used your xml/xsl and it seemed to work. No errors anyway. This is what I put together in JDeveloper 3.2
package demo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.util.*;
import oracle.xml.parser.v2.*;
public class CuriosityKilledTheCat extends HttpServlet {
* Initialize global variables
public void init(ServletConfig config) throws ServletException {
super.init(config);
* Service the request
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try
XSLStylesheet xsl = new XSLStylesheet( new URL ("file:///c:\\temp\\input.xsl") , null );
XSLProcessor xp = new XSLProcessor();
XMLDocument xd = new XMLDocument ();
XMLDocumentFragment xf = new XMLDocumentFragment();
xf = xp.processXSL ( xsl , new URL ( "file:///c:\\temp\\input.xml") , null );
System.out.println ( "here" );
xd.appendChild( xf );
xd.print ( response.getOutputStream() );
catch ( Exception e )
System.out.println ( e.getMessage() );
* Get Servlet information
* @return java.lang.String
public String getServletInfo() {
return "demo.CuriosityKilledTheCat Information";
}<HR></BLOCKQUOTE>
null -
Weaknesses I've come across in the Oracle XML/XSL implementation
Weaknesses I've come across in the Oracle XML/XSL implementation
NOTE: I think Oracle is a fantastic database and the XML implementation is lovely to use - also I know these are not limited to XE and also that some are fixed in 11g enterprise however I'm not sure if all are so I am posting here in the hope that Oracle will include fixes for all if any have been missed
1. getclobval() returns a spurious carriage return on end of the value returned
2. extract does not handle mixed content tags well (for example it simply discards tags that only have whitespace between them
3. XSL: using a xsl:number level="multiple" with anything beyond a simple count= xpath value crashes the database completely
4. XSL: insists on pretty printing output XML which is extremely odd behaviour and causes problems when dealing with mixed contentAnother weakness I've seen is with the appendchildxml function and mixed content xml - it appears to likewise pretty print XML causing the injection of carriage returns and whitespace into mixed content nodes
Maybe you are looking for
-
Database table 'e' is not accessible
Hi all, like many others in the web I'm having problems deploying CMP Beans on BEA. I'm using Weblogic 8.1 and get the following error message: "[EJB:011076]Unable to deploy the EJB 'B' because the database table 'b' is not accessible. Please ensure
-
Opportunities in Cloud Computing
A recent article from CIO Journal indicates that there is an extreme labor shortage (in certain technology areas) that is is leading to upward pressure on wages for IT Workers. This represents a great opportunity for those with certain skill-sets, am
-
When i start up firefox it loads a page i closed already
When i open fire fox, it loads up a page I closed forever ago, like in the last session but which was NOT one of the tabs that was open when i closed firefox. To start with it gives me the normal firefox greeting screen or whatever its called, but th
-
I have a question about how to contact HR with e-mail.
I read the rules about anything about HR is not allowed, but I also read to contact HR directly, so I won't ask anything further here. My question is, how? I searched for an e-mail, but all I have been able to find is a phone number I can't ring sinc
-
Downloaded latest Safari update that informed me that older versions of Adobe Flash Player were being disabled and then advised me to go to Adobe and down load latest version of Flash Player. Did that, but Flash Player won't play swf files, which it