eine Schema für ein andere Schema XML

DungNghe

Mitglied
Hallo Leute,
Ich bin neu hier und möchte eine Frage stellen, ob jemandem mir helfen kann.
Meine Fall ist so, ich habe eine List von mehre XML Schemas in eine XML Datein, und möchte für diese XML ein Schema definieren. wie geht das?
Hier ist mein XML Datein
Java:
<cep:TestRequest
	xmlns="http://www.congdong.de"
	xmlns:cep="http://www.congdong.de"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="www.congdong.de file://EventTypeRepository.xsd"
	>
	
	<eventTest>
		<eventTypeId>TestAdME</eventTypeId>
		<pattern></pattern>
		<xsd:schema>
			<xsd:element name="TestADME">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Ready" type="xsd:boolean"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
	</eventTest>
	<eventTest>
		<eventTypeId>TestCMPD</eventTypeId>
		<pattern></pattern>
	       <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:element name="TestCMPD">
				<xsd:complexType>
					<xsd:sequence>
					<xsd:element name="CMPD" type="xsd:string"></xsd:element>
		    			<xsd:element name="Partner" type="xsd:string"></xsd:element>
		    			<xsd:element name="Result" type="xsd:string"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>

	</eventTest>
	<eventTest>
		<eventTypeId>TestAdME</eventTypeId>
		<pattern></pattern>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:element name="ADME">
				<xsd:complexType>
				    <xsd:sequence>
					<xsd:element name="DrugReady" type="xsd:string"></xsd:element>
				    </xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
	</eventTest>

Und hier ist mein erst Versucht mit Schema:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="www.congdong.de"
	xmlns="www.congdong.de"
	xmlns:cep="www.congdong.de"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	jaxb:version="2.0"
	elementFormDefault="qualified" attributeFormDefault="qualified">

	<xsd:complexType name="EventTest" >
		<xsd:sequence>
			<xsd:element name="eventTypeId" type="cep:EventTypeId">
			</xsd:element>
			<xsd:element name="pattern" type="xsd:string"></xsd:element>
			<xsd:element name="schema" type="xsd:anyType" >
	                    <xsd:annotation>
	                    	<xsd:appinfo><jaxb:dom/></xsd:appinfo>
	                    </xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

Hast jemand Idee mir zu helfen, Node "xsd" in XML Datein zu definieren.
Danke schön
 

Wildcard

Top Contributor
Du hast TestRequest nicht definiert, ausserdem kein Element für eventTest. Warum anyType statt xsd:schema? Warum überhaupt ein ganzes Schema in einem eventTest und nicht eine TypeDefinition oder Element Declaration?
 

DungNghe

Mitglied
@Wildcard: danke für schnell Antwort:
Du hast TestRequest nicht definiert, ausserdem kein Element für eventTest
-> sorry, ich hab vergessen wenn koppieren (copy/paste :). Hier ist mein richtig schema:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="www.congdong.de"
    xmlns="www.congdong.de"
    xmlns:cep="www.congdong.de"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    jaxb:version="2.0"
    elementFormDefault="unqualified" attributeFormDefault="unqualified">

     <xsd:element name="TestRequest">
		<xsd:complexType>
			<xsd:sequence maxOccurs="unbounded" minOccurs="1">
				<xsd:element name="eventTest" type="cep:EventTest"></xsd:element>
			</xsd:sequence>
		</xsd:complexType>
		<xsd:key name="eventTypeIdMustBeUnique">
			<xsd:selector xpath="cep:eventTest" />
			<xsd:field xpath="cep:eventTypeId" />
		</xsd:key>
	</xsd:element>
    <xsd:complexType name="EventTest" >
        <xsd:sequence>
            <xsd:element name="eventTypeId" type="cep:EventTypeId">
            </xsd:element>
            <xsd:element name="pattern" type="xsd:string"></xsd:element>
            <xsd:element name="schema" type="xsd:anyType" >
                        <xsd:annotation>
                            <xsd:appinfo><jaxb:dom/></xsd:appinfo>
                        </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

Warum anyType statt xsd:schema?
-> Ich verbinde hier eine jaxb dom zu interpretieren ganz "xsd:schema" Node in XML file deswegen benutze ich type:anyType. (gibt es aber auch kein type:schema für eine element zu definieren oder? )

