Zum Inhalt springen

hbspike

Mitglieder
  • Gesamte Inhalte

    219
  • Benutzer seit

  • Letzter Besuch

Beiträge von hbspike

  1. Was sind "ergonomischen Anforderungen". Das erklären wäre cool gewesen.

    8Std für 1 Tisch , 2 Stühle, Monitore, Rechner und nen Drucker aufstellen. Vielleicht etwas viel, aber da will ich mich nicht zuweit aus dem Fenster lehnen.

    2 Mitarbeiter an einem Tisch? Ist der Tisch so groß?

    Was musstest du 8Std lang an den Rechnern konfiguieren?

    Bei der Doku generell mal das Layout überarbeiten. Das sieht aus als hättest du das mit dem Editor gemacht...

    Kopf- und Fußzeile, da kannst du dann auch die Seitenzahl $Seite/$Seitenanzahl z.B. reinbringen.

    Einleitung wäre auch schön gewesen. Farbwahl bei den Tabellen, Tabellen auf die Seitengröße anpassen.

    Auch: Bleibt der schon vorhanden Mac-Arbeitsplatz?

  2. Ok hat sich auch schon wieder erledigt.

    War:

    
    <xs:element name="text" maxOccurs="unbounded">				
    
    					<xs:complexType mixed="true">
    
    						<xs:sequence>
    
    						      <xs:element ref="bva:objekt" maxOccurs="unbounded">						
    
    					             </xs:element>
    
    						</xs:sequence>
    
    					</xs:complexType>					
    
    				</xs:element>
    
    

    und die "objekt"-Defintion einfach ans Ende gehangen. Ich sehe zwar jetzt nicht direkt den großen Unterschied, aber so wird mir das Objekt mit eingelesen.

  3. Hallo zusammen.

    Ich hoffe das ist das richtige Unterforum.

    Also:

    Ich versuche gerade eine XML mittels XSD zu unmarshallern.

    Ich hab meine XSD geschrieben und eigentlich funktioniert sie auch soweit, jedoch gibt es ein kleines Problem.

    Ich habe eine XML mit einem Teilaufbau der so aussieht:

    
    <text>
    
    <p><b>Investitions-Magnet China</b></p>
    
    <p>Zurzeit ist China die am st�rksten wachsende Volkswirtschaft der Welt und damit ein Magnet f�r <br>Investitionen. Allein f�r die Olympischen Spiele 2008 in Peking und die Weltausstellung 2010 in Shanghai sind Investitionen in H�he von 34 Mrd. USD erforderlich, es entstehen 700.000 neue Jobs und ein Beitrag zur allgemeinen Wirtschaftsleistung in H�he von 170 Mrd. USD. Au�erdem ist China Ende 2001 der Welthandelsorganisation WTO beigetreten und muss bis sp�testens 2008 alle Handelsschranken beseitigen.</p>
    
    <objekt align="left" typ="bild" name="db_2005_2_08_01.gif"></objekt>
    
    <p>Er ...
    
    </text>
    
    
    meine XSD die diesen Teil beschreibt sieht so aus:
    
                                   <xs:element name="text" maxOccurs="unbounded">				
    
    					<xs:complexType mixed="true">
    
    						<xs:sequence>
    
    							<xs:element name="objekt" maxOccurs="unbounded">
    
    								<xs:complexType mixed="true">
    
    									<xs:attribute name="typ" type="xs:string"/>
    
                                                                            <xs:attribute name="align" type="xs:string"/>	
    
    									<xs:attribute name="name" type="xs:string"/>
    
    								</xs:complexType>
    
    							</xs:element>
    
    						</xs:sequence>
    
    					</xs:complexType>					
    
    				</xs:element>
    
    

    Das Ergebnis des unmarshallerns ist:

    eine List<E> Variable mit dem Namen text und 2 Strings als Inhalt und zwar den Text vor dem <objekt ..>-Tag und dem Text danach. Das objekt-Tag wird ignoriert.

    Jetzt meine Frage:

    Wie kriege ich es hin, dass auch dieses Objekt in der Liste auftaucht?

    Für jede Hilfe bin ich dankbar

    Mfg

    Chris

  4. Ich würde wohl da ansetzen, dass ich mal schauen würde, woher die Invalidität kommt, d.h. also am Erstellungsprozess der DTD schauen.

    Würde ich auch gerne, geht leider nicht.

    Zur Info. Ich verarbeite Zeitungsartikel die auf CDs gepresst wurden. Die Rohdaten für die CDs sind in XML-Form vorhanden. Das Problem:

    Es sind Daten aus 2004 bis heute. Die DTD wurde nur leider 2004 erstellt und auch nicht von uns (von einer externen Firma), daher kann ich da nichts mehr dran drehen.

    Ich hab es jetzt hinbekommen die Daten aus der XML zu extrahieren... Toll nur das die XML nicht konsistent im Aufbau sind, was mir gerade mal so richtig die Laune verdirbt ...

    Naja.. Arbeit arbeit ;)

    Ich danke euch auf jedenfall. Sehr toll

    Faden kann geschlossen werden :)

    Mfg Chris

  5. So. Hab es jetzt auch hinbekommen das marshallen/unmarshallen -.-

    Es lag an Kommentaren von der externen Firma die die DTD erstellt hat..

    Die waren dann mal mittem im Text, aber natürlich auch in mitten von Deklarationen...

    Um mal ein Beispiel zu geben:

    
    <!ENTITY  % tm.abstext "(%tm.emph; | br | fnref | objektref | (#PCDATA))+"                 -- Text im Absatz/Tabellenzelle -->
    
    

    Eine Frage habe ich jedoch noch flashpixx, wenn du noch Lust hast :)

    Ich musste, damit die DTD als valide gilt, die Kommentare, ersichtlich durch -- KOMMENTAR -- entfernen, jedoch auch das

    (#PCDATA). Damit kam JAXB gar nicht klar.

    Weist du warum das nicht funktioniert?

  6. Hi flashpixx.

    Mhh. Dann schaue ich mir nochmal die DTD an. Da ich die nicht geschrieben habe, wird das wohl etwas dauern.

    Zur Info für mich. Ich hab jetzt 2 Möglichkeiten:

    1. Die DTD Informationen in die XML einbinden mit [ ... ] im DOCTYPE

    2. Die DTD Informationen in die XSD einbinden.. (noch keine Ahnung wie, muss ich dann gucken).

    Die URI ist natürlich in der XML als:

    <!DOCTYPE heft SYSTEM "file:///C/Workspace/j2ee/ws1_test_jsf/BvXmlImporter/src/diebank.dtd" >

    definiert. Die Exception gibt die URI nur irgendwie mit \ aus.

    Die Editoren schaue ich mir auf jedenfall an!

    Danke mal wieder flashpixx, du bist echt eine große Hilfe!

    Mfg Chris

  7. Hallo nochmal.

    Ich bin auf ein weiteres Problem gestoßen. Die XSD ist jetzt soweit korrekt.

    Jetzt möchte ich gerne meine XML unmarshallern.

    Das Problem ist, dass ich in der XML einen Verweis auf die beschreibende DTD habe.

    Dieser Verweis bringt mich zum verzweifeln.

    Als Ausgangspunkt (Rohzustand der XML) war in der XML gegeben:

    <!DOCTYPE heft SYSTEM "diebank.dtd" >
    Das funktioniert natürlich nicht, da die dtd nicht mehr direkt dort liegt. Laut der Definition muss ich bei SYSTEM eine URI angeben. Dies habe ich auch gemacht. file-URI welche auf die DTD verweist. Beim strg-klick auf den Link wird auch die korrekte Datei geöffnet.
    <!DOCTYPE heft SYSTEM "file:///C:/Workspace/j2ee/ws1_test_jsf/BvXmlImporter/src/diebank.dtd" >
    Führe ich jetzt das unmarshalling durch, so wirft mir der SAX-Parser eine Exception:
    javax.xml.bind.UnmarshalException
    
     - with linked exception:
    
    [org.xml.sax.SAXParseException: The system identifier must begin with either a single or double quote character.]
    
    	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
    
    	...snip...
    
    Caused by: org.xml.sax.SAXParseException: The system identifier must begin with either a single or double quote character.
    
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
    
    ..snip...
    
    	... 7 more
    Entferne ich den : aus der URI, so wirft mir der SAX-Parser eine andere Exception:
    javax.xml.bind.UnmarshalException
    
     - with linked exception:
    
    [java.io.FileNotFoundException: \C\Workspace\j2ee\ws1_test_jsf\BvXmlImporter\src\diebank.dtd (Das System kann den angegebenen Pfad nicht finden)]
    
    	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:202)
    
    	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
    
    	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
    
    	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:142)
    
    	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:151)
    
    	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:169)
    
    	at de.bankverlag.xml.importer.Start.testXstream(Start.java:195)
    
    	at de.bankverlag.xml.importer.Start.main(Start.java:56)

    Ich habe auch versucht den : zu maskieren, jedoch ohne Erfolg.

    Hat da wer einen Tipp was ich bei der URI falsch mache(scheinbar bin ich zu blöd das zu sehen)? Ich wäre euch zu dank verpflichtet.

    Mfg Chris

  8. Ok. Hab es hinbekommen :)

    Danke flashpixx

    Falls es wen interessiert:

    Wenn <element> = complexType dann muss nach <complexType> ne <sequence> . In die <sequence> kommen die <element>-Eigenschaften des complexType-elements. Die Attribute (<attribute>) müssen nach der <sequence> kommen.

    Also

    
    <element>
    
       <complexType>
    
         <sequence>
    
             <element />
    
             <element />
    
             <element />
    
         </sequence>
    
         <attribute />
    
         <attribute />
    
      </complexType>
    
    </element>
    
    

  9. So war der Satz ja auch nicht gemeint.

    Ich habe nur geschrieben das ich die XSD von Hand geschrieben habe und jetzt Fehler hochkommen.

    Nein, eindeutig wäre 1 von den 3en. Das ist "raten und ausprobieren"...

    Und selbst das hilft nicht. Ich habe die xsd analog zu dem Aufbau einer xsd wie in der XML Schema Complex Type - Text Elements beschrieben, aufgebaut.

    Darum verstehe ich nicht warum der Fehler kommt.

    Auch sollte die xsd geschachtelte elements verstehen und das es eine maximal Anzahl an <xs:elements> geben soll, kannn ich auch irgendwie nicht glauben. Korrigiere mich wenn ich in diesen Punkten falsch liege...

    Auch laut der unter xmlschema-1-Definition aufgelisteten Eigenschaften der [element]-Komponente sollte das funktionieren...

  10. Hi flashpixx.

    Danke für deine Antwort.

    Da ich die XSD selbst geschrieben habe (generieren hat nicht funktioniert da das Tool das ich dafür nutze, nicht mit der dtd klar kommt ~.~), zeigt mir Eclipse einen Fehler in der xsd an :

    
    <xs:element name="heft">
    
    		<xs:complexType>
    
    			<xs:attribute 	name="version" 		type="xs:string" />
    
    			<xs:attribute 	name="jahr" 		type="xs:string" />
    
    			<xs:attribute 	name="ausgabe" 		type="xs:string" />
    
    			<xs:attribute 	name="seitevon" 	type="xs:string" />
    
    			<xs:attribute 	name="seitebis" 	type="xs:string" />
    
    			<xs:attribute 	name="id" 			type="xs:string" />
    
    			<xs:element  name="standpunkt">
    
    				<xs:complexType>
    
    					<xs:attribute 	name="jahr" 		type="xs:string" />
    
    					<xs:attribute 	name="ausgabe" 		type="xs:string" />
    
    					<xs:attribute 	name="seitevon" 	type="xs:string" />
    
    					<xs:attribute 	name="seitebis" 	type="xs:string" />
    
    					<xs:attribute 	name="gruppe" 		type="xs:string" />
    
    					<xs:attribute 	name="id" 			type="xs:string" />
    
    					<xs:element 	name="kategorie" 	type="xs:string" />
    
    					<xs:element 	name="titel" 		type="xs:string" />
    
    					<xs:element 	name="untertitel" 	type="xs:string" />
    
    					<xs:element 	name="text" 		type="xs:string" />
    
    					<xs:element 	name="autor" 		type="xs:string" />
    
    				</xs:complexType>
    
    			</xs:element>
    
    
    ...
    
    

    Eclipse zeigt den Fehler an der Stelle - <xs:element name="standpunkt"> --

    mit dem Fehlertext: "s4s-elt-invalid-content.1: The content of '#AnonType_heft' is invalid. Element 'element' is invalid, misplaced, or occurs too often."

    Was ich nicht verstehe.

    Siehst du da einen Fehler?

  11. Hallo zusammen.

    Ich hoffe es ist das richtige Unterforum.

    Ich bin zurzeit dabei ein Programm zuschreiben, mit dessen Hilfe man XML-Daten in eines unserer Systeme importieren kann.

    Jedoch bin ich auf ein Verständnisproblem gestoßen:

    Als Beispiel nehme ich jetzt mal einen XSD-Teil der ein Feld autoren beschreibt:

    
    <xs:element 	name="autoren">							
    
    	<xs:element name="autor" maxOccur="unbounded">
    
    		<xs:complexType>
    
    			<xs:simpleContent>
    
    				<xs:extension base="xs:string">
    
    					<xs:attribute name="id" type="xs:string" />
    
    				</xs:extension>
    
    			</xs:simpleContent>
    
    		</xs:complexType>
    
    	</xs:element>
    
    </xs:element>
    
    
    Damit ich ja jetzt aus so einer Struktur ein Objekt erhalte, muss ich ja die Klasse Autoren erstellen. Diese hätte dann eine Eigenschaft Autor? Oder eine List<Autor> (Da bin ich mir auch nicht sicher, wie das bei der Umformung funktioniert --> Stichwort "unbounded") Autoren ist in der XML so definiert:
    <autoren>
    
    <autor id="x.xx.xxxx.x.xx">
    
    XXXX X. XXXXX
    
    </autor>
    
    </autoren>

    Ich weis das für das Attribut "id" in der Klasse ein Feld vorhanden seien muss, nur wie speichere bzw wo oder im welchem Feld speichere ich nun den Text "XXXX X. XXXXX"?

    Gibt es dafür ein Default-Feld "content" oder so etwas?

    ich wäre für eure Hilfe sehr dankbar :)

    mfg Chris

  12. So.

    Jetzt weis ich auch was du möchtest und hier ist ein fertiges Beispiel.

    Bitte nur wenn du es selbst auch ausprobiert hast..

    
    public static void test() {
    
    		float SummeGesamt = 0;
    
    	    int Alter = 0;
    
    	    float SummeKunden = 0;
    
    	    String Geschlecht;
    
    	    boolean PCBesitzer;
    
    	    float Anteil;
    
    	    int Fragebögen = 0;
    
    
    	    int choice = -1;
    
    
    		    for (Fragebögen=0; Fragebögen<=24; Fragebögen++)
    
    		    { 
    
    		    	//0 = ja, 1 = nein, 2 = Abbrechen
    
    		    	choice = JOptionPane.showConfirmDialog(null, "Bist du männlich?");
    
    		    		if(choice == 0) {
    
    		    			//die nächste Abfrage nach dem alter.
    
    		    			choice = JOptionPane.showConfirmDialog(null, "Bist du nicht älter als 21?");
    
    		    			if(choice == 0) {
    
    			    			//die nächste Abfrage nach dem Pc.
    
    			    			choice = JOptionPane.showConfirmDialog(null, "Besitzt du einen PC?");
    
    			    			if(choice == 0) {
    
    			    				SummeKunden++;
    
    			    				SummeGesamt++;
    
    			    			}
    
    			    			else {
    
    
    			    			}
    
    			    		}
    
    			    		else if(choice == 1) {
    
    			    			SummeGesamt++;
    
    			    		}
    
    		    		}
    
    		    		else if(choice == 1) {
    
    		    			SummeGesamt++;
    
    		    		}
    
    		    }
    
    		    Anteil = (SummeKunden/SummeGesamt) *100;
    
    		    System.out.println(Anteil + "%");
    
        }
    
    

  13. SPOILER SPOILER

    spoiler:foreach

    public float auswertungFrageboegen(Frageboegen[] fb) {
    
    
    int SummeGesamt = 0;
    
    float Anteil = 0;
    
    foreach(Fragebogen tempFb : fb) {
    
    
        if(tempFb.geschlecht == "m") {
    
            if(tempFb.alter <= 21) {
    
                if(tempFb.PcBesitzer == true) {
    
                    SummeGesamt++;
    
                }
    
            }
    
        }
    
    }
    
    Anteil = (fb.length() / SummeGesamt)*100;
    
    return Anteil;
    
    }
    do-while:
    
    public float auswertungFrageboegen(Frageboegen[] fb) {
    
    
    int SummeGesamt = 0;
    
    int fb_pos = 0;
    
    float Anteil = 0;
    
    do{
    
    	if(fb[fb_pos].geschlecht == "m") {
    
    		if(fb[fb_pos].alter <= 21) {
    
    			if(fb[fb_pos].PcBesitzer == true) {
    
    				SummeGesamt++;
    
    			}
    
    		}
    
    	}
    
    		fb_pos++;
    
    	//Das musst du einmal überprüfen. length() gibt dir die Anzahl an Elementen im Array, aber fb_pos beginnt bei 0 und nicht 1, also muss < und nicht <=
    
    }while(fb_pos < fb-length()) 
    
    Anteil = (fb.length() / SummeGesamt)*100;
    
    
    return Anteil;
    
    }
    
    

  14. Wieso sollte er bei der 20. aufhören? Du willst ja eine Menge von x Fragebögen abarbeiten und danach das Ergebnis haben (x unbekannt).

    Da hast du mehrere Möglichkeiten:

    Wenn du irgendwoher weist was x ist , dann kannst du das so machen wie bei deinem Post davor. Dann durchläufst du die Schleife halt x-mal und am Ende gibst du das Ergebnis aus.

    Ich dachte du hast sowas wie Frageboegen[] wobei die Menge unbekannt ist.

    Dann könntest du sowas machen wie..

    
    for(Fragebogen temp : Frageboegen) {
    
    ...
    
    }
    
    
    Dann macht er genau "Länge von Frageboegen"-Durchläufe durch die Schleife. Anders wenn du eine Do-While Schleife hast, musst du in der Schleife selbst eine Variable hochzählen:
    
    do{
    
    
    int x=0;
    
    ...
    
    x++;
    
    }while(x< abbruchvariable) 
    
    

    Ich hoffe ich konnte dir etwas helfen.

    mfg chris

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...