Activating CrossRef DOIs - php.ini file?

First issue published on OJS 3.02 and now trying to activate the DOIs. It was all working fine until I tried submitting the DOIs to CrossRef through OJS.

I have got the DOIs in the metadata for each of the articles, all saved, all looks fine but when I tick box and press Submit in CrossRef plugin, I get Validation Errors but can’t make sense of them:

  Failed to locate the main schema resource at 'http://www.crossref.org/schema/deposit/crossref4.3.6.xsd'.

 Invalid XML: (see below)

 Could not convert selected objects.

Help desperately appreciated,

Gail - www.murmurations.cloud

VALIDATION ERRORS

Error: Attribute aria-labelled-by not allowed on element nav at this point.
From line 20, column 3; to line 20, column 105
page">↩↩		<nav id="accessibility-nav" class="sr-only" role="navigation" aria-labelled-by="accessible-menu-label">↩			<h
Attributes for element nav:
Global attributes
Warning: The navigation role is unnecessary for element nav.
From line 20, column 3; to line 20, column 105
page">↩↩		<nav id="accessibility-nav" class="sr-only" role="navigation" aria-labelled-by="accessible-menu-label">↩			<h
Warning: The banner role is unnecessary for element header.
From line 31, column 5; to line 31, column 87
nav>↩↩				<header class="navbar navbar-default" id="headerNavigationContainer" role="banner">↩↩				
Error: Bad value navigation for attribute role on element ul.
From line 35, column 6; to line 35, column 118
ow">↩					<ul id="navigationUser" class="nav nav-pills tab-list pull-right" role="navigation" aria-label="User Navigation">↩					
Warning: The document is not mappable to XML 1.0 due to two consecutive hyphens in a comment.
At line 169, column 15
↩      </li> --->↩      ↩     
Warning: The main role is unnecessary for element main.
From line 204, column 4; to line 204, column 77
iner">↩			<main class="pkp_structure_main col-xs-12 col-sm-10 col-md-8" role="main">
Warning: The navigation role is unnecessary for element nav.
From line 208, column 1; to line 208, column 74
ogin">↩↩	↩<nav class="cmp_breadcrumbs" role="navigation" aria-label="You are here:">↩	<ol 
Error: Attribute maxlenght not allowed on element input at this point.
From line 230, column 4; to line 230, column 135
label>↩			<input type="text" name="username" class="form-control" id="login-username" placeholder="Username" value="" maxlenght="32" required>↩		</d
Attributes for element input:
Global attributes	
accept	when type is file
alt	when type is image
autocomplete	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, number, range, or color
autofocus	
checked	when type is checkbox or radio
dirname	when type is text or search
disabled	
form	
formaction	when type is submit or image
formenctype	when type is submit or image
formmethod	when type is submit or image
formnovalidate	when type is submit or image
formtarget	when type is submit or image
height	when type is image
list	when type is text, search, url, tel, email, date, month, week, time, datetime-local, number, range, or color
max	when type is date, month, week, time, datetime-local, number, or range
maxlength	when type is text, search, url, tel, email, or password
min	when type is date, month, week, time, datetime-local, number, or range
multiple	when type is email or file
name	
pattern	when type is text, search, url, tel, email, or password
placeholder	when type is text, search, url, tel, email, password, or number
readonly	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, or number
required	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, number, checkbox, radio, or file
size	when type is text, search, url, tel, email, or password
src	when type is image
step	when type is date, month, week, time, datetime-local, number, or range
type	
value	when type is not file or image
width	when type is image
Error: Attribute password not allowed on element input at this point.
From line 237, column 4; to line 237, column 166
label>↩			<input type="password" name="password" class="form-control" id="login-password" placeholder="Password" password="true" maxlength="32" required="$passwordRequired">↩		</d
Attributes for element input:
Global attributes	
accept	when type is file
alt	when type is image
autocomplete	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, number, range, or color
autofocus	
checked	when type is checkbox or radio
dirname	when type is text or search
disabled	
form	
formaction	when type is submit or image
formenctype	when type is submit or image
formmethod	when type is submit or image
formnovalidate	when type is submit or image
formtarget	when type is submit or image
height	when type is image
list	when type is text, search, url, tel, email, date, month, week, time, datetime-local, number, range, or color
max	when type is date, month, week, time, datetime-local, number, or range
maxlength	when type is text, search, url, tel, email, or password
min	when type is date, month, week, time, datetime-local, number, or range
multiple	when type is email or file
name	
pattern	when type is text, search, url, tel, email, or password
placeholder	when type is text, search, url, tel, email, password, or number
readonly	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, or number
required	when type is text, search, url, tel, email, password, date, month, week, time, datetime-local, number, checkbox, radio, or file
size	when type is text, search, url, tel, email, or password
src	when type is image
step	when type is date, month, week, time, datetime-local, number, or range
type	
value	when type is not file or image
width	when type is image
Error: Bad value $passwordRequired for attribute required on element input.
From line 237, column 4; to line 237, column 166
label>↩			<input type="password" name="password" class="form-control" id="login-password" placeholder="Password" password="true" maxlength="32" required="$passwordRequired">↩		</d
Error: Bad value $remember for attribute checked on element input.
From line 248, column 5; to line 248, column 87
abel>↩				<input type="checkbox" name="remember" id="remember" value="1" checked="$remember"> Keep 
Warning: The complementary role is unnecessary for element aside.
From line 269, column 6; to line 269, column 130
				↩					<aside id="sidebar" class="pkp_structure_sidebar left col-xs-12 col-sm-2 col-md-4" role="complementary" aria-label="Sidebar">↩				<