Warum überhaupt ein ganzes Schema in einem eventTest und nicht eine TypeDefinition oder Element Declaration?
-> Ich programiere mit Event processing, ich muss eine List von Event mit ein XML darstellen, in jede
Event wird ein EventTypeId, pattern und ein schema dargestellt. Und für die selbst Event List XML Datei brauche ich auch ein schema zu definieren. das ist mein Problem. Hast du Idee für eine Schema zu definieren ein andere Schema?
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
Ich habe etwas Schwierigkeiten dein Deutsch zu verstehen. Fällt es dir in Englisch vielleicht leichter?
-> Ich verbinde hier eine jaxb dom zu interpretieren ganz "xsd:schema" Node in XML file deswegen benutze ich type:anyType. (gibt es aber auch kein type:schema für eine element zu definieren oder? )
Du kannst den Type xsd:schema direkt verwenden. Dann ist klar das dort ein Schema hin muss und nicht 'irgendetwas'
 

DungNghe

Mitglied
I use a jaxb-Dom File to define the Content for the element "schema" so i use "type:anyType. I have tried to used "type:schema" like you say but there is an error (from eclipse):
Java:
src-resolve.4.2: Error resolving component 'xsd:schema'. It was detected that 'xsd:schema' is in namespace 
 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from 
 schema document 'file:///D:/Work/workspacenew/.../EventType.xsd'. If this is the incorrect namespace, perhaps the prefix of 'xsd:schema' 
 needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 
 'file:///D:/Work/workspacenew/.../
 EventType.xsd'.
 

Wildcard

Top Contributor
First you need to import the XSD Namespace in order to reference Elements from the Schema for Schemas.
Second, xsd:schema is not a Type, but an Element Declaration and hence you need an Element Reference:
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="www.congdong.de" xmlns:cep="www.congdong.de" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" jaxb:version="2.0" targetNamespace="www.congdong.de">
<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>
<xsd:element name="TestRequest">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="1">
<xsd:element name="eventTest" type="cep:EventTest"/>
</xsd:sequence>
</xsd:complexType>
<xsd:key name="eventTypeIdMustBeUnique">
<xsd:selector xpath="cep:eventTest"/>
<xsd:field xpath="cep:eventTypeId"/>
</xsd:key>
</xsd:element>
<xsd:complexType name="EventTest">
<xsd:sequence>
<xsd:element name="eventTypeId" type="cep:EventTypeId">
</xsd:element>
<xsd:element name="pattern" type="xsd:string"/>
<xsd:element ref="xsd:schema">
<xsd:annotation>
<xsd:appinfo>
<jaxb:dom/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>

</xsd:schema>[/XML]
 

DungNghe

Mitglied
@Wildcard: thanks for your answer, i have tried to use element references like you advice but can not resolve. i have import namespace "namespace="http://www.w3.org/2001/XMLSchema"" but eclipse don´t know ref="xsd:schema.
Java:
src-resolve: Cannot resolve the name 'xsd:schema' to a(n) 'element declaration' component.
I think may be there is a namespace conflict (both schema in XML file and Schema file use xsd prefix).
I have tried to change the namespace from XML file like that
for the EventTypeList.xml File
Java:
<cep:TestRequest
    xmlns="http://www.congdong.de"
    xmlns:cep="http://www.congdong.de"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="www.congdong.de file://EventTypeRepository.xsd"
    >
    
    <eventTest>
        <eventTypeId>TestAdME</eventTypeId>
        <pattern></pattern>
        <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema>
            <xs:element name="TestADME">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Ready" type="xs:boolean"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </eventTest>
    <eventTest>
        <eventTypeId>TestCMPD</eventTypeId>
        <pattern></pattern>
           <xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xs:element name="TestCMPD">
                <xs:complexType>
                    <xs:sequence>
                    <xs:element name="CMPD" type="xs:string"></xs:element>
                        <xs:element name="Partner" type="xs:string"></xs:element>
                        <xs:element name="Result" type="xs:string"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
 
    </eventTest>
    <eventTest>
        <eventTypeId>TestAdME</eventTypeId>
        <pattern></pattern>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:element name="ADME">
                <xs:complexType>
                    <xs:sequence>
                    <xs:element name="DrugReady" type="xs:string"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </eventTest>
