När jag laddar in datan via XmlDocument eller XmlReader återfinns inget readorder attribut. oavsett om jag validerar dokumentet eller inte.
förslag?,Har jag missuppfattat något eller är detta helt enkelt utanför XmlDocuments möjligheter?
Värdet borde läsas in rätt om du använder XmlValidatingReader, däremot kommer det inte ut rätt, eftersom dokumentet kommer ihåg att värdet bara var ett defaultvärde.
Du kan lösa det genom att subklassa XmlValidatingReader.
public class XmlValidatingReaderNShit : XmlValidatingReader
{
public XmlValidatingReaderNShit (XmlReader reader) : base(reader) { }
public override bool IsDefault { get { return false; } }
}
Tack så mycket emission, men XmlValidatingReader är ju deprecated....
ajja, får väll använda den ändå då
tillägg: fungerade ypperligt!, ska kolla om XmlReadern har motsvarande möjligheter, bättre att subclassa den isåfall.
tillägg2: råkade såklart glömma att jag arbetade i .Net Compact Framework, satt och testade i en consolapplikation för snabbhetens skull, och upptäckte sedan när jag bestämt mig för xmlvalidatingreader att den inte finns med i compact framework... fuuudge
Jag måste alltså fixa detta med XmlReadern på något sätt..
Ha, se där, jag har visst inte använt XmlValidatingReader på länge. Hade ingen aning om att den var utmobbad. Jag ska se om jag kan hitta på någon lösning.
Löste det hela genom att ärva från XmlReader, implementera alla metoder som krävdes.
Vidarebefordrar bara metodanropen till den XmlReader jag tar som parameter i konstruktorn. och så gör jag precis som du gjorde med ValidatingXmlReader med den kritiska IsDefault, dvs returnerar alltid false.
sedan kan jag bara köra en
XmlDocument doc = new XmlDocument(minNyaReader);
ex:
public override bool IsEmptyElement
{
get { return _Reader.IsEmptyElement; }
}
public override bool IsDefault
{
get {
return false;
}
}
253 ms totalt · 4 externa anrop · v20260731065814-full.14655e19