I have the following XML
<?xml version="1.0" encoding="utf-8"?>
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
type="dynamic"
<Period
id="1"
start="PT0S">
<BaseURL>dash/</BaseURL>
<EventStream
schemeIdUri="urn:scte:scte35:2014:xml+bin"
timescale="1000">
<!-- 2022-09-07T09:44:32.640000Z -->
<Event
presentationTime="1662543872640"
duration="19200"
id="49282">
<Signal
xmlns="http://www.scte.org/schemas/35/2016">
<Binary>/DAhAAAAAAAAAP/wEAUAAMCCf+9//gAaXgDAAAAAAADkYSQC</Binary>
</Signal>
</Event>
</EventStream>
</Period>
</MPD>
I am using XmlMapper to parse it
These are my model class
The root MPD
@JacksonXmlRootElement(
localName = "MPD",
namespace = "urn:mpeg:dash:schema:mpd:2011"
)
public class MPD {
@JacksonXmlProperty(
localName = "BaseURL",
namespace = "urn:mpeg:dash:schema:mpd:2011"
)
private final List<BaseURL> baseURLs;
@JacksonXmlProperty(
localName = "Period",
namespace = "urn:mpeg:dash:schema:mpd:2011"
)
private final List<Period> periods;
}
The Period model
public class Period {
@JacksonXmlProperty(
localName = "BaseURL"
)
private final List<BaseURL> baseURLs;
@JacksonXmlProperty(
localName = "EventStream",
namespace = "urn:mpeg:dash:schema:mpd:2011"
)
private final List<EventStream> eventStreams;
}
The BaseURL model
public class BaseURL {
@JacksonXmlText
private final String value;
}
Using jackson mapper as
XMLInputFactory inputF = XMLInputFactory.newFactory();
XmlMapper xmlMapper = new XmlMapper(inputF);
xmlMapper.registerModule(new JavaTimeModule());
MPD dashManifest = xmlMapper.readValue(manifest, MPD.class);
I am getting the error
om.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.model.dashplaylist.Period` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('dash/')
at [Source: (StringReader); line: 16, column: 19] (through reference chain: com.model.dashplaylist.MPD["Period"]->java.util.ArrayList[0])