Как установить xmlns в качестве первого атрибута xml
Я был очень озадачен тем, как установить xmlns в качестве первого атрибута, я использовал приведенный ниже код для создания файла XML
XNamespace ns = "http://www.openarchives.org/OAI/2.0/";
XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
XDocument xDoc = new XDocument(
new XDeclaration("1.0", "UTF-8", "no"),
new XElement(ns + "gpx",
new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
new XAttribute(xsiNs + "schemaLocation",
"http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"),
));
однако, результат всегда
<?xml version="1.0" encoding="UTF-8"?>
<gpx
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://
www.openarchives.org/OAI/2.0/OAI-PMH.xsd"
xmlns="http://www.openarchives.org/OAI/2.0/">
Я имею в виду Iwwant xmlns="http://www.openarchives.org/OAI/2.0/" на первом. поэтому, когда я вызываю xElement.FirstAttribute, это должен быть xmlns, а не xmlns:xsi, вы понимаете?
1 ответ
Установите его вручную, добавив в качестве первого атрибута в элемент:
new XElement(ns + "gpx",
new XAttribute("xmlns", ns.NamespaceName), // add it here
new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
new XAttribute(xsiNs + "schemaLocation",
"http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"),
)