Error: Bad value http://murmurations.cloud/ojs/public/journals/1/donate button copy.jpg for attribute src on element input: Illegal character in path segment: space is not allowed.
From line 333, column 203; to line 333, column 365
2VG7DAN"> <input alt="PayPal – The safer, easier way to pay online!" name="submit" src="http://murmurations.cloud/ojs/public/journals/1/donate button copy.jpg" type="image"> <img 
Warning: The border attribute is obsolete. Consider specifying img { border: 0; } in CSS instead.
From line 333, column 367; to line 333, column 468
="image"> <img src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" alt="" width="1" height="1" border="0"></form
Warning: The contentinfo role is unnecessary for element footer.
From line 339, column 3; to line 339, column 44
nt -->↩↩  <footer class="footer" role="contentinfo">↩↩  	<
Warning: The type attribute is unnecessary for JavaScript resources.
From line 359, column 1; to line 359, column 97
page -->↩↩<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></scri
Warning: The type attribute is unnecessary for JavaScript resources.
From line 359, column 107; to line 359, column 208
></script><script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/jquery-ui.min.js" type="text/javascript"></scri
Warning: The type attribute is unnecessary for JavaScript resources.
From line 359, column 218; to line 359, column 331
></script><script src="http://murmurations.cloud/ojs/lib/pkp/js/lib/jquery/plugins/jquery.tag-it.js" type="text/javascript"></scri
Warning: The type attribute is unnecessary for JavaScript resources.
From line 359, column 341; to line 359, column 463
></script><script src="http://murmurations.cloud/ojs/plugins/themes/bootstrap3/bootstrap/js/bootstrap.min.js" type="text/javascript"></scri
Error: The aria-controls attribute must point to an element in the same document.
From line 46, column 11; to line 46, column 156
										<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu" aria-expanded="false" aria-controls="navbar">↩

Any ideas please? I’m on my own with this and not a coder, doing great but need some help understanding how to correct everything.

The site has gone from locating all files to not finding some now. What am I doing wrong?

Can you post screenshot of interface before you try to exchange your DOIs and article metadata with CrossRef?

murm crossref xml export plugin screenshotvalidation errors

Did you contact their support?

Who Crossref’s? No. Thought it was an OJS issue.

Hello,

This line in your post:
Failed to locate the main schema resource at ‘http://www.crossref.org/schema/deposit/crossref4.3.6.xsd’.
can from my point of view mean that:
there was not good communication between your server and Crossref. Is your server behind proxy?
It is advisable, from my point fo view, to ask Crossref what is their opinion about that.

