Ich versuche, das folgende XML anhand eines Ruby-XSD-Schemas zu validieren. Es wird einfach nicht funktionieren, stoppt mit einer Fehlermeldung, die mir sagt
Fehler: Element 'request': Keine passende globale Deklaration für den Validierungsstamm verfügbar.
Vielleicht ist es der Namensraum? Irgendwelche Ideen?
Es ist ein kryptischer Fehler, aber wahrscheinlich liegt es daran, dass Ihr XSD fehlerhaft ist. Zum Beispiel sollten die Inhalte der Channels, hotel (sowohl die inneren und äußeren Elemente) als auch der Tags room und request xsd:element
alle in xsd:complexType
-Tags eingeschlossen sein. Außerdem ist use
nur für xsd:attribute
gültig, nicht für xsd:element
. Verwenden Sie für Elemente minOccurs und maxOccurs (obwohl beide standardmäßig auf 1 festgelegt sind, sodass sie in diesem Fall nicht unbedingt erforderlich sind). Zusätzlich enthält Ihr äußeres Hotelelement ein Raumelement, das ein Hotelelement enthalten muss, um eine Endlosschleife zu erzeugen. Außerdem benennen Sie Ihren Benutzernamen und Ihr Passwort nicht richtig. Schließlich sollte dieses innere Hotelelement wahrscheinlich Datum sein. Hier ist, was ich denke, dass Sie suchen:
Sie haben hier nur aus der Hüfte geschossen, aber haben Sie versucht, das XML :: Document, das das Schema enthält, in ein XML :: Schema zu konvertieren?
Ich weiß nicht, dass es einen Unterschied machen würde, aber es ist einen Versuch wert.
Ich habe die gleiche kryptische Fehlermeldung aus einem anderen Grund erhalten.
Die erste Zeile meiner Schemadatei hatte einen Namespace ohne Präfix:
%Vor% Beachten Sie das Attribut 'xmlns ='. Dadurch wurden alle im Schema deklarierten Elemente in den Namespace http://www.sec.gov/edgar/document/thirteenf/informationtable
platziert (sofern nicht anders mit einem Namespace-Präfix angegeben). Aber die XML-Datei, die ich zu validieren versuchte, hatte keinen übereinstimmenden Namespace ohne Präfix / Standard:
Die Elemente stimmen also nicht mit dem Schema überein, da sie sich in "verschiedenen" Namespaces befinden. Ich hoffe, das ist nützlich für andere.