public void testXercesIncomplete() throws Exception {
   XSModel xsModel = getXSModel("testIncomplete.xml", "test.xsd");
   XSElementDeclaration elementDeclaration = xsModel.getElementDeclaration("a", "");
   XSComplexTypeDefinition typeDefinition =
       (XSComplexTypeDefinition) elementDeclaration.getTypeDefinition();
   CMBuilder cmBuilder = new CMBuilder(new CMNodeFactory());
   XSCMValidator validator = cmBuilder.getContentModel((XSComplexTypeDecl) typeDefinition, true);
   int[] ints = validator.startContentModel();
   Vector vector = validator.whatCanGoHere(ints);
   XSElementDecl o = (XSElementDecl) vector.get(0);
   assertEquals("b", o.getName());
 }
  public void testXercesForCompletion() throws Exception {
    XSModel xsModel = getXSModel("testCompletion.xml", "test.xsd");
    PsiElement element = myFixture.getFile().findElementAt(getEditor().getCaretModel().getOffset());
    XmlTag tag = PsiTreeUtil.getParentOfType(element, XmlTag.class);

    assert tag != null;
    XSElementDeclaration elementDeclaration =
        xsModel.getElementDeclaration(tag.getLocalName(), tag.getNamespace());
    XSComplexTypeDefinition typeDefinition =
        (XSComplexTypeDefinition) elementDeclaration.getTypeDefinition();
    CMBuilder cmBuilder = new CMBuilder(new CMNodeFactory());
    XSCMValidator validator = cmBuilder.getContentModel((XSComplexTypeDecl) typeDefinition, true);
    int[] ints = validator.startContentModel();
    Vector vector = validator.whatCanGoHere(ints);
    XSElementDecl o = (XSElementDecl) vector.get(0);
    assertEquals("b", o.getName());
  }