Gab : XML mit VBScript validieren

Hallo,

ich validiere eine XML-Datei auf ein Schema mit folgendem Code:
 Dim oError As IXMLDOMParseError
    Set oError = OrgDatei.Validate
    If oError.errorCode <> 0 Then
        strout = strout + vbTab _
            + "XMLDoc is not valid because " _
            + vbNewLine + oError.reason + vbNewLine
    End If

Dabei wird als Fehler immer
-1072897501
Fehler bei der Überprüfung, da das Dokument nicht genau einen Stammknoten enthält.

Wie kann das kommen?
Prüfe ich das Dokument z.B. mit XMLSpy, bekomme ich diese Fehlermeldung nicht.

Danke
Gab

  1. Fehler bei der Überprüfung, da das Dokument nicht genau einen Stammknoten enthält.
    Wie kann das kommen?

    Z.B. bei so einer Struktur:

    <Name>Meier</Name>  
    <Vorname>Peter</Vorname>
    

    Richtig wäre:

    <person>  
      <Name>Meier</Name>  
      <Vorname>Peter</Vorname>  
    </person>
    

    Siehe http://office.microsoft.com/de-de/infopath/HP010967281031.aspx (dort unter "XML-Regeln"), das ist - soweit ich weiß - allgemeingültige XML-Regel.

    Prüfe ich das Dokument z.B. mit XMLSpy, bekomme ich diese Fehlermeldung nicht.

    Kommt drauf an, was du prüfst: Die Wohlgeformtheit oder die Gültigkeit. Mehr kann man mangels Kenntnis deines XML und der DTD nicht sagen.

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. Vielen Dank. Das eigenartige ist nur, die Struktur hat nur einen Stammknoten:
       <Eintrag>
        - <Zeitstempel>
            <Zeit>9:06:05</Zeit>
            <Datum>2007-08-7</Datum>
          </Zeitstempel>
        - <ID>
           <HauptID>282</HauptID>
           <SubID>1</SubID>
          </ID>
       </Eintrag>

      Das Schema sieht auch nur dieses vor. Wie kommt es also dann zu der Fehlermeldung?

      Grüße
      Gab

      1. Vielen Dank. Das eigenartige ist nur, die Struktur hat nur einen Stammknoten:

        Haben wir uns evtl. missverstanden? Das *Dokument* darf nur einen Stammknoten haben. Hättest du also mehrere Eintrag-Elemente, würde diese Regel verletzt werden. Ansonsten könnte der Fehler auch in der DTD liegen. Wie ist "Eintrag" dort definiert?

        Siechfred

        --
        Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
        1. Das Schema sieht folgendermaßen aus:
          <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
           <xs:element name="Eintrag">
            xs:complexType
             xs:sequence
              <xs:element name="Zeitstempel">
               xs:complexType
                xs:sequence
                 <xs:element name="Zeit" type="xs:time"/>
                 <xs:element name="Datum" type="xs:date"/>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
              <xs:element name="ID">
               xs:complexType
                xs:sequence
                 <xs:element name="HauptID"/>
                 <xs:element name="SubID"/>
                </xs:sequence>
               </xs:complexType>
              </xs:element>
             </xs:sequence>
            </xs:complexType>
           </xs:element>
          </xs:schema>

          Es darf also nur einen Stammknoten haben!

          Danke
          Gab

          1. Das Schema sieht folgendermaßen aus:
            [...]
            Es darf also nur einen Stammknoten haben!

            Das habe ich schon verstanden. Trotzdem scheint was nicht zu stimmen, allerdings ist XMLSchema nicht unbedingt meine Baustelle. Aber was sagt eigentlich http://tools.decisionsoft.com/schemaValidate/?

            Siechfred

            --
            Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
            1. Das ist das Ergebnis:

              XML Schema Validator
              Well Formed: VALID
              Schema Validation: VALID

              Liegt es also doch an der Programmierung?

              Danke
              Gab

              1. Liegt es also doch an der Programmierung?

                Könnte sein, je nachdem, welche Version von MSXML du verwendest. Eine Kompatibilitätsübersicht gibt's hier:
                http://msdn2.microsoft.com/en-us/library/ms757825.aspx

                Vielleicht hilft dir die weiter.

                Siechfred

                --
                Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.