SAX2 mehere eintraege



  • heiho

    ich lern zZt den SAX2 teil von xerces, und ich fummel hier schon seit stunden an einem problem herum

    das sind die dateien:

    person.xml

    <?xml version="1.0" encoding="iso-8859-1"?>
    <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd">
    	<name>Max Mustermann</name>
    	<strasse_nr>Musterstrasse 12</strasse_nr>
    	<plz_ort>12345 Musterhausen</plz_ort>
    	<dsl_anschluss>ja</dsl_anschluss>
    	<email>Max@Mustermann.de</email>
    	<telefon>0123123456</telefon>
    </person>
    

    person.xsd
    (hab diese datei hier mal um die *_type typen gekuerzt)

    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="person">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element name="name" type="name_type"/>
    			<xs:element name="strasse_nr" type="strasse_nr_type"/>
    			<xs:element name="plz_ort" type="plz_ort_type"/>
    			<xs:element name="dsl_anschluss" type="dsl_anschluss_type"/>
    			<xs:element name="email" type="email_type"/>
    			<xs:element name="telefon" type="telefon_type"/>
    		</xs:sequence>
    	</xs:complexType>
    </xs:element>
    

    was ich schon seit ewigkeiten versucht ist indem ich ein zweites "<person>" hinzufuegen will

    <?xml version="1.0" encoding="iso-8859-1"?>
    <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd">
    	<name>Max Mustermann</name>
    	<strasse_nr>Musterstrasse 12</strasse_nr>
    	<plz_ort>12345 Musterhausen</plz_ort>
    	<dsl_anschluss>ja</dsl_anschluss>
    	<email>Max@Mustermann.de</email>
    	<telefon>0123123456</telefon>
    </person>
    <!-- Error
    <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd">
    	<name>Max Mustermann</name>
    	<strasse_nr>Musterstrasse 12</strasse_nr>
    	<plz_ort>12345 Musterhausen</plz_ort>
    	<dsl_anschluss>ja</dsl_anschluss>
    	<email>Max@Mustermann.de</email>
    	<telefon>0123123456</telefon>
    </person>
    -->
    <!-- Error
    <person>
    	<name>Max Mustermann</name>
    	<strasse_nr>Musterstrasse 12</strasse_nr>
    	<plz_ort>12345 Musterhausen</plz_ort>
    	<dsl_anschluss>ja</dsl_anschluss>
    	<email>Max@Mustermann.de</email>
    	<telefon>0123123456</telefon>
    </person>
    -->
    

    wie muesste ich die sxd preparieren damit der SAX2 parser da keine exception wirft ?
    bin da etwas durcheinander, in mein lehrbuch wurde nur mit einem person type gearbeitet



  • und zack war ich wieder zu voreilig, habs hinbekommen, der fehler war das ich eine id vergeben muss

    person.xsd
    (die simplytype wie vorhin rausgeschnitten)

    <?xml version="1.0"?>  
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="personlist">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element name="person" maxOccurs="unbounded">
    				<xs:complexType>
    					<xs:sequence>
    						<xs:element name="name" type="name_type"/>
    						<xs:element name="strasse_nr" type="strasse_nr_type"/>
    						<xs:element name="plz_ort" type="plz_ort_type"/>
    						<xs:element name="dsl_anschluss" type="dsl_anschluss_type"/>
    						<xs:element name="email" type="email_type"/>
    						<xs:element name="telefon" type="telefon_type"/>
    					</xs:sequence>
    					<xs:attribute name="person_id" type="xs:ID" use="required"/>
    				</xs:complexType>
    			</xs:element>
    		</xs:sequence>
    	</xs:complexType>
    </xs:element>
    

    person.xml

    <?xml version="1.0" encoding="iso-8859-1"?>
    <personlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd">
    	<person person_id="Max">
    		<name>Max Mustermann</name>
    		<strasse_nr>Musterstr 12</strasse_nr>
    		<plz_ort>12345 Musterhausen</plz_ort>
    		<dsl_anschluss>ja</dsl_anschluss>
    		<email>Max@Mustermann.de</email>
    		<telefon>12345123456</telefon>
    	</person>
    	<person person_id="Marta">
    		<name>MartaMustermann</name>
    		<strasse_nr>Musterstr 12</strasse_nr>
    		<plz_ort>12345 Musterhausen</plz_ort>
    		<dsl_anschluss>ja</dsl_anschluss>
    		<email>Marta@Mustermann.de</email>
    		<telefon>12345123457</telefon>
    	</person>
    </personlist>
    

    danke fuer die aufmerksamkeit

    xml is schon cool {=

    //dazuedit, geht auch ohne ID, solange
    <xs:element name="person" maxOccurs="unbounded">
    angegeben ist


Anmelden zum Antworten