and the Schema is:
Java:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="www.congdong.de" xmlns:cep="www.congdong.de" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" jaxb:version="2.0" targetNamespace="www.congdong.de">
<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>  
     <xsd:element name="TestRequest">
        <xsd:complexType>
            <xsd:sequence maxOccurs="unbounded" minOccurs="1">
                <xsd:element name="eventTest" type="cep:EventTest"/>
            </xsd:sequence>
        </xsd:complexType>
        <xsd:key name="eventTypeIdMustBeUnique">
            <xsd:selector xpath="cep:eventTest"/>
            <xsd:field xpath="cep:eventTypeId"/>
        </xsd:key>
    </xsd:element>
    <xsd:complexType name="EventTest">
        <xsd:sequence>
            <xsd:element name="eventTypeId" type="cep:EventTypeId">
            </xsd:element>
            <xsd:element name="pattern" type="xsd:string"/>
            <xsd:element ref="xs:schema">
                        <xsd:annotation>
                            <xsd:appinfo>
            <jaxb:dom/>
          </xsd:appinfo>
                        </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
 </xsd:schema>

but that come to an Error with "xs:schema" element
Java:
cvc-complex-type.2.4.d: Invalid content was found starting with element 'xs:schema'. No child element is 
 expected at this point.
and alse the same Error with ref="xs:schema". Can you give me some advice?
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
You defined the prefix to be xsd, but then you wrote xs:schema.
Correct would be
Code:
xsd:schema
 

DungNghe

Mitglied
that comes also Error
Java:
src-resolve: Cannot resolve the name 'xsd:schema' to a(n) 'element declaration' component.
.
i´m confused now...:(
 

Wildcard

Top Contributor
I think may be there is a namespace conflict (both schema in XML file and Schema file use xsd prefix).
Why should that matter? As long as each document is consistent in its namespace prefix declarations and usage everything is fine.
The XSD I posted above is valid. You can verify that by uploading it to an online Schema validator.
Eclipse WTP also recognizes it as a valid schema. I do not know which tool you are using that produces the above error message, but the example I posted is a correct schema definition.
 

DungNghe

Mitglied
@Wildcard: sorry for disturbing you but i can not jet import namespace "http://www.w3.org/2001/XMLSchema". that comes errors:

Java:
schema_reference.4: Failed to read schema document 'null', because 1) could not find the document; 2) the document could not be read; 3) the root element of the 
 document is not <xsd:schema>.

That may be because i have already import another namespace (i muss import another namespace to define element "EventTypeID" before, see schema unter). Can this be reason for the problem. Can we import multi namespace to a schema? (I have search many sites but there are no clear answer) and muss we also set a schemaLocation for the namespace "http://www.w3.org/2001/XMLSchema" ?
Thanks for your help


Java:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="www.congdong.de" xmlns:cep="www.congdong.de" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" jaxb:version="2.0" targetNamespace="www.congdong.de">

<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>  
<xsd:import namespace="http://congdong.de/wsn/t-1"> schemaLocation="t-1.xsd" </xsd:import>

     <xsd:element name="TestRequest">
        <xsd:complexType>
            <xsd:sequence maxOccurs="unbounded" minOccurs="1">
                <xsd:element name="eventTest" type="cep:EventTest"/>
            </xsd:sequence>
        </xsd:complexType>
        <xsd:key name="eventTypeIdMustBeUnique">
            <xsd:selector xpath="cep:eventTest"/>
            <xsd:field xpath="cep:eventTypeId"/>
        </xsd:key>
    </xsd:element>
    <xsd:complexType name="EventTest">
        <xsd:sequence>
            <xsd:element name="eventTypeId" type="cep:EventTypeId">
            </xsd:element>
            <xsd:element name="pattern" type="xsd:string"/>
            <xsd:element ref="xsd:schema">
                        <xsd:annotation>
                            <xsd:appinfo>
            <jaxb:dom/>
          </xsd:appinfo>
                        </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    
 </xsd:schema>
 
Zuletzt bearbeitet:

Wildcard

Top Contributor
That may be because i have already import another namespace (i muss import another namespace to define element "EventTypeID" before, see schema unter). Can this be reason for the problem. Can we import multi namespace to a schema? (I have search many sites but there are no clear answer) and muss we also set a schemaLocation for the namespace "http://www.w3.org/2001/XMLSchema" ?
Thanks for your help
You can import as many namespaces as you want, this is not a problem.
The xml schema namespace itself should work properly without a schema location since it is a well known namespace.
Again, I do not know which tool you are using that gives you these errors, but I would blame the tool here...
 

DungNghe

Mitglied
@Wildcard: thanks for you quick reply, i think i´m using normal eclipse WTP. i will try to refresh my eclipse and WTP tools and tell you then.
 

