[490769] XML Schema validation shows incorrect location for error
diff --git a/xml/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF b/xml/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF index 87167de..be4c8ae 100644 --- a/xml/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF +++ b/xml/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %_UI_PLUGIN_NAME Bundle-SymbolicName: org.eclipse.wst.xsd.core; singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 1.2.100.qualifier Bundle-Activator: org.eclipse.wst.xsd.core.internal.XSDCorePlugin Bundle-Vendor: %Bundle-Vendor.0 Bundle-Localization: plugin
diff --git a/xml/bundles/org.eclipse.wst.xsd.core/pom.xml b/xml/bundles/org.eclipse.wst.xsd.core/pom.xml index 376fe88..931eeaf 100644 --- a/xml/bundles/org.eclipse.wst.xsd.core/pom.xml +++ b/xml/bundles/org.eclipse.wst.xsd.core/pom.xml
@@ -21,6 +21,6 @@ <groupId>org.eclipse.webtools.sourceediting</groupId> <artifactId>org.eclipse.wst.xsd.core</artifactId> - <version>1.2.0-SNAPSHOT</version> + <version>1.2.100-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/xml/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java b/xml/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java index ea4cc34..e62035e 100644 --- a/xml/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java +++ b/xml/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2001, 2008 IBM Corporation and others. + * Copyright (c) 2001, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at @@ -9,6 +9,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Nikolay Metchev <nikolaymetchev@gmail.com> - 490769: XML Schema validation shows incorrect location for error *******************************************************************************/ package org.eclipse.wst.xsd.core.internal.validation.eclipse; @@ -25,12 +26,12 @@ public String[] createMessageInfo(String errorKey, String errorMessage) { //Now map the error key to what we would want to underline: - String nameOrValue = ""; - String selectionStrategy = ""; + String nameOrValue = ""; //$NON-NLS-1$ + String selectionStrategy = ""; //$NON-NLS-1$ if(errorKey != null) { - if (errorKey.equals("s4s-elt-invalid-content.1") || errorKey.equals("s4s-elt-must-match.1") || - errorKey.equals("s4s-att-must-appear") || errorKey.equals("s4s-elt-invalid-content.2")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + if (errorKey.equals("s4s-elt-invalid-content.1") || errorKey.equals("s4s-elt-must-match.1") || //$NON-NLS-1$//$NON-NLS-2$ + errorKey.equals("s4s-att-must-appear") || errorKey.equals("s4s-elt-invalid-content.2")) //$NON-NLS-1$ //$NON-NLS-2$ { selectionStrategy = "START_TAG"; //$NON-NLS-1$ } @@ -46,15 +47,23 @@ } else if (errorKey.equals("s4s-elt-character")) //$NON-NLS-1$ { - selectionStrategy = "TEXT"; //$NON-NLS-1$ + selectionStrategy = "TEXT"; //$NON-NLS-1$ } else if (errorKey.equals("src-resolve.4.2") || errorKey.equals("src-resolve")) //$NON-NLS-1$ //$NON-NLS-2$ { - selectionStrategy = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE"; //$NON-NLS-1$ - nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage); + if (errorMessage.endsWith("to a(n) 'type definition' component.")) //$NON-NLS-1$ + { + selectionStrategy = "ATTRIBUTE_VALUE"; //$NON-NLS-1$ + nameOrValue = "type"; //$NON-NLS-1$ + } + else + { + selectionStrategy = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE"; //$NON-NLS-1$ + nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage); + } } - else if (errorKey.equals("EqRequiredInAttribute") || errorKey.equals("OpenQuoteExpected") || - errorKey.equals("LessthanInAttValue")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + else if (errorKey.equals("EqRequiredInAttribute") || errorKey.equals("OpenQuoteExpected") || //$NON-NLS-1$ //$NON-NLS-2$ + errorKey.equals("LessthanInAttValue")) //$NON-NLS-1$ { selectionStrategy = "ATTRIBUTE_NAME"; //$NON-NLS-1$ nameOrValue = getFirstStringBetweenQuotes(errorMessage);