В проекте, над которым я работаю, я только что закончил писать XSD для своего XML, чтобы другие инженеры могли легче работать с XML. Наряду с этим XSD пришли пространства имен XML. В моем текущем коде синтаксического анализа я использовал что-то вроде этого:
XElement element = xmlRoot.Element(XML.ELEMENT_NAME);
С XML, являющимся классом, полным констант, который используется в программе для ввода и вывода XML. Но теперь, когда используются пространства имен, это больше не работает. Очевидное, но едва элегантное решение состоит в том, чтобы сделать так, чтобы весь код синтаксического анализа выглядел так:
XElement element = xmlRoot.Element(XML.NAMESPACE + XML.ELEMENT_NAME);
Думая об этом больше, было бы гораздо лучше уйти и определить метод расширения, который нужно добавить в это пространство имен и вернуть XElement. Эта идея заставит код выглядеть примерно так:
XElement element = xmlRoot.GetMyElement(XML.ELEMENT_NAME);
Эти идеи - то, что я до сих пор придумывал, чтобы иметь дело с проблемой пространства имен.
По сути, мой вопрос здесь такой:
Есть ли лучший способ синтаксического анализа элементов XE с известным постоянным пространством имен? Если так, что это?