XML (300MB) verarbeiten => OutofMemoryError

Felix Schlauri

Grünschnabel
Hallo,

sollte ein grösseres XML (300MB) verarbeiten, wäre ja alles nicht so schwer, dachte ich wenigstens.
Beim verarbeiten bekomme ich non aber immer die Exception "OutOfMemoryError" und dies geschieht
jeweils beim einlesen der XML-Datei an der rot markierten Stelle.

Code:
InputSource inputFile = new InputSource((String)PropertiesArgs.get("DescriptorXMLFileName"));

Document _xmlRecSet = new Document();
SAXBuilder builder = new SAXBuilder();
_xmlRecSet = builder.build(inputFile);


Habe den Parameter -Xmx bereits ausprobiert, bringt mir aber nicht wirklich etwas.
Gibt es die Möglichkeit, dass ich beim SAXBuilder einen Parameter mitgeben kann
der nicht alles auf einmal liest, sondern Element(Recordset) weise? Nochlieber, nur
die Strucktur und anschliessend Element(Recordset) für Element(Recordset)?


Schon mal besten dank für die Hilfe.

Felix
 
Hi novo,

habe es schell ausprobiert, ergibt immer noch den selben Fehler.
Irgend wo hat SAXBuilder eine Grenze über welche er nicht hinweg kommt.
Vielleicht hat mir da jemand einen Tip um das ganze in Paketen zu verarbeiten.

Felix
 
und wenn du das ganze über eine DocumentBuilderFactory machst? Also DOM nicht SAX(naja fast... wissen die ja selbst nicht so genau)
Code:
static Document document;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(dein Fileobjekt);

}catch(blabla Exceptions abfangdingens)
 
Hallo!

Also ein DOM Parser würde ich auf gar keinen Fall nehmen, da diese Parsing Variante die gesamte XML Dokument Struktur in den Speicher lädt. Ein (Event basierter) SAX-(Push)Parser bietet sich auch nur begrenzt an, da auch hier mitunter einige Teilstrukturen des Dokuments in den Speicher geladen werden. Je nach dem was du genau machen würdest solltest du das ganze mal mit einem Pull-Parser versuchen. Pull Parser, wie man ihn beispielsweise über eine StAX (Streaming API for XML) Implementierung bekommt, erlauben die wahlfreie Navigation im XML Dokument mit einem Cursor. Damit lassen sich sehr speichereffiziente XML Parsing Routinen auch für sehr große XML Files entwickeln.

Gruß Tom
 
Vielen Dank an alle die mir bei meinem Problem weiter geholfen haben.
Ich konnte mein Code so umbauen (StAX) , dass ich nun meine Memory Probleme
vergessen kann.

Gruss
Felix
 
OK, habe zwei lösungen ausgearbeitet.

1. Cursor-Verfahren


Java:
import java.io.File;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;

import org.codehaus.stax2.XMLInputFactory2;
import org.codehaus.stax2.XMLStreamReader2;
import org.codehaus.stax2.validation.XMLValidationException;
import org.codehaus.stax2.validation.XMLValidationSchema;
import org.codehaus.stax2.validation.XMLValidationSchemaFactory;


public class EinfachLesen {

