[jboss-as7-dev] Validation of XML Parsers / Schemas

Darran Lofthouse darran.lofthouse at jboss.com
Tue Sep 27 16:13:10 EDT 2011


I am not sure I would really consider the runtime side of this 
validation in the parser, it is more a case of taking that formula you 
mention and instead of having it distributed across all parsers it is in 
one wrapper of the XMLExtendedStreamReader.

Regarding the JAXB style solution I have also been thinking about that 
as well - for new subsystems it is probably not an issue but for a 
solution like that one problem that would need to be overcome is that 
the output of the XMLElementReader we have today does not necessarily 
match the input to the XMLElementWriter so you could end up needing to 
map the in independently of the out - or we end up with more mapping 
code which brings us back to where we are today.

Regards,
Darran Lofthouse.


On 09/27/2011 08:10 PM, David M. Lloyd wrote:
> I don't think that generic validation in the parser is going to work.
> We've been down this road before.
>
> Ultimately the *best* solution is going to be a code generator for the
> parsers - sort of like JAXB but streaming-friendly instead of mapping to
> object graphs - so that all the validation and parsing logic is factored
> out (the generated implementation will be optimal so that human error
> becomes impossible) and the manually-written code can focus on the logic
> of mapping the XML data to the target model instead of being 80%
> validation like today.
>
> As it is today, you can write element parser methods following a
> definite formula, so this isn't too lofty of a goal in my opinion.  It's
> just a post-7.1 goal, that's all.
>
> On 09/27/2011 02:05 PM, Darran Lofthouse wrote:
>> Yes, at the moment the way I am thinking about this nothing would be
>> *required* to change - the ValidatingXmlReader would just be wrapping
>> the XMLExtendedStreamReader and the underlying calls to the
>> XMLExtendedStreamReader would remain the same so everything can continue
>> using the XMLExtendedStreamReader until ready.
>>
>> I think I would probably actually recommend not pro-actively making a
>> switch but instead for subsystems / domain parsers to switch at the time
>> the schema version is bumped.
>>
>> To begin with if we wanted to to try something out we could even
>> maintain the exact registration / calls we have today and just
>> instantiate the ValidatingXmlReader on the first line of a readElement
>> call to wrap the passed in reader. e.g. As a first step it could be
>> introduced for host.xml reading alone.
>>
>> Regards,
>> Darran Lofthouse.
>>
>>
>>
>> On 09/27/2011 07:38 PM, Brian Stansberry wrote:
>>> Can this be done without *requiring* changes to subsystems?
>>>
>>> ExtensionParsingContext.setSubsystemXmlMapping(String namespaceUri,
>>> XMLElementReader<List<ModelNode>>    reader) is a stable API that we cannot
>>> break.
>>>
>>> A new method could be added to register a parser that requires a
>>> ValidatingXmlReader to be passed in, but we can't force subsystems to
>>> change their impl's
>>>
>>> public void readElement(final XMLExtendedStreamReader reader, final
>>> List<ModelNode>    list) throws XMLStreamException
>>>
>>> to
>>>
>>> public void readElement(final ValidatingXmlReader reader, final
>>> List<ModelNode>    list) throws XMLStreamException
>>>
>>> On 9/27/11 11:42 AM, Darran Lofthouse wrote:
>>>> The topic of how to validate the XML parsers or the schemas crops up
>>>> every now and again.
>>>>
>>>> I have been having a couple of ideas of how we could at some point look
>>>> into this: -
>>>>
>>>> http://community.jboss.org/docs/DOC-17243
>>>>
>>>> The proposed idea actually covers two parts: -
>>>>        - A wrapper around the existing API that allows the parsers to just
>>>> request the elements / attributes they require and leave the wrapper to
>>>> handle all the error handling we currently have distributed across the
>>>> parsers.
>>>>
>>>>       - This then allows us during testing to validate that the calls match
>>>> the structure defined in the schema.
>>>>
>>>> I may try prototyping something other the weekend but thought I would
>>>> put this out there and see if anyone has any thoughts / comments.
>>>>
>>>> Regards,
>>>> Darran Lofthouse.
>>>> _______________________________________________
>>>> jboss-as7-dev mailing list
>>>> jboss-as7-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>
>>>
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
>


More information about the jboss-as7-dev mailing list