tracker issue : CF-4199633

select a category, or use search below
(searches all categories and all time range)
Title:

DDX Fails as ns.adobe not available

| View in Tracker

Status/Resolution/Reason: Closed/Withdrawn/NotABug

Reporter/Name(from Bugbase): Ashok Ramkumar / Ashok Ramkumar ()

Created: 09/09/2017

Components: Document Management, PDF generation

Versions: 11.0

Failure Type: Others

Found In Build/Fixed In Build: 11 /

Priority/Frequency: Normal /

Locale/System: / Win 2012 Server x64

Vote Count: 0

Problem Description:
PROCESSDDX unable to read PDFs due to unavailability of ns.adobe.com

Steps to Reproduce:
<!---<cfsavecontent variable="ddx"><?xml version="1.0" encoding="UTF-8"?><DDX xmlns="http://ns.adobe.com/DDX/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/coldfusion_ddx.xsd"><DocumentText result="Out1"><PDF source="Doc1"/></DocumentText></DDX></cfsavecontent>

	<cfset ddxfile = ExpandPath("documentText.ddx")> 
	<cffile action="read" variable="ddx" file="#ddxfile#"/>
	
	
	<!--- Set my parameters --->
	<cfset inputStruct = structnew() >
	<cfset outputStruct = structnew() >
	<cfset inputStruct = {Doc1="#arguments.pdfpath#"}>
	<cfset outputStruct = {Out1="#tempxml#"}>
	
	<!--- Process --->
	<cfpdf action="processddx" ddxfile="#ddx#" inputfiles="#inputStruct#" outputfiles="#outputStruct#" name="ddxVar">

Actual Result:
ERROR The DDX specified is not valid. Check for invalid construct or restricted keywords. Detail: cvc-elt.1: Cannot find the declaration of element 'DDX'.. 
Expected Result:
Reads PDF TEXT
Any Workarounds:
Not available

Attachments:

  1. September 09, 2017 00:00:00: b2.jpg
  2. September 10, 2017 00:00:00: b1.jpg
  3. September 12, 2017 00:00:00: ddx.ddx
  4. September 12, 2017 00:00:00: Error Encountered ttrack project summary cfm.msg
  5. September 13, 2017 00:00:00: 4199633.zip

Comments:

