Har lavet et lille program til redigering af konfigurations filer. Nu vil jeg så gerne checke om der i Xml Schema'et findes en enum til en bestem værdi og lave en combobox som brugeren kan vælge fra, hvis han gerne vil redigere i xml filen.
Hvordan kommer jeg ind i xsd og henter en enum ud?
Har selv fundet ud af det. Har lavet en lille funktion til et hvis nogen skulle være interesseret. Man skal huske at validere ens xml document før dette virker.
private void CreateDropDown(IXmlSchemaInfo info) { // if xml document is valid if (info.Validity != XmlSchemaValidity.NotKnown) { // get Schema type name string type = info.SchemaType.Name;
// if the elemet has any type if (type != null) { //Get Schema type XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)info.SchemaType; // get restriction from schema type XmlSchemaSimpleTypeRestriction rest = (XmlSchemaSimpleTypeRestriction)simpleType.Content; // get facets XmlSchemaObjectCollection coll = rest.Facets;
// test to see if the collection is an enumeration XmlSchemaEnumerationFacet facet = coll[0] as XmlSchemaEnumerationFacet; if (facet != null) { foreach (XmlSchemaFacet o in coll) { // create list } } } } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.