void preProcessDataTypeList(XmlPullParser xmlParser, boolean isClasses, TaskMonitor monitor)
			throws CancelledException {

		monitor.setMessage("Pre-processing PDB datatypes...");

		String elementType = isClasses ? "classes" : "datatypes";

		while (xmlParser.hasNext()) {
			monitor.checkCancelled();
			XmlElement elem = xmlParser.peek();
			if (elem.isEnd() && elem.getName().equals(elementType)) {
				xmlParser.next();
				break;
			}

			CompositeDefinition compositeDefinition = new CompositeDefinition(xmlParser);

			if (!compositeQueue.containsKey(compositeDefinition.name)) {
				// could be problematic if duplicate names represent two different composites
				if (compositeDefinition.isClass) {
					pdbParser.predefineClass(compositeDefinition.name);
				}
				compositeQueue.put(compositeDefinition.name, compositeDefinition);

				if (pdbParser.getCachedDataType(compositeDefinition.name) != null) {
					log.appendMsg("PDB", "Data type name collision - unable to define " +
						compositeDefinition.kind.getCamelName() + ": " + compositeDefinition.name);
					continue;
				}

//				/** Can this be avoided if using dependency ordering ??
				// NOTE: currently composite may grow if zero-length array used
				// since we must currently allocate one element since 0-length array 
				// not yet supported.
				Composite composite =
					pdbParser.createComposite(compositeDefinition.kind, compositeDefinition.name);
				if (composite == null) {
					log.appendMsg("PDB", "Unsupported datatype kind (" + compositeDefinition.kind +
						"): " + compositeDefinition.name);
					continue;
				}
//								if (!isClasses) {
//									int length = XmlUtilities.parseInt(elem.getAttribute("length"));
//									PdbUtil.ensureSize(length, composite, log);
//								}
				pdbParser.cacheDataType(compositeDefinition.name, composite);
//				**/
			}
		}
	}
Perform parsing and caching of composite types 
@param monitor task monitor
@throws CancelledException if task cancelled
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb/ApplyDataTypes.java