<!ELEMENT spanPriceFile (
	created?,
	(contractUpdate | priceUpdate)*
	)>
	
<!ELEMENT contractUpdate (
	updateDate?,
	updateTime?,
	replace?,
	ec,
	exch,
	((pfCode, pfType) | pfId),
	(phy | debt | eDebt | equity | fut | cmb | series | (pe, undPe, opt))
	)>
	
<!ELEMENT priceUpdate (
	updateDate?,
	updateTime?,
	ec,
	exch,
	((pfCode, pfType) | pfId), 
	((((cusip | isin) | (cusip, isin))?, pe?, undPe?, o?, k?) | cId), 
	price
	)>
	
<!ELEMENT phy (
	cId?,
	alias*,
	pe?,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	haircut?,
	haircutRsv?,
	venue*,
	scanRate*
	)>

<!ELEMENT debt (
	cId?,
	alias*,
	((cusip	|	isin) | (cusip, isin)), 
	pe?,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	desc?,
	type?,
	subType?,
	setlDate?,
	cpnRate?,
	cpnFreq?,
	cpnNextDate?,
	cpnLastDate?,
	accruedIntr?,
	duration?,
	lbe?,
	venue*,
	scanRate*
	)>
	
<!ELEMENT eDebt (
	cId?,
	alias*,
	((cusip | isin) | (cusip, isin)),
	pe?,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	desc?,
	type?,
	subType?,
	setlDate?,
	cpnRate?,
	cpnFreq?,
	cpnNextDate?,
	cpnLastDate?,
	accruedIntr,
	duration?,
	lbe?,
	futEqFactor,
	(undC | undCLog)+,
	venue*
	)>

<!ELEMENT equity (
	cId?,
	alias*,
	((cusip | isin) | (cusip, isin)),
	pe?,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	desc?,
	type?,
	subType?,
	divRate?,
	haircut?,
	haircutRsv?,
	venue*,
	scanRate*
	)>

<!ELEMENT fut (
	cId?,
	alias*,
	pe,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	setlDate?,
	t?,
	fdot?,
	ldot?,
	fDeliv?,
	lDeliv?,
	(undC | undCLog),
	intrRate*,
	venue*,
	scanRate*
	)>

<!ELEMENT series (
	pe,
	alias*,
	v?,
	volSrc?,
	volType?,
	setlDate?,
	t?,
	fdot?,
	ldot?,
	seriesSetlMeth?,
	cvf?,
	svf?,
	sc?,
	refPriceFlag?,
	refPrice?,
	(undC | undCLog),
	intrRate*,
	divRate?,
	venue*,
	scanRate*,
	opt*
	)>

<!ELEMENT opt (
	cId?,
	alias*,
	o,
	k,
	p,
	pq?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?
	)>

<!ELEMENT cmb (
	cId?,
	alias*,
	pe?,
	p?,
	priceType?,
	d?,
	v?,
	volType?,
	cvf?,
	val?,
	sc?,
	setlDate?,
	t?,
	fdot?,
	ldot?,
	(undC | undCLog)+,
	venue*,
	scanRate*
	)>

<!ELEMENT undC (
	exch,
	pfId,
	cId,
	s,
	i
	)>

<!ELEMENT undCLog (
	exch,
	pfCode,
	pfType,
	((cusip | isin) | (cusip, isin))?, 
	pe?,
	undPe?,
	o?,
	k?,
	s,
	i
	)>

<!ELEMENT venue (
	id,
	hours?,
	listDesc?,
	flexDesc?,
	strikeDesc?,
	tick*,
	limits?,
	limitsDesc?,
	fdotRule?,
	ldotRule?
	)>

<!ELEMENT tick (
	id,
	val,
	loVal?,
	hiVal?,
	desc?
	)>

<!ELEMENT alias (
	aType, 
	aVal
	)>

<!ELEMENT intrRate (
	val,
	rl?,
	cpm?,
	tm?,
	exm?
	)>

<!ELEMENT divRate (
	val, 
	div*
	)>

