Механизмы преобразования его в xml достаточно просты, либо вы пишете общий синтаксический анализатор, либо разбираете его в строке, а затем конвертируете (что легко, но означает, что вам нужно будет его проверить) с устройством для чтения документов, или вы создаете xml по мере продвижения (более сложное, но сокращающее проверку). Проблемы из вашего примера выше, определение того, что вы разрешите на вашем языке:
Lorem\B ipsum\I dolor\B sit \COLOR=RGB(255,0,0)amet\COLOR
Это должно выйти в
Lorem<b> ipsum<i> dolor</b> sit<color>=rgb(255,0,0)amet</color>
или
Lorem<b> impsum</b><i> dolor</i><b> sit</b><color>RGB(255,0,0)amet</color><color>
Ни кажется particulrly что вы бы хотели, первое недействительно, второе означает, что вы можете просто сделать одно слово смелым (и никогда не жирным и курсивом).
Кажется, что вы возвращаетесь к sgml, где вам нужен дополнительный файл, чтобы узнать, что разрешено.
Но самый простой способ для вас, чтобы проверить это было бы просто сделать парсер и загрузить результаты в StringBuilder, а затем, когда вы закончите вы просто должны сделать что-то вроде
StringBuilder stringbuilder = new StringBuilder();
...
// parse the input string into the stringbuilder
...
String xml = stringbuilder.toString();
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
даст вам ответ в dom, если вы этого хотели (или выбросили исключение, если вы использовали эту строку выше)
Возможно, вы могли бы добавить то, что должен выглядеть xml –