	public static void main(String[] aArgs) throws Exception {
		// First, let's parse DTD schema object
		XMLValidationSchemaFactory sf = XMLValidationSchemaFactory.newInstance(XMLValidationSchema.SCHEMA_ID_DTD);
		File schemaFile = new File("daten\\desc2006.dtd");
		XMLValidationSchema dtd = null;

		try {
			dtd = sf.createSchema(schemaFile);
		}
		catch (XMLStreamException xe) {
			System.err.println("Failed to process the DTD file ('" + schemaFile + "'): " + xe);
			System.exit(1);
		}
		
		// And then validate a document:
		File inputFile = new File("daten\\desc2006.xml");
		try {
			XMLInputFactory2 ifact = (XMLInputFactory2) XMLInputFactory.newInstance();
			XMLStreamReader2 sr = ifact.createXMLStreamReader(inputFile);

			try {
				sr.validateAgainst(dtd);
				/*
				 * Document validation is done as document is read through (ie. it's fully streaming as well as
				 * parsing), so just need to traverse the contents.
				 */
				while (sr.hasNext()) {
					int _i = sr.next();
					System.out.print("Event: " + _i);
					
					if (_i == XMLStreamConstants.START_ELEMENT) {
						System.out.print(" Start: " + sr.getLocalName());
						for (int _attrIdx = 0; _attrIdx < sr.getAttributeCount(); _attrIdx++) {
							System.out.print(" / AttrName: " + sr.getAttributeLocalName(_attrIdx));
							System.out.print(" / AttrVal: " + sr.getAttributeValue(_attrIdx));
						}
					}
					else if (_i == XMLStreamConstants.END_ELEMENT) {
						System.out.print(" End: " + sr.getLocalName());
					}
					else if (_i == XMLStreamConstants.CHARACTERS) {
						System.out.print(" Chars: " + sr.getText());
					}
					System.out.println();
				}
			}
			catch (XMLValidationException vex) {
				System.err.println("Document '" + inputFile + "' failed validation: " + vex);
				System.exit(1);
			}
		}
		catch (XMLStreamException xse) {
			System.err.println("Failed parse the input document ('" + inputFile + "'): " + xse);
			System.exit(1);
		}
		System.out.println("Document '" + inputFile + "' succesfully validated.");

	}
}

Ergebnis:

Code:
Event: 1 Start: DescriptorRecord / AttrName: DescriptorClass / AttrVal: 1
Event: 6
Event: 1 Start: DescriptorUI
Event: 4 Chars: D002002
Event: 2 End: DescriptorUI
Event: 6
Event: 1 Start: DescriptorName
Event: 6
Event: 1 Start: String
Event: 4 Chars: Brucella
Event: 2 End: String
Event: 6
Event: 2 End: DescriptorName
Event: 6
Event: 1 Start: DateCreated
Event: 6
Event: 1 Start: Year
Event: 4 Chars: 1999
Event: 2 End: Year
Event: 6
Event: 1 Start: Month
Event: 4 Chars: 01
Event: 2 End: Month
Event: 6
Event: 1 Start: Day
Event: 4 Chars: 01
Event: 2 End: Day
Event: 6
Event: 2 End: DateCreated
Event: 6
Event: 1 Start: DateRevised
Event: 6
Event: 1 Start: Year
Event: 4 Chars: 2005
Event: 2 End: Year
Event: 6
Event: 1 Start: Month
Event: 4 Chars: 06
Event: 2 End: Month
Event: 6
Event: 1 Start: Day
Event: 4 Chars: 30
Event: 2 End: Day
Event: 6
Event: 2 End: DateRevised
Event: 6
Event: 1 Start: ActiveMeSHYearList
Event: 6
Event: 1 Start: Year
Event: 4 Chars: 2006
Event: 2 End: Year
Event: 6
Event: 2 End: ActiveMeSHYearList
Event: 6
Event: 1 Start: AllowableQualifiersList
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000145
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: classification
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: CL
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000166
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: cytology
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: CY
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000187
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: drug effects
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: DE
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000201
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: enzymology
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: EN
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000235
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: genetics
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: GE
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000254
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: growth & development
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: GD
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000276
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: immunology
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: IM
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000302
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: isolation & purification
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: IP
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000378
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: metabolism
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: ME
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000472
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: pathogenicity
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: PY
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000502
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: physiology
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: PH
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000528
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: radiation effects
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: RE
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000648
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: ultrastructure
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: UL
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000737
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: chemistry
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: CH
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 1 Start: AllowableQualifier
Event: 6
Event: 1 Start: QualifierReferredTo
Event: 6
Event: 1 Start: QualifierUI
Event: 4 Chars: Q000821
Event: 2 End: QualifierUI
Event: 6
Event: 1 Start: QualifierName
Event: 6
Event: 1 Start: String
Event: 4 Chars: virology
Event: 2 End: String
Event: 6
Event: 2 End: QualifierName
Event: 6
Event: 2 End: QualifierReferredTo
Event: 6
Event: 1 Start: Abbreviation
Event: 4 Chars: VI
Event: 2 End: Abbreviation
Event: 6
Event: 2 End: AllowableQualifier
Event: 6
Event: 2 End: AllowableQualifiersList
Event: 6
Event: 1 Start: Annotation
Event: 4 Chars: infection = BRUCELLOSIS
  
