<!ELEMENT posFile (
	spanVersion?, 
	fileFormat?, 
	created?, 
	pointInTime+
	)>

<!ELEMENT spanVersion (#PCDATA)>

<!ELEMENT fileFormat (#PCDATA)>

<!ELEMENT created (#PCDATA)>

<!ELEMENT pointInTime (
	date, 
	isSetl, 
	setlQualifier?, 
	time?, 
	run?, 
	portfolio*
	)>

<!ELEMENT date (#PCDATA)>

<!ELEMENT isSetl (#PCDATA)>

<!ELEMENT setlQualifier (#PCDATA)>

<!ELEMENT time (#PCDATA)>

<!ELEMENT run (#PCDATA)>

<!ELEMENT portfolio (
	firm, 
	acctId, 
	acctType, 
	isCust, 
	seg?,
	acctSubType?,
	parentAcct?,
	isNew,
	qib?,
	pclient?,
	custPortUseLov?,
	currency,
	ledgerBal,
	ote,
	securities,
	lue?,
	ecPort*
	)>

<!ELEMENT firm (#PCDATA)>
<!ELEMENT acctId (#PCDATA)>
<!ELEMENT acctType (#PCDATA)>
<!ELEMENT isCust (#PCDATA)>
<!ELEMENT seg (#PCDATA)>

<!ELEMENT acctSubType (
	acctSubTypeCode,
	value
	)>

<!ELEMENT acctSubTypeCode (#PCDATA)>
<!ELEMENT value (#PCDATA)>
<!ELEMENT isNew (#PCDATA)>
<!ELEMENT pclient (#PCDATA)>
<!ELEMENT qib (#PCDATA)>
<!ELEMENT custPortUseLov (#PCDATA)>
<!ELEMENT currency (#PCDATA)>
<!ELEMENT ledgerBal (#PCDATA)>
<!ELEMENT ote (#PCDATA)>
<!ELEMENT lue (#PCDATA)>
<!ELEMENT securities (#PCDATA)>

<!ELEMENT parentAcct (
	firm,
	acctId,
	seg?
	)>
	
<!ELEMENT ecPort (
	ec, 
	ccPort*
	)>
	
<!ELEMENT ccPort (
	cc,
	r?,
	currency?,
	pss?,
	(np | ncp | gp | gcp | edp)*
	)>
	
<!ELEMENT ec (#PCDATA)>
<!ELEMENT cc (#PCDATA)>
<!ELEMENT r (#PCDATA)>
<!ELEMENT pss (#PCDATA)>

<!ELEMENT np (
	exch, 
	pfCode,
	pfType,
	((cusip | isin) | (cusip, isin))?,
	pe?,
	undPe?,
	o?,
	k?,
	net,
	ots?,
	aots?
	)>
	
<!ELEMENT exch (#PCDATA)>
<!ELEMENT pfCode (#PCDATA)>
<!ELEMENT pfType (#PCDATA)>
<!ELEMENT cusip (#PCDATA)>
<!ELEMENT isin (#PCDATA)>
<!ELEMENT pe (#PCDATA)>
<!ELEMENT undPe (#PCDATA)>
<!ELEMENT o (#PCDATA)>
<!ELEMENT k (#PCDATA)>
<!ELEMENT net (#PCDATA)>

<!ELEMENT ncp (
	exch,
	pfCode,
	pfType,
	((cusip | isin) | (cusip, isin))?, 
	pe?,
	undPe?,
	o?,
	k?,
	net,
	long,
	short
	)>
	
<!ELEMENT long (#PCDATA)>
<!ELEMENT short (#PCDATA)>

<!ELEMENT ots (ot*)>

<!ELEMENT ot (
	date,
	net,
	oqty?,
	p?,
	mp?,
	mpd?,
	ote?,
	pl?,
	ts?,
	ctid?,
	lts?
	)>
	
<!ELEMENT lts (
	date,
	net,
	p?,
	pl?,
	ts?,
	ctid
	)>
	
<!ELEMENT otss (ot*)>

<!ELEMENT aots (aot*)>

<!ELEMENT aot (
	date, 
	net, 
	p?
	)>

<!ELEMENT pl (#PCDATA)>
<!ELEMENT p (#PCDATA)>
<!ELEMENT oqty (#PCDATA)>
<!ELEMENT mp (#PCDATA)>
<!ELEMENT mpd (#PCDATA)>
<!ELEMENT ts (#PCDATA)>
<!ELEMENT ctid (#PCDATA)>

<!ELEMENT gp (
	exch,
	pfCode,
	pfType, 
	((cusip | isin) | (cusip, isin))?,
	pe?,
	undPe?,
	o?,
	k?,
	net,
	long,
	short,
	nl?,
	ns?,
	ots?,
	otss?,
	aots?
	)>
	
<!ELEMENT nl (#PCDATA)>
<!ELEMENT ns (#PCDATA)>
<!ELEMENT nlEquiv (#PCDATA)>
<!ELEMENT nsEquiv (#PCDATA)>
<!ELEMENT nlSplit (#PCDATA)>
<!ELEMENT nsSplit (#PCDATA)>

<!ELEMENT gcp (
	exch,
	pfCode,
	pfType,
	((cusip | isin) | (cusip, isin))?,
	pe?,
	undPe?,
	o?,
	k?,
	net,
	long,
	short,
	iaLong?,
	iaShort?,
	ieLong?,
	ieShort?,
	nl?,
	ns?
	)>
	
<!ELEMENT iaLong (#PCDATA)>
<!ELEMENT iaShort (#PCDATA)>
<!ELEMENT ieLong (#PCDATA)>
<!ELEMENT ieShort (#PCDATA)>

<!ELEMENT edp (
	exch,
	pfCode,
	pfType,
	((cusip | isin) | (cusip, isin))?,
	pe?,
	undPe?,
	o?,
	k?,
	no,
	nrps,
	nrpn
	)>
	
<!ELEMENT no (#PCDATA)>
<!ELEMENT nrps (#PCDATA)>
<!ELEMENT nrpn (#PCDATA)>