Thanks, Vvucic, my pc is not behind a proxy. The web hosting may be. I have started a support request with CrossRef and am waiting to hear back.

Gail Simon, D.Prof
Editor
Murmurations. Journal of Transformative Systemic Practice
www.murmurations.cloud

If you download the XML, and upload it to the CrossRef metadata quality check, does it give you errors there?

So the CrossRef metadata quality check said this after I uploaded the xml in notepad.

File: invalid.xml

Parsing is complete, if no errors were printed the file is valid and well formed
1 DOIs found in file

Your file was NOT deposited with the system, this form simply checks the XML.

This points to the problem being with OJS or the server it is running on, rather than Crossref or the XML itself. @vvucic’s suggestion of checking whether your web host is behind a proxy is the next best step.

Still not resolved this.
No firewall or proxy on web server.
Error log: [16-Jan-2018 12:18:02 UTC] PHP Warning: DOMDocument::schemaValidate(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /data02/c6410587/public_html/murmurations/ojs/lib/pkp/classes/xslt/XMLTypeDescription.inc.php on line 126
So changed php.ini setting to enable url.
allow_url_fopen = On
and copied php.ini to OJS folder with url fopen but all other stuff commented out.
No longer generating errors. But still not submitting artcules using CrossRef

CrossRef said the following:

"I was able to get your XML to parse as valid. The schema location ‘http://www.crossref.org/schema/deposit/crossref4.3.6.xsd’ is behind a redirect, and your firewall may be preventing the redirect. You could try substituting ‘https://www.crossref.org/schemas/crossref4.3.6.xsd’ instead of ‘http://www.crossref.org/schema/deposit/crossref4.3.6.xsd’ and see if that works for you.

Otherwise, you can simply submit your deposit without parsing. If there are any metadata or XML formatting errors, those will be specified in a failure log that is emailed to you after the deposit is processed.

I don’t know how to implement either of those changes on OJS, though. It might be that OJS has its own parser built in, and won’t submit the file if it doesn’t parse as valid on your end. Likewise, I’m not sure what you would need to modify in OJS to substitute 'https://www.crossref.org/schemas/crossref4.3.6.xsd for ‘http://www.crossref.org/schema/deposit/crossref4.3.6.xsd’ in the schema declaration.

I’d encourage you to reach out to OJS’s support team or search their forums."

It is unusual for php.ini to be parsed from the webroot. Can you confirm that copying php.ini to the OJS folder is effective? I would expect you to need to modify php.ini within its existing location, or pass the php.ini directive via Apache.

It does sound like you are on the right track in trying to enable allow_url_fopen.

Embarrassed to say I have just created a nightmare by upgrading ojs 3.02 to newest version.
Re the allow_url_fopen, it didn’t work on the ordinary php.ini so copied to ojs folder but with no futher effect. I will upload the php.ini file here later when I have restored the old folders/ Do you know if I can cut and paste folder back up for site to be restored?

To restore to a prior version, you will need to restore both the filesystem (source code and files_dir) and the database, each from the same point in time.

If you want to describe the situation more fully, please open a different thread on the forum specifically for the restore.

So the php.ini file is as follows. Should I alter anything else?

; cPanel-generated php ini directives, do not edit
; Manual editing of this file may result in unexpected behavior.
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)

allow_url_fopen = On
allow_url_include = Off
asp_tags = Off
display_errors = Off
enable_dl = Off
file_uploads = On
max_execution_time = 30
max_input_time = 60
max_input_vars = 1000
memory_limit = 100M
session.save_path = “”
upload_max_filesize = 100M

when i click submit on page:
http://murmurations.cloud/ojs/index.php/murmurations/management/importexport/plugin/CrossRefExportPlugin

I get a white page on the address:
http://murmurations.cloud/ojs/index.php/murmurations/management/importexport/plugin/CrossRefExportPlugin/exportSubmissions

but the crossref submissions are not showing as deposited

A white page will almost certainly correlate to a “PHP Fatal” message in your error log. What do you see there when you attempt the export?