Event: 2 End: Annotation
Event: 6
Event: 1 Start: HistoryNote
Event: 4 Chars: 1963
  
Event: 2 End: HistoryNote
Event: 6
Event: 1 Start: PublicMeSHNote
Event: 4 Chars: 1963
  
Event: 2 End: PublicMeSHNote
Event: 6
Event: 1 Start: TreeNumberList
Event: 6
Event: 1 Start: TreeNumber
Event: 4 Chars: B03.440.400.425.215.500
Event: 2 End: TreeNumber
Event: 6
Event: 1 Start: TreeNumber
Event: 4 Chars: B03.660.050.070.100
Event: 2 End: TreeNumber
Event: 6
Event: 2 End: TreeNumberList
Event: 6
Event: 1 Start: RecordOriginatorsList
Event: 6
Event: 1 Start: RecordOriginator
Event: 4 Chars: NLM
Event: 2 End: RecordOriginator
Event: 6
Event: 1 Start: RecordMaintainer
Event: 4 Chars: SYSTEM
Event: 2 End: RecordMaintainer
Event: 6
Event: 1 Start: RecordAuthorizer
Event: 4 Chars: sjn
Event: 2 End: RecordAuthorizer
Event: 6
Event: 2 End: RecordOriginatorsList
Event: 6
Event: 1 Start: ConceptList
Event: 6
Event: 1 Start: Concept / AttrName: PreferredConceptYN / AttrVal: Y
Event: 6
Event: 1 Start: ConceptUI
Event: 4 Chars: M0002985
Event: 2 End: ConceptUI
Event: 6
Event: 1 Start: ConceptName
Event: 6
Event: 1 Start: String
Event: 4 Chars: Brucella
Event: 2 End: String
Event: 6
Event: 2 End: ConceptName
Event: 6
Event: 1 Start: ConceptUMLSUI
Event: 4 Chars: C0006303
Event: 2 End: ConceptUMLSUI
Event: 6
Event: 1 Start: ScopeNote
Event: 4 Chars: A genus of gram-negative, aerobic bacteria that causes BRUCELLOSIS. Its cells are nonmotile coccobacilli and are animal parasites and pathogens. The bacterium is transmissible to humans through contact with infected dairy products or tissue.
    
Event: 2 End: ScopeNote
Event: 6
Event: 1 Start: SemanticTypeList
Event: 6
Event: 1 Start: SemanticType
Event: 6
Event: 1 Start: SemanticTypeUI
Event: 4 Chars: T007
Event: 2 End: SemanticTypeUI
Event: 6
Event: 1 Start: SemanticTypeName
Event: 4 Chars: Bacterium
Event: 2 End: SemanticTypeName
Event: 6
Event: 2 End: SemanticType
Event: 6
Event: 2 End: SemanticTypeList
Event: 6
Event: 1 Start: TermList
Event: 6
Event: 1 Start: Term / AttrName: ConceptPreferredTermYN / AttrVal: Y / AttrName: IsPermutedTermYN / AttrVal: N / AttrName: LexicalTag / AttrVal: NON / AttrName: PrintFlagYN / AttrVal: Y / AttrName: RecordPreferredTermYN / AttrVal: Y
Event: 6
Event: 1 Start: TermUI
Event: 4 Chars: T005697
Event: 2 End: TermUI
Event: 6
Event: 1 Start: String
Event: 4 Chars: Brucella
Event: 2 End: String
Event: 6
Event: 1 Start: DateCreated
Event: 6
Event: 1 Start: Year
Event: 4 Chars: 1999
Event: 2 End: Year
Event: 6
Event: 1 Start: Month
Event: 4 Chars: 01
Event: 2 End: Month
Event: 6
Event: 1 Start: Day
Event: 4 Chars: 01
Event: 2 End: Day
Event: 6
Event: 2 End: DateCreated
Event: 6
Event: 1 Start: ThesaurusIDlist
Event: 6
Event: 1 Start: ThesaurusID
Event: 4 Chars: NLM (1966)
Event: 2 End: ThesaurusID
Event: 6
Event: 2 End: ThesaurusIDlist
Event: 6
Event: 2 End: Term
Event: 6
Event: 2 End: TermList
Event: 6
Event: 2 End: Concept
Event: 6
Event: 2 End: ConceptList
Event: 6
Event: 2 End: DescriptorRecord


2. Iterator-Verfahren

Java:
import java.io.File;
import java.util.Iterator;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.*;

import org.codehaus.stax2.XMLInputFactory2;
import org.codehaus.stax2.XMLEventReader2;
import org.codehaus.stax2.evt.XMLEvent2;

public class IteratorVerarbeitung {

	/**
	 * TODO Kommentieren
	 * @param args
	 */
	public static void main(String[] args) {
		   
		// And then validate document QUALJHJJ.XML:
		File inputFile = new File("daten\\desc2006.xml");

		try {
			XMLInputFactory2 factory = (XMLInputFactory2)XMLInputFactory.newInstance();
			XMLEventReader2 parser = factory.createXMLEventReader(inputFile);

			while (parser.hasNext()) {
				
				XMLEvent2 event = (XMLEvent2)parser.nextEvent();
				int eventType = event.getEventType();
				
				switch (eventType) {
					case XMLStreamConstants.START_DOCUMENT:
						System.out.println("Start_Document: " + event);
						break;
				
					case XMLStreamConstants.END_DOCUMENT:
						parser.close();
						break;
						
					case XMLStreamConstants.START_ELEMENT:
						StartElement element = event.asStartElement();
						System.out.println("Start_Element: " + element.getName());
						Iterator attributes = element.getAttributes();
						
						while (attributes.hasNext()) {
							Attribute attribute = (Attribute)attributes.next();
							System.out.println("Attribut: " + attribute.getName() + " Wert: " + attribute.getValue());
						}
						
						break;
					
					case XMLStreamConstants.CHARACTERS:
						Characters characters = event.asCharacters();
						
						if (!characters.isWhiteSpace()) {
							System.out.println("Characters: " +characters.getData());
						}
						
						break;
						
					case XMLStreamConstants.SPACE:
						break;
						
					case XMLStreamConstants.END_ELEMENT:
						System.out.println("End_Element:" + event.asEndElement().getName());
						break;
						
					default:
						System.out.println("Unbekanntes Element in QUALFIRE-XML: " + eventType + " " + event);
						break;
				}
			}
		}
		catch (XMLStreamException xse) {
			System.err.println("Failed parse the input document ('" + inputFile + "'): " + xse);
			System.exit(1);
		}
		System.out.println("Document '" + inputFile + "' succesfully displayed.");

	}
	
}

Code:
Ergebnis:

