[477266] XSD xpath syntax rejected during XSD import
diff --git a/features/org.eclipse.xsd-feature/feature.xml b/features/org.eclipse.xsd-feature/feature.xml
index 4748bf3..e629655 100644
--- a/features/org.eclipse.xsd-feature/feature.xml
+++ b/features/org.eclipse.xsd-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.xsd"
       label="%featureName"
-      version="2.11.0.qualifier"
+      version="2.12.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.xsd.license"
       license-feature-version="2.8.0.qualifier">
diff --git a/features/org.eclipse.xsd.sdk-feature/feature.xml b/features/org.eclipse.xsd.sdk-feature/feature.xml
index 7a53710..cf980ac 100644
--- a/features/org.eclipse.xsd.sdk-feature/feature.xml
+++ b/features/org.eclipse.xsd.sdk-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.xsd.sdk"
       label="%featureName"
-      version="2.11.0.qualifier"
+      version="2.12.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.xsd.license"
       license-feature-version="2.8.0.qualifier">
diff --git a/plugins/org.eclipse.xsd/META-INF/MANIFEST.MF b/plugins/org.eclipse.xsd/META-INF/MANIFEST.MF
index 618387d..b8ae153 100644
--- a/plugins/org.eclipse.xsd/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.xsd/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.xsd; singleton:=true
-Bundle-Version: 2.11.0.qualifier
+Bundle-Version: 2.12.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.xsd.XSDPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDPatternFacetImpl.java b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDPatternFacetImpl.java
index 8845967..3adf4c1 100644
--- a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDPatternFacetImpl.java
+++ b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDPatternFacetImpl.java
@@ -34,6 +34,7 @@
 import org.eclipse.xsd.XSDPlugin;
 import org.eclipse.xsd.XSDSimpleTypeDefinition;
 import org.eclipse.xsd.util.XSDConstants;
+import org.eclipse.xsd.util.XSDUtil;
 
 
 /**
@@ -210,9 +211,9 @@
     {
       ArrayList<RegularExpression> result = new ArrayList<RegularExpression>();
       Collection<String> theValues = getValue();
+      XSDSimpleTypeDefinition xsdSimpleTypeDefinition = getSimpleTypeDefinition();
       if (theValues.isEmpty())
       {
-        XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition)getContainer();
         if (xsdSimpleTypeDefinition != null && !xsdSimpleTypeDefinition.getSyntheticFacets().contains(this))
         {
           createRequiredAttributeDiagnostic(XSDConstants.PART1, "element-pattern", getElement(), XSDConstants.VALUE_ATTRIBUTE);
@@ -224,6 +225,11 @@
         {
           try
           {
+            if (value.contains("child:") && xsdSimpleTypeDefinition != null && XSDUtil.isSchemaForSchemaNamespace(xsdSimpleTypeDefinition.getTargetNamespace()))
+            {
+              value = value.replaceAll("\\\\\\.|@|//?|\\\\\\|", "\\\\s*$0\\\\s*");
+            }
+
             result.add(new RegularExpression(value, "X"));
           }
           catch (ParseException parseException)