| 

.NET C# Java Javascript Exception

0
Wie ist es mir möglich aus einem xsd Schema die Attribute von einem Objekt auszulesen.

Folgender xsd Abschnitt:

<xs:complexType name="Dokument">
<xs:complexContent mixed="false">
<xs:extension base="q1:EntityBase" xmlns:q1="http://*****.**/Services/Types">
<xs:sequence>
<xs:element minOccurs="0" name="AgenturId" type="ser:guid" />
<xs:element minOccurs="0" name="ArchivId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ArchivPfad" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ArchivTyp" nillable="true" type="tns:ArchivTyp" />
<xs:element minOccurs="0" name="Betreff" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="CustomProperties" nillable="true" type="q2:ArrayOfKeyValueOfstringanyType" xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:element minOccurs="0" name="DokumentZuordnungen" nillable="true" type="tns:ArrayOfDokumentZuordnung" />
<xs:element minOccurs="0" name="Erzeugt" type="xs:dateTime" />
<xs:element minOccurs="0" name="File" nillable="true" type="xs:base64Binary" />
<xs:element minOccurs="0" name="Funktion" nillable="true" type="tns:Funktion" />
<xs:element minOccurs="0" name="Groesse" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="Hash" nillable="true" type="xs:base64Binary" />
<xs:element minOccurs="0" name="HashAlgorithmus" nillable="true" type="tns:HashAlgorithmus" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Kategorie" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="MimeTyp" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Tool" nillable="true" type="tns:Tool" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>


Aus diesem Schema möchte ich den Namen und den Typen jeden Elements ermitteln.
Ich hab schon etwas mit linq "gespielt" jedoch ohne Erfolg.
Das Schema liegt mir als Datei vor, welches ich mir aber auch in ein XElement parsen kann.
05.04.2010
Mario Priebe 6,0k 3 9
1 Antwort
1
Wenn Du alle 'automatischen' Validierungen die System.Xml.Schema.XmlSchema bietet auslassen möchtest, dann würde ich zu einem Regulären Ausdruck raten:
xs:element.*(name="(.*)".*type="(.*)"|type="(.*)".*name="(.*)")

Der lässt sich sicher noch verfeinern mit Namen und so, sodass die Auwertung etwas 'einfacher' wird ;)

Das geht aber natürlich nur, wenn Du mit Texten als Ergebnis was anfangen kannst!
Ausgewertete Typen bekommst Du so nicht...und ich wüsste leider nicht wie das gehen sollte.
08.04.2010
DaSpors 4,2k 2 8
Hmm, das wäre erstmal ein Ansatz siche jede Zeile anzusehen, vielleicht gibt es aber einen 'saubereren' Weg
Mario Priebe 08.04.2010

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH