Wie kann ich ein XSD-Schema in einer JSP-Seite verwenden?

ebruss17

Bekanntes Mitglied
Hallo Leute,

ich habe eine XML-Spalte in einer datenbank abgespeichert und habe dafür eine XML-Schema definiert. Nun möchte ich diese auf einer JSP-Seite ausgeben. Wie kann ich das denn der JSP-Seite bekanntmachen? Gibt es da bestimmte Schlüsselwörter? Ich bin ziemlich neu in JSP. Nochmals vielen Dank....
 

michaels

Mitglied
Willst du das Schema ausgeben oder den Inhalt der Spalte (also das XML)?
Das Schema ist doch nur ein (oder mehrere) XSD Files. Also einfach zum Download anbieten!?
Das XML würde man doch nicht so ausgeben!? Normalerweise würde man mit dem Schema die Java-Klassen erzeugen und den XML-Inhalt ordentlich aus der Website anzeigen?
Vielleicht solltest du etwas präzisieren, was du eigentlich machen möchtest ;-)
 

ebruss17

Bekanntes Mitglied
also ich habe in der XML-Spalte XML-Sachen hinterlegt sieht so aus:

Java:
<system xmlns:xi="http://www.w3.org/2001/XInclude" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:noNamespaceSchemaLocation="SystemConfiguration.xsd" 
		xsi:schemaLocation="http://www.w3.org/XML/1998/namespace ../xinclude/xml.xsd [url=http://www.w3.org/2001/XInclude]XInclude[/url] 		../xinclude/xinclude.xsd ">
<components>
	<component>
		<name>FileNet</name>
		<version>5.2.1.0</version>
		<buildNumber>dap521.000.024</buildNumber>
	</component>
	<component>
		<name>CSS</name>
		<version>IQQD0055E The search server is stopped. It must be started for the tool to run.</version>
	</component>
	<component>
		<name>CSS</name>
		<version>2.1.0.0-1.1-4147.</version>
		<fixpack>FP5</fixpack>
	</component>
	<component>
		<name>TDS</name>
		<version>6.3.1.0</version>
	</component>
	<component>
		<name>ICN</name>
		<version>2.0.2</version>
	</component>
	<component>
		<name>CMIS</name>
		<version>IBM Content Management Interoperability Services for FileNet Content Manager (IBM CMIS) Version 2.0.2.3</version>
	</component>
	<component>
		<name>DB2</name>
		<version>DB2 v10.1.0.2</version>
	</component>
	<component>
		<name>WAS</name>
		<version>8.5.5.1</version>
	</component>
</components>
</system>

sooo dafür habe ich auch ein XSD-Schema definiert, das "SystemConfiguration.xsd" heißt:

Java:
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="system">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs="0" ref="config"/>
        <xsd:element ref="components"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="config">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" ref="parameter"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="components">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" ref="component"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="component">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="name"/>
        <xsd:element ref="version"/>
        <xsd:element minOccurs="0" ref="fixpack"/>
		<xsd:element minOccurs="0" ref="buildNumber"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="parameter">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="name"/>
        <xsd:element ref="version"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="name" type="xsd:string"/>
  <xsd:element name="version" type="xsd:string"/>
  <xsd:element name="fixpack" type="xsd:string"/>
  <xsd:element name="buildNumber" type="xsd:string"/>
</xsd:schema>

Ich möchte jetzt den Inhalt der XML-Spalte mit ihrer Struktur auf der JSP-Seite anzeigen lassen. Kann ich den xsd-File in den JSP-File einbinden? Oder wie macht man das genau? Stimmt eigentlich der header, so wie ich es habe? Ich wäre für jede Hilfe sehr dankbar ...
 

ebruss17

Bekanntes Mitglied
also Stand jetzt sollen die XML-Sachen, die in der Spalte "Configuration" hinterlegt sind, als eine HTML-Tabelle ausgegeben werden! Ich habe jetzt mal versucht, das innerhalb der JSP-Seite folgendermaßen zu lösen:

Java:
<table border="1">
                <%

                    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
                    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
                    Document doc = null;
                    doc = docBuilder.parse(resultSet.getString("Configuration"));
                    doc.getDocumentElement().normalize();

                    Node node = doc.getDocumentElement();

                    Node componentsNode = null;

                    for (int i = 0; i < node.getChildNodes().getLength(); i++) {
                        if (node.getChildNodes().item(i).getNodeName().equalsIgnoreCase("components")) {
                            componentsNode = node.getChildNodes().item(i);
                        }
                    }

                    for (int i = 0; i < componentsNode.getChildNodes().getLength(); i++) {
                        Node childNode = componentsNode.getChildNodes().item(i);
                        if (childNode.getNodeName().equalsIgnoreCase("component")) {


                %>
                <tr>
                    <%  if (childNode.hasChildNodes()) {
                            for (int k = 0; k < childNode.getChildNodes().getLength(); k++) {
                                Node cchildNode = componentsNode.getChildNodes().item(k);
                    %>
                    <td><%cchildNode.getNodeName();%></td>
                    <%
                        }

                    %>
                </tr>
                <%   }}
                    }

                %>
            </table>

Wenn ich das jedoch ausführe, bekomme ich den folgenden Error: "Error 500: com.ibm.db2.jcc.am.SqlException: [jcc][10150][10300][4.14.113] Invalid parameter: Unknown column name MGMT.System.Configuration. ERRORCODE=-4460, SQLSTATE=null "

Kann mir jemand bitte behilflich sein? Sitze schon den ganzen Tag an diesem Problem ;/
 

michaels

Mitglied
Hallo,
ich vermute mal der Fehler passiert in der Zeile
doc = docBuilder.parse(resultSet.getString("Configuration"));
Die Spalte scheint es im ResultSet/Datenbank nicht zu geben.
Ich würde dir empfehlen, den Code mal etwas zu verschlanken.
Baue eine Methode, die nur den XML-Schnipsel aus der Datenbank holt. Das Ergebnis kannst du dir dann mal ausgeben lassen und dann damit weiterarbeiten. Im Moment versuchst du alles in einem Rutsch...das macht den Code nicht gerade übersichtlich und, wie jetzt, im Fehlerfall bzw wenn man es mal nachvollziehen möchte, schwierig.
 

ebruss17

Bekanntes Mitglied
ich habe das Ganze jetzt mal so umgesetzt:

Java:
<table border="1">
                <%

        while (resultSet.next()){
                    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
                    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();

                    Document doc = docBuilder.parse(resultSet.getSQLXML("Configuration").getBinaryStream());
                    doc.getDocumentElement().normalize();

                    Node node = doc.getDocumentElement();

                    Node componentsNode = null;


                    for (int i = 0; i < node.getChildNodes().getLength(); i++) {
                        if (node.getChildNodes().item(i).getNodeName().equalsIgnoreCase("components")) {
                            componentsNode = node.getChildNodes().item(i);
                        }
                    }

                    for (int i = 0; i < componentsNode.getChildNodes().getLength(); i++) {
                        Node childNode = componentsNode.getChildNodes().item(i);
                        if (childNode.getNodeName().equalsIgnoreCase("component")) {


                %>
                <tr>
                    <%  if (childNode.hasChildNodes()) {
                            for (int k = 0; k < childNode.getChildNodes().getLength(); k++) {
                                Node cchildNode = componentsNode.getChildNodes().item(k);
                    %>
                    <td><%=cchildNode.getTextContent()%></td>
                    <%

}
                    %>
                </tr>
                <%   }}}
                    }

                %>
            </table>

Aber es werden nicht alle Werte ausgegeben und die Werte befinden sich an der falschen Stelle!

die richtige Ausgabe, aber es sollte noch eine Spalte "Fixpack" geben nach der Spalte "Version":

XML_Ausgabe_in_Tabellenform.jpg

Meine und die falsche Ausgabe sieht folgendermaßen aus:

Page Image.jpg

Wo kann der Fehler im Code denn liegen??
 

Harry Kane

Top Contributor
Auf den ersten und zweiten Blick sieht es so aus, als sollte die von dir gepostete XML Datei mit dem von dir geposteten Code das von dir erwartete Ergebnis liefern. Ich persönlich finde allerdings dieses plain JSP grauenhaft zu lesen. Vielleicht habe ich deshalb einen Fehler übersehen.
Aber ehrlich gesagt, bezweifle ich, daß du das gepostete XML aus der Datenbank holst. Das von dir gepostete XML Fragment dürfte gar nicht wohlgeformt sein, weil der Wert des Attributes xsi:schemaLocation spitze Klammern und Anführungszeichen enthält, die escapt werden müssen.
Lass dir mal vor der Tabelle den Inhalt des XML in der html Seite ausgeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B XML Schema Validierung des Zahlenbereichs XML & JSON 3
P Eclipse Rinzo - Schema muss mit DOCTYPE "root" übereinstimmen XML & JSON 0
K XML Schema list unique value restriction XML & JSON 0
F.S.WhiTeY JAXB: Schema nicht "erben" XML & JSON 2
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
G Suche guten freien XML Schema (XSD) Editor XML & JSON 7
X XML Schema Beziehungen validieren XML & JSON 1
F XML-Schema mapping XML & JSON 6
D eine Schema für ein andere Schema XML XML & JSON 14
P Qualifizierung und XML- Schema XML & JSON 2
G mit EMF gegen XML-Schema validieren XML & JSON 7
V JAXB schema 2 java XML & JSON 3
M XML Schema & Attribut Bedingung XML & JSON 2
B Einschränken der Eingabe bei XML SCHEMA XML & JSON 2
H Schema-Validierung mit JDOM XML & JSON 2
S finde den Schema-Compiler "xjc" nicht XML & JSON 4
P XSD Schema: Konstanten mit "fixed" erzeugen geht nicht ??? XML & JSON 3
G Eindeutige Kennnummer Schema XML & JSON 3
C Validierung klappt nicht mit Schema XML & JSON 2
S XML-Schema einlesen um parsen zu erleichtern? XML & JSON 2
T Schema --> GUI (User) --> XML XML & JSON 5
T Klassen aus XML-Schema generieren und füllen XML & JSON 10
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
J XML - schreiben und einlesen (Schema) XML & JSON 14
A xml-schema aus wsdl auslagern in eine eigene xsd-Datei XML & JSON 3
H xml - Schema : warum passen die nicht zueinander XML & JSON 2
J XML-Schema: Beliebige Unterelemente zulassen XML & JSON 4
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
J JDOM mit XML-Schema XML & JSON 8
P Datentyp in Schema definieren XML & JSON 2
S XML Schema XML & JSON 7
N Externes Schema inkludieren XML & JSON 7
A XML Dokument aus einem Schema ableiten/generieren? XML & JSON 6
Z beispiel für valides Xml-Dokument durch XML-Schema XML & JSON 5
Z Frage zu XML Schema XML & JSON 3
T XML mit Java gegen Schema validieren XML & JSON 6
W Erzeugen einer openapi spec via swagger XML & JSON 1
W Erzeugen einer Handlerklasse zum Abfangen von SOAP-Requests XML & JSON 13
D Innerhalb einer Property auf eine andere verlinken? XML & JSON 3
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
M Layout + Inhalt einer JTable speichern XML & JSON 30
J Welche Gründe führen zu einer endlos tiefen XML? XML & JSON 4
T Pfad in einer Variablen speichern XML & JSON 1
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
R XSD in einer choice mehrmals das selbe element möglich XML & JSON 5
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
F Parsen von Daten aus einer Homepage XML & JSON 6
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
B SAX-Parser - Dokumente einlesen und in einer Map ablegen XML & JSON 2
B 2 Attribute in einer xsl XML & JSON 2
T Inhalt einer .xml Datei auf Javaoberfläche wiedergeben XML & JSON 4
T Schreiben einer XML XML & JSON 8
B XML auf Basis einer DTD erstellen XML & JSON 2
hdi Probleme beim Erstellen einer XML XML & JSON 7
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
T XPath Problem: finden einer Node nach Attributswert XML & JSON 2
sylo Mehrere XSDs und mehrere Namensräume in einer XML unterbringen? XML & JSON 2
Nicer Bestimmten Wert aus einer XML Auslesen XML & JSON 34
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
J xmlencoder Zustände einer Bean schreiben XML & JSON 3
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
S Probleme beim erstellen einer Jar XML & JSON 12
J Problem mit compile einer XSD XML & JSON 3
S Einlesen einer xml Datei XML & JSON 4
F hilfe bei einer aufgabe XML & JSON 3
D Anzahl der Knoten in einer XML XML & JSON 6
R Parsen einer XML ohne Validierung XML & JSON 2
D XML Datei innerhalb einer JAR Datei parsen XML & JSON 2
M Xerces -Parsen mit einer externen Schemadatei geht nicht XML & JSON 2
cybermat Ergebnis einer XSLT-Tansformation als Rückgabewert erhalten XML & JSON 4
J Fehler beim laden einer .xml XML & JSON 3
ven000m Übungsaufgabe: Valide und gültige XML Datei zu einer DTD XML & JSON 7
A Auslesen einer XML Datei XML & JSON 58
P OutOfMemoryError beim Einlesen einer XML-Datei XML & JSON 7
P Knoten-Attribute einer xsd-Datei in einem JTree auslesen XML & JSON 18
T Einfach nur die Elemente einer XML Datei auslesen :( XML & JSON 10
Z Erzeugung einer Referenz von Knoten in JTree auf DOMTree XML & JSON 3
A Element an einer bestimmten Stelle einfügen (nicht am Ende) XML & JSON 4
E Wie kann ich den XML-Inhalt mit dem Klicken auf den Hyperlink (a-Tag) auf der nächsten Seite ansehen XML & JSON 62
P PHP-Seite anfragen, aber nicht darstellen XML & JSON 5
P HTML Seite Parsen, und bestimmten Text extrahieren XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben