diff --git a/swiftCore/src/main/java/com/brilliance/swift/mx2mt/AbstractMx2MtCreator.java b/swiftCore/src/main/java/com/brilliance/swift/mx2mt/AbstractMx2MtCreator.java
index a34bf6c..49f13ba 100644
--- a/swiftCore/src/main/java/com/brilliance/swift/mx2mt/AbstractMx2MtCreator.java
+++ b/swiftCore/src/main/java/com/brilliance/swift/mx2mt/AbstractMx2MtCreator.java
@@ -26,6 +26,7 @@ import javax.xml.datatype.XMLGregorianCalendar;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.net.URL;
 import java.util.*;
 
 public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
@@ -197,7 +198,9 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
         try {
             String[] paths = path.split("\\.");
             SAXReader saxReader = new SAXReader();
-            Document document = saxReader.read(AbstractMx2MtCreator.class.getResource("/xsd/"+xsdName+".xsd"));
+            URL resource = AbstractMx2MtCreator.class.getResource("/xsd/" + xsdName + ".xsd");
+            if (resource == null) return false;
+            Document document = saxReader.read(resource);
             Element element = document.getRootElement();
             String minOccurs = null;
             for (int i=0; i<paths.length; i++) {
@@ -205,7 +208,10 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
                 if (p.indexOf("@") > -1) {
                     p = p.substring(0, p.indexOf("@"));
                 }
-                List<Node> nodeList = element.selectNodes("//xs:element[@name='"+p+"']");
+                if (p.indexOf("(") > -1) {
+                    p = p.substring(0, p.indexOf("("));
+                }
+                List<Node> nodeList = element.selectNodes(".//xs:element[@name='"+p+"']");
                 if (nodeList == null || nodeList.size() == 0) {
                     continue;
                 }
@@ -215,7 +221,9 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
                 } else {
                     String type = element.attributeValue("type");
                     nodeList = element.selectNodes("//xs:complexType[@name='"+type+"']");
-                    element = (Element) nodeList.get(0);
+                    if (nodeList != null && nodeList.size() > 0) {
+                        element = (Element) nodeList.get(0);
+                    }
                 }
             }
             if (minOccurs == null || Integer.parseInt(minOccurs) > 0) {