Hi All,
I would like to thank everyone involved in the development of OMP once again.
I would also like to thank @ajnyga for allowing us to use the Crossref OMP DOI plugin.
Please tell us what happens and what you expected to happen:
I am using this plugin with OMP 3.4.0-9 to register DOIs for books and book chapters.
While I can register DOIs for book chapters without any problems,
if there is an & symbol in the references section of monographs, it gives an error during DOI registration.
When I manually remove the & symbol from the references section and try again, the registration is successful. However, removing the & symbol from the references of each book is quite a laborious process.
Since I am not a software expert, I cannot determine whether this error originates from OMP itself or the DOI plugin.
What can I do to fix this problem? Could you please guide me?
Best Regards,
Steps I took leading up to the issue
- Complete submission of a monograph, fill the references into the relevant are, add the publishing format and publish it. The system assigns a valid DOI. Then go to DOIs tab.
- Check the box for the submission, Click on the arrow right to the submission’s number, and Click to Send DOIs. Wait for the process to complete.
- Scroll down to message box and click See Error Message.
- The error message says: Deposited XML is not well-formed or does not validate: Error on line 67: The entity name must immediately follow the ‘&’ in the entity reference.
What application are you using?
OMP 3.4.0-9
Additional information
Sample Error message and references from a book:
Crossref Error Message:
<?xml version="1.0" encoding="UTF-8"?>
<doi_batch_diagnostic status="completed" sp="ip-10-4-2-147.ec2.internal">
<submission_id>1742115802</submission_id>
<batch_id>_1776327875</batch_id>
<record_diagnostic status="Failure" msg_id="29">
<doi />
<msg>Deposited XML is not well-formed or does not validate: Error on line 86: The entity name must immediately follow the '&' in the entity reference.: Error on line 86: The entity name must immediately follow the '&' in the entity reference.</msg>
</record_diagnostic>
<batch_data>
<record_count>1</record_count>
<success_count>0</success_count>
<warning_count>0</warning_count>
<failure_count>1</failure_count>
</batch_data>
</doi_batch_diagnostic>
Stack Trace:
Deposited XML is not well-formed or does not validate: Error on line 86: The entity name must immediately follow the '&' in the entity reference.
at org.crossref.ds.metadata.AbstractMetadataProcessor.buildDocument(AbstractMetadataProcessor.java:123)
at org.crossref.ds.metadata.MetadataProcessorImpl.processMetadata(MetadataProcessorImpl.java:129)
at org.crossref.ds.controllers.SynchronousDepositController.handleRequest(SynchronousDepositController.java:187)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.crossref.common.spring.servlet.CrossRefDispatcherServlet$1.handle(CrossRefDispatcherServlet.java:140)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.crossref.common.servlet.RequestCaptureFilter.doFilter(RequestCaptureFilter.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.crossref.qs.controllers.CorsFilter.doFilterInternal(CorsFilter.java:27)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:396)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1793)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:750)
Caused by: org.jdom.input.JDOMParseException: Error on line 86: The entity name must immediately follow the '&' in the entity reference.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:533)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:946)
at org.crossref.common.xml.CrossrefDocumentBuilder.build(CrossrefDocumentBuilder.java:28)
at org.crossref.common.util.JDomUtil.buildDocument(JDomUtil.java:232)
at org.crossref.ds.metadata.AbstractMetadataProcessor.buildDocument(AbstractMetadataProcessor.java:120)
... 42 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 86; columnNumber: 221; The entity name must immediately follow the '&' in the entity reference.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:399)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:326)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1466)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEntityReference(XMLDocumentFragmentScannerImpl.java:1845)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3060)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:504)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:642)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
... 46 more
References of that monograph
Skisprungschanzen. Erzurum Kiremitliktepe Türk Telekom Ski Jumping Tower 20 Ekim 2021 [Available from: https://tr.wikipedia.org/wiki/Kiremitliktepe_Kayakla_Atlama_Kuleleri#cite_note-sss-1.
Skisprungschanzen. Kiremitlik Tepe Atlama Kuleleri Genel Bilgiler 2011 [Available from: https://www.skisprungschanzen.com/EN/Ski+Jumps/TUR-Turkey/Erzurum/0444-Kiremitliktepe/.
FIS-SKI. Ev sahipliği yaptığı bazı uluslararası turnuvalar 2024 [Available from: https://www.fis-ski.com/DB/ski-jumping/calendar-results.html?eventselection=&place=§orcode=JP&seasoncode=2018&categorycode=&disciplinecode=&gendercode=&racedate=&racecodex=&nationcode=tur&seasonmonth=X-2018&saveselection=-1&seasonselection=.
FIS-SKI. Kiremitlik Tepe Atlama Kuleleri Homologosyonları 2017 [Available from: https://www.fis-ski.com/DB/ski-jumping/homologations.html?place=Erzurum+-+Kandili&disciplinecode=&nationcode=&gendercode=&homid=2111&homologationtype=DET§orcode=JP&homologationlevel=&homologationcategory.