<!ELEMENT div (
	val,
	((dtm | setlDate) | (dtm, setlDate))
	)>

<!ELEMENT scanRate (
	r, 
	((priceScan | priceScanPct) | (priceScan, priceScanPct)), 
	((volScan | volScanPct) | (volScan, volScanPct))
	)>

<!ELEMENT replace (#PCDATA)>
<!ELEMENT r (#PCDATA)>
<!ELEMENT priceScan (#PCDATA)>
<!ELEMENT priceScanPct (#PCDATA)>
<!ELEMENT volScan (#PCDATA)>
<!ELEMENT volScanPct (#PCDATA)>
<!ELEMENT created (#PCDATA)>
<!ELEMENT pfId (#PCDATA)>
<!ELEMENT cId (#PCDATA)>
<!ELEMENT pe (#PCDATA)>
<!ELEMENT hours (#PCDATA)>
<!ELEMENT limits (#PCDATA)>
<!ELEMENT limitsDesc (#PCDATA)>
<!ELEMENT listDesc (#PCDATA)>
<!ELEMENT flexDesc (#PCDATA)>
<!ELEMENT strikeDesc (#PCDATA)>
<!ELEMENT fdotRule (#PCDATA)>
<!ELEMENT ldotRule (#PCDATA)>
<!ELEMENT loVal (#PCDATA)>
<!ELEMENT hiVal (#PCDATA)>
<!ELEMENT aType (#PCDATA)>
<!ELEMENT aVal (#PCDATA)>
<!ELEMENT v (#PCDATA)>
<!ELEMENT cvf (#PCDATA)>
<!ELEMENT volSrc (#PCDATA)>
<!ELEMENT seriesSetlMeth (#PCDATA)>
<!ELEMENT setlDate (#PCDATA)>
<!ELEMENT t (#PCDATA)>
<!ELEMENT fdot (#PCDATA)>
<!ELEMENT ldot (#PCDATA)>
<!ELEMENT sc (#PCDATA)>
<!ELEMENT cmbType (#PCDATA)>
<!ELEMENT rl (#PCDATA)>
<!ELEMENT cpm (#PCDATA)>
<!ELEMENT tm (#PCDATA)>
<!ELEMENT exm (#PCDATA)>
<!ELEMENT dtm (#PCDATA)>
<!ELEMENT p (#PCDATA)>
<!ELEMENT d (#PCDATA)>
<!ELEMENT cusip (#PCDATA)>
<!ELEMENT isin (#PCDATA)>
<!ELEMENT desc (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT subType (#PCDATA)>
<!ELEMENT cpnRate (#PCDATA)>
<!ELEMENT cpnFreq (#PCDATA)>
<!ELEMENT cpnNextDate (#PCDATA)>
<!ELEMENT cpnLastDate (#PCDATA)>
<!ELEMENT accruedIntr (#PCDATA)>
<!ELEMENT duration (#PCDATA)>
<!ELEMENT lbe (#PCDATA)>
<!ELEMENT fDeliv (#PCDATA)>
<!ELEMENT lDeliv (#PCDATA)>
<!ELEMENT futEqFactor (#PCDATA)>
<!ELEMENT o (#PCDATA)>
<!ELEMENT k (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT updateDate (#PCDATA)>
<!ELEMENT updateTime (#PCDATA)>
<!ELEMENT ec (#PCDATA)>
<!ELEMENT exch (#PCDATA)>
<!ELEMENT pfCode (#PCDATA)>
<!ELEMENT pfType (#PCDATA)>
<!ELEMENT undPe (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT s (#PCDATA)>
<!ELEMENT i (#PCDATA)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT val (#PCDATA)>
<!ELEMENT haircut (#PCDATA)>
<!ELEMENT haircutRsv (#PCDATA)>
<!ELEMENT priceType (#PCDATA)>
<!ELEMENT volType (#PCDATA)>
<!ELEMENT pq (#PCDATA)>
<!ELEMENT refPrice (#PCDATA)>
<!ELEMENT refPriceFlag (#PCDATA)>
<!ELEMENT svf (#PCDATA)>