DungNghe

Mitglied
just for someone who cares, i have resolved this problem by using a "any element", my schema for xsd Node is:
Java:
....
<xsd:any namespace="http://www.w3.org/2001/XMLSchema" processContents="lax">
	        	<xsd:annotation>
	            	<xsd:appinfo><jaxb:dom/></xsd:appinfo>
	        	</xsd:annotation>
</xsd:any>
...
Thanks @Wildcard for helping.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A xml-schema aus wsdl auslagern in eine eigene xsd-Datei XML & JSON 3
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
D Innerhalb einer Property auf eine andere verlinken? XML & JSON 3
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
E JTreedaten in eine XML Datei speichern XML & JSON 3
L Mit Hilfe von POI eine Tabelle ohne Rahmen in Word schreiben XML & JSON 2
M Wie kann ich eine unter SAX eingelesene XML bearbeiten? XML & JSON 4
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
ruutaiokwu xml nur bis auf eine bestimmte ebene parsen mit javax.xml... XML & JSON 5
F Wie bringe ich zwei xml Datein mit eine jar zum laufen? XML & JSON 4
F SAX Parser siehe nichts auf dem Konsole weder eine Fehlermeldung noch eine Ergebnis XML & JSON 6
C Xml file gegen eine DTD validieren XML & JSON 3
G Problem beim schreiben von XML in eine File XML & JSON 2
B muss standalone angegeben werden sobal eine DTD vorhanden ist? XML & JSON 6
G XSL: Element über eine Variable ermitteln XML & JSON 4
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
T Wie einen String(XML Inhalt) in eine XML Datei speichern? XML & JSON 8
P XML Dateien zusammenführen und in eine XML speichern XML & JSON 7
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4
L mit Java eine HTML-Datei erstellen XML & JSON 3
G xml einlesen und bestimmte Elemente an eine gui_Klasse überg XML & JSON 25
G Mit JAXP in eine Datei schreiben XML & JSON 2
T Newbie Frage.aus Java eine XML Datei erstellen? XML & JSON 7
G Prüfen ob eine XML-Datei "well-formed" ist XML & JSON 2
G Xml Elemente in eine Liste abspeichern! XML & JSON 2
D Suche eine OnlineQuelle für SAX XML & JSON 2
E Wie kann ich ein XSD-Schema in einer JSP-Seite verwenden? XML & JSON 7
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
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
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
S Jackson: Erstellen Sie Klassen für Jackson aus XSD XML & JSON 2
N JAXB: Überflüssiges Wrapper-Tag für Map-Einträge XML & JSON 0
H Editor für Apache FOP XML & JSON 5
E Gibt es denn einen XML-Parser für JUnit-Tests? XML & JSON 6
A XMLRPC für Java XML & JSON 3
S Ersatz für die veraltete Klasse XPath XML & JSON 1
D ods./Excel Tabelle oder doch SQL für nen Anfänger? XML & JSON 5
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
R Rückgabewert für XML-Abschnitt XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T XML-Stream als Quelle für FOP XML & JSON 4
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D [EMF,XSD] PatternMatcher für eigene Methoden benutzen XML & JSON 3
F Standard für das erstellen von XML? XML & JSON 4
H XML plattformunabhängig/Open Source für Java XML & JSON 4
G Idee für kleines Vorführprojekt XML & JSON 5
isowiz Welches Persistenzframework für XML? XML & JSON 3
T Java Klasse für gegebenes XML erstellen XML & JSON 4
B XML file für schtasks XML & JSON 5
G XPath gesucht für Tag mit konkretem Content XML & JSON 2
F beste lib für xml serialisierung - deserialisierung XML & JSON 4
HeRaider Steuerzeichen für Zeilenumbrüche XML & JSON 2
T Editor für XML-Dialekt entwickeln XML & JSON 3
M brauche große XML-Datei für XPath-Tests XML & JSON 4
M Best Practices für Data Binding ohne Hilfstools XML & JSON 14
A XML für Einstellungen - welche Strategie verwenden? XML & JSON 4
M XSL-File für Transformation verwenden XML & JSON 3
C Pfadangabe für Bilder XML & JSON 2
J Client für WebService programmieren (aus WSDL-File) XML & JSON 15
T DTD für XML-Instanz einbinden? XML & JSON 4
G XML als "Datenbank" für kleine Daten XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben