I have a model which is in XML format as shown below and I need to parse the XML and check whether my XML has internal-flag flag set as true or not. In my other models, it might be possible, that internal-flag flag is set as false. And sometimes, it is also possible that this field won't be there so by default it will be false from my code.
<?xml version="1.0"?>
<ClientMetadata
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://www.google.com client.xsd" 
 xmlns="http://www.google.com"> 
    <client id="200" version="13">
        <name>hello world</name>
        <description>hello hello</description>
        <organization>TESTER</organization>
        <author>david</author>
        <internal-flag>true</internal-flag>
        <clock>
            <clock>
                <for>
                    <init>val(tmp1) = 1</init>
                    <clock>
                        <eval><![CDATA[result("," + $convert(val(tmp1)))]]></eval>
                    </clock>
                </for>
                <for>
                    <incr>val(tmp1) -= 1</incr>
                    <clock>
                        <eval><![CDATA[result("," + $convert(val(tmp1)))]]></eval>
                    </clock>
                </for>
            </clock>
        </clock>
    </client>
</ClientMetadata>
I have a POJO in which I am storing my above model -
public class ModelMetadata {
    private int modelId;
    private String modelValue; // this string will have my above XML data as string
    // setters and getters here
}
Now what is the best way to determine whether my model has internal-flag set as true or not?
// this list will have all my Models stored
List<ModelMetadata> metadata = getModelMetadata();
for (ModelMetadata model : metadata) {
    // my model will be stored in below variable in XML format
    String modelValue = model.getModelValue();
    // now parse modelValue variable and extract `internal-flag` field property
}
Do I need to use XML parsing for this or is there any better way to do this?
Update:-
I have started using Stax and this is what I have tried so far but not sure how can I extract that field -
InputStream is = new ByteArrayInputStream(modelValue.getBytes());
XMLStreamReader r = XMLInputFactory.newInstance().createXMLStreamReader(is);
while(r.hasNext()) {
    // now what should I do here?
}
 
     
     
    