Læs Annotations i XSD skema (.NET)
HejHar fået den tosset ide at gemme nogle ekstra informationer i annotations i XSD som jeg skal bruge til at bestemme en udskrift type til udskrift af noget XML. Det tog mig lidt tid at finde frem til hvordan man hentet værdierne ud af XSD schemaet uden at bruge en XMLreader, men ved at indlæse schema'et. Jeg har valgt at putte min information ind som value i <xs:appinfo>
<xs:element name="DK">
<xs:annotation>
<xs:appinfo>Print:A4,NumberOFCopies:8</xs:appinfo>
</xs:annotation>
....
Syntes bare det er sådan lidt klodset, den måde jeg læser det på:
// stepping through global elements
foreach (XmlSchemaElement el in schema.Elements.Values)
{
XmlSchemaAnnotation an = el.Annotation;
XmlSchemaAppInfo xmlappInfo = an.Items[0] as XmlSchemaAppInfo;
XmlNode[] nodes = xmlappInfo.Markup;
XmlNode node = nodes[0];
Console.WriteLine(node.Value);
}
}
Er der ikke en mere elegant måde at trække annotationen værdien ud for et element?
Havde først gemt informationerne i <xs:documentation> som value, men jeg var ikke i stand til at hive værdien ud...
Det virker som om man ligesom først kan tilgå values hvis man arbejder på en node... tænkte bare at der måtte være noget smartere...
Drømmer om en annotation.getValue() funktion eller noget i den stil.