Hi, DDX doesn't have any issues even if the link given is not present. Its just the namespace which is basically just a unique identifier. Issue is most probably happening because ddx is not available. Can you share your ddx which you used in your repro case? Also, which version of CF are you using? Is it standard or enterprise? Thanks, Kailash
Comment by Kailash B.
341 | September 11, 2017 08:17:38 AM GMT
CF11 - Enterprise is used. I am not using DDX from File but directly as a variable. Here is the code. I just pass the PDF folder as input. <cffunction name="getText" access="public" returnType="array" output="false"> <cfargument name="pdfpath" type="string" required="true" hint="The path to the PDF file"> <cfset var results = arrayNew(1)> <cfset var ddx = ""> <cfset var inputStruct = ""> <cfset var outputStruct = ""> <cfset var tempxml = getTempFile(getTempDirectory(), "pdfutils")> <cfset var ddxVar = ""> <cfset var myxml = ""> <cfset var x = ""> <cfset var node = ""> <cfset var text = ""> <!--- does the file exist? ---> <cfif not fileExists(arguments.pdfpath)> <cfthrow message="Unable to find pdf: #arguments.pdfpath#"> </cfif> <!--- Create DDX ---> <cfsavecontent variable="ddx"> <?xml version="1.0" encoding="UTF-8"?> <DDX xmlns="http://ns.adobe.com/DDX/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/coldfusion_ddx.xsd"> <DocumentText result="Out1"> <PDF source="doc1"/> </DocumentText> </DDX> </cfsavecontent> <cfset ddx = trim(ddx)> <!--- Set my parameters ---> <cfset inputStruct = {doc1="#arguments.pdfpath#"}> <cfset outputStruct = {Out1="#tempxml#"}> <!--- Process ---> <cfpdf action="processddx" ddxfile="#ddx#" inputfiles="#inputStruct#" outputfiles="#outputStruct#" name="ddxVar"> <!--- read in and parse xml ---> <cffile action="read" file="#tempxml#" variable="myxml"> <cfset myxml = xmlParse(myxml)> <!--- ensure valid stuff ---> <cfif structKeyExists(myxml, "DocText") and structKeyExists(myxml.DocText,"TextPerPage") and structKeyExists(myxml.DocText.TextPerPage, "Page")> <cfloop index="x" from="1" to="#arrayLen(myxml.DocText.TextPerPage.Page)#"> <cfset node = myxml.DocText.TextPerPage.Page[x]> <cfset text = node.xmltext> <cfset arrayAppend(results, text)> </cfloop> </cfif> <!--- <cfdump var="#myxml#"><cfabort> ---> <cfreturn results> </cffunction>
Comment by Ashok k.
342 | September 11, 2017 04:29:21 PM GMT
Can you try this ddx? I have done nothing much. Just added proper spacing to the xml. The link was not the issue. The issue was the DDX specified. <?xml version="1.0" encoding="UTF-8"?> <DDX xmlns="http://ns.adobe.com/DDX/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/ coldfusion_ddx.xsd"> <DocumentText result="Out1"> <PDF source="doc1"/> </DocumentText> </DDX>
Comment by Kailash B.
343 | September 12, 2017 07:20:46 AM GMT
I get the same error. irrespective of spacing in the tag above or below. I also tried putting it into a file, still the same error.
Comment by Ashok R.
344 | September 12, 2017 07:39:12 AM GMT
Can you please try the attached ddx file? The name is ddx.ddx Its not an issue with the link. I tried using the same repro case with the attached DDX and its working. Its not a bug with ColdFusion. It's an issue with either the encoding, or the attached DDX because of which the DDX parser is unable to parse the file.
Comment by Kailash B.
345 | September 12, 2017 08:03:41 AM GMT
Error I get: When I dumped #isddx(ddx.ddx)# is responds YES. The DDX specified is not valid. Check for invalid construct or restricted keywords. Detail: E:\ColdFusion11\cfusion\wwwroot\TTrack\ddx.ddx. The error occurred on line 44. I tried with a different name, but still the same error. The DDX specified is not valid. Check for invalid construct or restricted keywords. Detail: E:\ColdFusion11\cfusion\wwwroot\TTrack\myddx.ddx. The error occurred on line 44. Attached the complete error dump. any other alternative solutions ?
Comment by Ashok R.
346 | September 12, 2017 07:27:37 PM GMT
Hi, I have attached the complete code that i have used for testing this issue. Please take an appropriate PDF and check. It should work.
Comment by Kailash B.
347 | September 13, 2017 05:34:09 AM GMT
Hi, Did it work for you? Thanks, Kailash
Comment by Kailash B.
348 | September 14, 2017 08:50:17 AM GMT
This is not a bug with ColdFusion but with the syntax of the ddx file. Have provided the correct ddx file to the user. Will reopen if we find it as a bug once the user comes back.
Comment by Kailash B.
349 | September 17, 2017 06:07:40 PM GMT
Hi, I have the same issue as the original poster. I tried following many different examples online but they all fail. I've tried the ddx.ddx file attached to this bug report and that also fails. When I try to validate the DDX file using the IsDDX() function it returns "The DDX specified is not valid". I've tried using DDX as a local variable, as well as in a file, and both methods fail. Please help! Regards, James
Comment by James A.
30955 | June 26, 2019 10:45:49 AM GMT
Hi James,   Can you try it out using the ddx I provided and let me know if you see the same error there? You can download the zip: 4199663.zip and take the ddx as well as cfm file from there   Thanks, Kailash
Comment by Kailash B.
30956 | June 26, 2019 11:24:38 AM GMT