private static IDocument createDocumentWithSchema(
      final DocumentType documentType, final String rootElementName) {
    final String defaultNamespaceUri = documentType.getNamespaceName();
    final Document document = new Document(new QualifiedName(defaultNamespaceUri, rootElementName));

    final IElement root = document.getRootElement();
    root.declareDefaultNamespace(defaultNamespaceUri);

    final WTPVEXValidator validator =
        new WTPVEXValidator(new DocumentContentModel(null, null, null, root));
    int namespaceIndex = 1;
    for (final String namespaceUri : validator.getRequiredNamespaces()) {
      if (!defaultNamespaceUri.equals(namespaceUri)) {
        root.declareNamespace("ns" + namespaceIndex++, namespaceUri);
      }
    }

    return document;
  }