Start_Element: DescriptorRecord
Attribut: DescriptorClass Wert: 1
Start_Element: DescriptorUI
Characters: D053127
End_Element:DescriptorUI
Start_Element: DescriptorName
Start_Element: String
Characters: Influenza A Virus, H9N2 Subtype
End_Element:String
End_Element:DescriptorName
Start_Element: DateCreated
Start_Element: Year
Characters: 2005
End_Element:Year
Start_Element: Month
Characters: 11
End_Element:Month
Start_Element: Day
Characters: 10
End_Element:Day
End_Element:DateCreated
Start_Element: DateRevised
Start_Element: Year
Characters: 2005
End_Element:Year
Start_Element: Month
Characters: 11
End_Element:Month
Start_Element: Day
Characters: 10
End_Element:Day
End_Element:DateRevised
Start_Element: DateEstablished
Start_Element: Year
Characters: 2006
End_Element:Year
Start_Element: Month
Characters: 01
End_Element:Month
Start_Element: Day
Characters: 01
End_Element:Day
End_Element:DateEstablished
Start_Element: ActiveMeSHYearList
Start_Element: Year
Characters: 2006
End_Element:Year
Start_Element: Year
Characters: 2006A
End_Element:Year
End_Element:ActiveMeSHYearList
Start_Element: AllowableQualifiersList
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000145
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: classification
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: CL
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000187
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: drug effects
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: DE
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000201
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: enzymology
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: EN
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000235
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: genetics
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: GE
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000254
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: growth & development
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: GD
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000276
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: immunology
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: IM
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000302
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: isolation & purification
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: IP
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000378
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: metabolism
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: ME
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000472
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: pathogenicity
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: PY
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000502
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: physiology
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: PH
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000528
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: radiation effects
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: RE
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000648
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: ultrastructure
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: UL
End_Element:Abbreviation
End_Element:AllowableQualifier
Start_Element: AllowableQualifier
Start_Element: QualifierReferredTo
Start_Element: QualifierUI
Characters: Q000737
End_Element:QualifierUI
Start_Element: QualifierName
Start_Element: String
Characters: chemistry
End_Element:String
End_Element:QualifierName
End_Element:QualifierReferredTo
Start_Element: Abbreviation
Characters: CH
End_Element:Abbreviation
End_Element:AllowableQualifier
End_Element:AllowableQualifiersList
Start_Element: Annotation
Characters: infection: coordinate IM with INFLUENZA, HUMAN (IM) in humans, or INFLUENZA IN BIRDS (IM) in birds, or ORTHOMYXOVIRIDAE INFECTIONS (IM) in other animals
  
End_Element:Annotation
Start_Element: HistoryNote
Characters: 2006
  
End_Element:HistoryNote
Start_Element: PublicMeSHNote
Characters: 2006
  
End_Element:PublicMeSHNote
Start_Element: PreviousIndexingList
Start_Element: PreviousIndexing
Characters: Influenza A Virus (1999-2005)
End_Element:PreviousIndexing
End_Element:PreviousIndexingList
Start_Element: TreeNumberList
Start_Element: TreeNumber
Characters: B04.820.545.405.400.900
End_Element:TreeNumber
Start_Element: TreeNumber
Characters: B04.909.777.545.405.400.900
End_Element:TreeNumber
End_Element:TreeNumberList
Start_Element: RecordOriginatorsList
Start_Element: RecordOriginator
Characters: ags
End_Element:RecordOriginator
Start_Element: RecordMaintainer
Characters: ags
End_Element:RecordMaintainer
Start_Element: RecordAuthorizer
Characters: ags
End_Element:RecordAuthorizer
End_Element:RecordOriginatorsList
Start_Element: ConceptList
Start_Element: Concept
Attribut: PreferredConceptYN Wert: Y
Start_Element: ConceptUI
Characters: M0491459
End_Element:ConceptUI
Start_Element: ConceptName
Start_Element: String
Characters: Influenza A Virus, H9N2 Subtype
End_Element:String
End_Element:ConceptName
Start_Element: ScopeNote
Characters: A subtype of INFLUENZA A VIRUS comprised of the surface proteins hemagglutinin 9 and neuraminidase 2. The H9N2 subtype usually infects domestic birds (POULTRY) but there have been some human infections reported.
    
