Community
Participate
Working Groups
Build Identifier: Eclipse 3.6.2 XSD plugin org.eclipse.xsd_2.6.0 Attached schema contains 2 elements in a model group with same name but different types which is not permitted in schema. The error message is very cryptic and user cannot figure out the exact problem. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/test" xmlns:tns="http://www.example.org/test" elementFormDefault="qualified"> <xsd:element name="a" type="tns:Atype"></xsd:element> <xsd:complexType name="Atype"> <xsd:sequence> <xsd:element name="MRM22B2A_GROUP06_E02"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="MRM22B2A_GROUP06_E02"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema> The element 'http://www.example.org/test#MRM22B2A_GROUP06_E02' may not have both type 'http://www.example.org/test#MRM22B2A_GROUP06_E02_._type' and type 'http://www.example.org/test#MRM22B2A_GROUP06_E02_._type' Suggested improvement : Element declaration 'MRM22B2A_GROUP06_E102' has parent content model <sequence>, which prohibits duplicates with different types. There are number of other error messages that are hard to understand. It would be much better if you can prefix each error message with a unique 8 digit error ID so the using products can look for this ID in the error message and issue an appropriate message. Reproducible: Always
I really don't see that the suggestion is any less cryptic. It doesn't seem worth the effort to change it.
(In reply to comment #1) > I really don't see that the suggestion is any less cryptic. It doesn't seem > worth the effort to change it. Based on feedback from users not intimately familiar with XML schema, they find it very hard to understand the current message. If you do not want to change the message, then please provide an enhancement to associate error message ID with the message, then using products can use the error id and issue an error message tailored for their audience.
XSDDiagnostic.getKey already supports what you suggest,i.e., a key you can use to create your own detailed specialized messages, or just to add the key itself to the message string. What you show here is kind of a corner case where there are two anonymous types with really no way of distinguishing the two types based on their names. Your suggestion also seems to deal only with this one corner case.