Re: [xml] Localizing the validation messages


I'm not sure that the structured error handler (as I understand it) gives me everything I need to implement easily localization.

The XML Validation messages generated are frequently made up of several potential parts :

            * a prefix giving the content, for instance "Element 'a':"
            * an error message, e.g. "Missing child element(s)."
* a suffix with expected values, for example : Expected is ( c ).

The xmlError structure contains the full (with prefix and suffix) English message in the message field. The way I understand it, the code field corresponds to the central part of the message (1871 = Missing child element(s)").

In some cases, if I understand it properly, the code may correspond to various messages: 1871 (XML_SCHEMAV_ELEMENT_CONTENT) seems to be associated to "Missing child element(s)" or "This element is not expected"... It looks like some codes correspond to messages with variables parts (SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, "The attribute '%s' is not allowed").

Is there any way to get a unique error code that corresponds to a single string? In other words, an error code that specifies "Missing child element(s)" and another for "This element is not expected"?

Is there a way to get a separate code/message number that corresponds to the prefix (Element/Attribute) and another one specifying the suffix (expected list)?

Does the structured error handler give access to the parameters corresponding to a given error code (for the prefix, central and suffix parts)? For example, for SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, where do I get the attribute value (without parsing the English message)?

The way I see it, the localization layer (above libxml2) would/should simply replace the message (The attribute 'b' is not allowed) using for instance its error code (SCHEMAV_CVC_COMPLEX_TYPE_3_2_1) to index a localized file and then inject the parameters into the said translated string ("L'attribut '%s' n'est pas permis").

P. A.

  You can localize on top of libxml2.
The structured error handler should give you everything you need
to implement your own localization.
I'm not sure I want to do this in libxml2, due to dependencies,
portability and the fact that it's a developper toolkit, not the
right level to emit user level messages.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]