cronnevik / nor2qml

Apache License 2.0
2 stars 0 forks source link

Undeclared namespace prefix "ns0" at [row,col {unknown-source}]: [157,20] #2

Open fontiela opened 1 year ago

fontiela commented 1 year ago

Running nor2qml to convert a QUAKEML file to s-file, I got an error that I need help understanding if it's related to the file I want to convert or with the code itself.

joaofontiela$  java -jar converter-standalone-1.1.0-SNAPSHOT.jar --input="/Users/joaofontiela/Documents/PycharmProjects/earthquake_detection/TESTE_II.xml" --output="/Users/joaofontiela/Documents/PycharmProjects/earthquake_detection/Test_convert_QUAKEML-NORDIC/" --convert="s"  
Application init finished
Conversion started...
Undeclared namespace prefix "ns0"
 at [row,col {unknown-source}]: [157,20]
 at [Source: (StringReader); line: 157, column: 21] (through reference chain: no.nnsn.seisanquakemljpa.models.quakeml.v12.event.elements.EventParametersDto["event"]->java.util.ArrayList[0]->no.nnsn.seisanquakemljpa.models.quakeml.v12.event.elements.EventDto["magnitude"]->java.util.ArrayList[0])
com.fasterxml.jackson.databind.JsonMappingException: Undeclared namespace prefix "ns0"
 at [row,col {unknown-source}]: [157,20]
 at [Source: (StringReader); line: 157, column: 21] (through reference chain: no.nnsn.seisanquakemljpa.models.quakeml.v12.event.elements.EventParametersDto["event"]->java.util.ArrayList[0]->no.nnsn.seisanquakemljpa.models.quakeml.v12.event.elements.EventDto["magnitude"]->java.util.ArrayList[0])
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392)
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:363)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:371)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
    at com.fasterxml.jackson.dataformat.xml.deser.WrapperHandlingDeserializer.deserialize(WrapperHandlingDeserializer.java:122)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
    at com.fasterxml.jackson.dataformat.xml.deser.WrapperHandlingDeserializer.deserialize(WrapperHandlingDeserializer.java:122)
    at com.fasterxml.jackson.dataformat.xml.deser.XmlDeserializationContext.readRootValue(XmlDeserializationContext.java:91)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)
    at no.nnsn.seisanquakeml.seisanquakemlcommonsweb.utils.QuakemlUtils.getEventsFromQuakemlString(QuakemlUtils.java:116)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.lambda$convertToSfile$2(Converter.java:215)
    at java.base/java.lang.Iterable.forEach(Iterable.java:75)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.convertToSfile(Converter.java:205)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.convert(Converter.java:52)
    at no.nnsn.seisanquakeml.converterstandalone.ConverterStandaloneApplication.run(ConverterStandaloneApplication.java:36)
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:777)
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:310)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
    at no.nnsn.seisanquakeml.converterstandalone.ConverterStandaloneApplication.main(ConverterStandaloneApplication.java:28)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: com.fasterxml.jackson.core.JsonParseException: Undeclared namespace prefix "ns0"
 at [row,col {unknown-source}]: [157,20]
 at [Source: (StringReader); line: 157, column: 21]
    at com.fasterxml.jackson.dataformat.xml.util.StaxUtil.throwAsParseException(StaxUtil.java:41)
    at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser._nextToken(FromXmlParser.java:1408)
    at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser.nextToken(FromXmlParser.java:714)
    at com.fasterxml.jackson.core.JsonParser.nextFieldName(JsonParser.java:1038)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:320)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176)
    at com.fasterxml.jackson.dataformat.xml.deser.WrapperHandlingDeserializer.deserialize(WrapperHandlingDeserializer.java:122)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
    ... 37 more
Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "ns0"
 at [row,col {unknown-source}]: [157,20]
    at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:634)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:504)
    at com.ctc.wstx.sr.InputElementStack.resolveAndValidateElement(InputElementStack.java:503)
    at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3064)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2926)
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122)
    at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream._skipAndCollectTextUntilTag(XmlTokenStream.java:572)
    at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream._next(XmlTokenStream.java:491)
    at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream.next(XmlTokenStream.java:281)
    at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser._nextToken(FromXmlParser.java:1406)
    ... 43 more
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:780)
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:761)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:310)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
    at no.nnsn.seisanquakeml.converterstandalone.ConverterStandaloneApplication.main(ConverterStandaloneApplication.java:28)
    ... 8 more
Caused by: java.lang.NullPointerException
    at no.nnsn.seisanquakeml.seisanquakemlcommonsweb.utils.QuakemlUtils.getEventsFromQuakemlString(QuakemlUtils.java:134)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.lambda$convertToSfile$2(Converter.java:215)
    at java.base/java.lang.Iterable.forEach(Iterable.java:75)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.convertToSfile(Converter.java:205)
    at no.nnsn.seisanquakeml.converterstandalone.Converter.convert(Converter.java:52)
    at no.nnsn.seisanquakeml.converterstandalone.ConverterStandaloneApplication.run(ConverterStandaloneApplication.java:36)
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:777)
    ... 13 more

I'm running code on macOS Monterey (V12.6) on M1 chip, java:

joaofontiela$ java --version
java 14.0.2 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

and mvn:

Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /Users/joaofontiela/apache-maven-3.8.3
Java version: 14.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home
Default locale: pt_PT, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "Mac"
cronnevik commented 1 year ago

Hi. There error state that it has an issue with the namespace, which is prefixed with "ns0". It means that the converter cannot parse the xml file due to the unknown namespace. I dont know how the xml structure is within your file, but I suspect you have a custom defined tag within your xml structure. The converter does currently not support custom tags.

Example of custom tags; https://docs.obspy.org/tutorial/code_snippets/quakeml_custom_tags.html

If you remove the custom tags and the namespace declaration within the tags (e.g. xmlns:ns0=...), the converter should be able to parse the file.

I hope this helps.