End_Element:ScopeNote
Start_Element: SemanticTypeList
Start_Element: SemanticType
Start_Element: SemanticTypeUI
Characters: T005
End_Element:SemanticTypeUI
Start_Element: SemanticTypeName
Characters: Virus
End_Element:SemanticTypeName
End_Element:SemanticType
End_Element:SemanticTypeList
Start_Element: TermList
Start_Element: Term
Attribut: ConceptPreferredTermYN Wert: Y
Attribut: IsPermutedTermYN Wert: N
Attribut: LexicalTag Wert: ABX
Attribut: PrintFlagYN Wert: Y
Attribut: RecordPreferredTermYN Wert: Y
Start_Element: TermUI
Characters: T658149
End_Element:TermUI
Start_Element: String
Characters: Influenza A Virus, H9N2 Subtype
End_Element:String
Start_Element: DateCreated
Start_Element: Year
Characters: 2005
End_Element:Year
Start_Element: Month
Characters: 11
End_Element:Month
Start_Element: Day
Characters: 10
End_Element:Day
End_Element:DateCreated
Start_Element: ThesaurusIDlist
Start_Element: ThesaurusID
Characters: NLM (2006)
End_Element:ThesaurusID
End_Element:ThesaurusIDlist
End_Element:Term
Start_Element: Term
Attribut: ConceptPreferredTermYN Wert: N
Attribut: IsPermutedTermYN Wert: N
Attribut: LexicalTag Wert: ABX
Attribut: PrintFlagYN Wert: Y
Attribut: RecordPreferredTermYN Wert: N
Start_Element: TermUI
Characters: T658150
End_Element:TermUI
Start_Element: String
Characters: H9N2 Virus
End_Element:String
Start_Element: DateCreated
Start_Element: Year
Characters: 2005
End_Element:Year
Start_Element: Month
Characters: 11
End_Element:Month
Start_Element: Day
Characters: 10
End_Element:Day
End_Element:DateCreated
Start_Element: ThesaurusIDlist
Start_Element: ThesaurusID
Characters: NLM (2006)
End_Element:ThesaurusID
End_Element:ThesaurusIDlist
End_Element:Term
Start_Element: Term
Attribut: ConceptPreferredTermYN Wert: N
Attribut: IsPermutedTermYN Wert: Y
Attribut: LexicalTag Wert: ABX
Attribut: PrintFlagYN Wert: N
Attribut: RecordPreferredTermYN Wert: N
Start_Element: TermUI
Characters: T658150
End_Element:TermUI
Start_Element: String
Characters: H9N2 Viruses
End_Element:String
End_Element:Term
Start_Element: Term
Attribut: ConceptPreferredTermYN Wert: N
Attribut: IsPermutedTermYN Wert: Y
Attribut: LexicalTag Wert: ABX
Attribut: PrintFlagYN Wert: N
Attribut: RecordPreferredTermYN Wert: N
Start_Element: TermUI
Characters: T658150
End_Element:TermUI
Start_Element: String
Characters: Virus, H9N2
End_Element:String
End_Element:Term
Start_Element: Term
Attribut: ConceptPreferredTermYN Wert: N
Attribut: IsPermutedTermYN Wert: Y
Attribut: LexicalTag Wert: ABX
Attribut: PrintFlagYN Wert: N
Attribut: RecordPreferredTermYN Wert: N
Start_Element: TermUI
Characters: T658150
End_Element:TermUI
Start_Element: String
Characters: Viruses, H9N2
End_Element:String
End_Element:Term
End_Element:TermList
End_Element:Concept
End_Element:ConceptList
End_Element:DescriptorRecord
End_Element:DescriptorRecordSet

Sorry, haben sich durch die Ausgebe ein paar Zeichenkombinatione ein eingeschliechen
die im Editer etwas lustig wirken.

Bin jetzt am Testen welche Version ich einsetzen soll, Cursor mit Validierung oder die Iterator-Variante.
Für mich mal wichtig es läuft und ich komme an meine Daten ran.

Hoffe es bringt was ;)

Felix
 
Zurück