Если вы хотите написать полностью соответствующий (даже не проверяющий) синтаксический анализатор XML, вы должны прочитать спецификацию W3C (http://www.w3.org/TR/REC-xml/).). Вам потребуется иметь дело с внутренними и внешними подмножествами DTD, объектами параметров и общими объектами. Это будет серьезной задачей, даже с ANTLR. Вам нужно будет уметь разрешать URL-адреса и работать с namespaceURI. И многое другое.
Я подозреваю, что вы хотите проанализировать только подмножество (хотя я не думаю, что было бы хорошей идеей написать несовместимые парсеры для стандартов). В этом случае первым делом нужно написать EBNF для вашего подмножества. Тогда это должно быть довольно просто: -)
РЕДАКТИРОВАТЬ Чтобы было очень ясно: все, что не соответствует полной спецификации, НЕ является XML. Вы говорите о создании своей «собственной грамматики» для XML, но для XML уже существует определенная грамматика, которую нельзя изменить. Если вы хотите создать свой собственный синтаксис, «похожий на XML», вы можете это сделать, но любой, кто думает, что это действительно XML, будет разочарован, поскольку существует множество XML-конструкций, которые вы не будете поддерживать (или будете поддерживать по-другому).