Вы неправильно используете пространство имен. Xml имеет больше пространства имен, и вам нужно использовать необходимое для текущего элемента
Я добавил базовое пространство имен xmlns, и все работает =)
XDocument elements = XDocument.Parse(sPayload);
XNamespace dataSet_nc = "http://niem.gov/niem/niem-core/2.0";
XNamespace baseNs = "urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CourtPolicyResponseMessage-4.0";
IEnumerable<CodeTableUrl> urlList = elements
.Descendants(baseNs+"CourtCodelist")
.Select(r => new CodeTableUrl
{
ECFElementName = r.Element(baseNs + "ECFElementName")?.Value,
Url = r.Element(baseNs+"CourtCodelistURI")?.Element(dataSet_nc + "IdentificationID")?.Value,
EffectiveDate = r.Element(baseNs+"EffectiveDate")?.Element(dataSet_nc + "Date")?.Value,
});
foreach (var item in urlList)
{
Console.WriteLine(item.Url);
}
Вы, кошка, попробуйте dotnetfiddle