wInsight DTD

This is a sample of the wInsight DTD.

<!--

WINST.DTD - Document Type Definition file for wInsight 6.x database

-->

<!ELEMENT wInsightDb (

Columns?,

Units?,

Structures?,

Weights?,

Thresholds?,

Calendars?,

CalendarDets?,

Contractors?,

Contracts?,

Periods?,

Cprs?,

EacMrs?,

BaselineChgs?,

Milestones?,

Elements?,

EarnedValues?,

Manpowers?,

FutureEtcs?,

NarrPers?,

NarrElems?,

NarrElemPers?,

EuwtLinks?,

Projects?,

Tasks?,

 TaskLinks?,

TaskPreds?,

Users?,

UserContracts?,

FundTypes?,

ClinTypes?,

CfsrBlock12Types?,

Block11s?,

Block12s?,

CfsrThresholds?,

Cfsrs?,

CfsrNarrs?,

OmbMilestones?,

ElemLinks?

)>

<!--

Enter version as "6,3,1,0" for documents matching this DTD.

-->

<!ATTLIST wInsightDb version CDATA #REQUIRED>

<!--

Column

-->

<!ELEMENT Columns (Column+)>

<!ELEMENT Column (

TableID,

ColName,

DataType,

Length,

SQL,

Alias,

Formula?

)>

<!--

Prefix ID attribute with 'col' - e.g. col1, col2, etc.

TableID: enum { Contract=1, Period=2, Element=4, EarnedValue=5, Project=6, Task=7, FutureEtc=9 };

Note: The combination of TableID and ColName must be unique.

DataType(Length): enum { short(2)=1, long(4), double(8), date(8), str(1-255) }

SQL: SQL statement for field (e.g. Table.Field

 Alias: Display name for ColName (optional)

Formula: SQL expression for column (optional)

-->

<!ATTLIST Column id ID #REQUIRED>

<!ELEMENT TableID (#PCDATA)>

<!ELEMENT ColName (#PCDATA)>

<!ELEMENT DataType (#PCDATA)>

<!ELEMENT Length (#PCDATA)>

<!ELEMENT SQL (#PCDATA)>

<!ELEMENT Alias (#PCDATA)>

<!ELEMENT Formula (#PCDATA)>

<!--

Unit

-->

<!ELEMENT Units (Unit+)>

<!ELEMENT Unit (

UnitName,

Scale?,

Symbol?,

Prefix?,

Pad?,

UnitSeq?,

RptSeq?

)>

<!--

Prefix ID attribute with 'un' - e.g. un1, un2, etc.

Standard units are:

Dollars: un1

Hours: un2

EQP: un3

-->

<!ATTLIST Unit id ID #REQUIRED>

<!--

Name is unit name, plural, e.g., Dollars, Hours, EQP

Scale: a power of 10, e.g. scale="3" defines values in thousands

Symbol: e.g. $ for Dollars, H for Hours.

Prefix: 'F' for following, e.g '10H', 'T' for leading, e.g. '$100'

Pad: 'T' if symbol is separated from value, e.g. '100 H', 'F' if not: '$100'.

UnitSeq: Order to display units in Units menu, or zero (0) to hide.

RptSeq: Order to display units in Element of Cost report, or zero (0) to hide.

-->

<!ELEMENT UnitName (#PCDATA)>

<!ELEMENT Scale (#PCDATA)>

<!ELEMENT Symbol (#PCDATA)>

<!ELEMENT Prefix (#PCDATA)>

<!ELEMENT Pad (#PCDATA)>

<!ELEMENT UnitSeq (#PCDATA)>

<!ELEMENT RptSeq (#PCDATA)>

<!--

Structure

-->

<!ELEMENT Structures (Structure+)>

<!ELEMENT Structure (

StruName,

 StruDesc?

)>

<!--

Prefix ID with 'st' - e.g. st1, st2, etc.

 Standard structures are:

WBS: st1

OBS: st2

Indirect: st3

-->

<!ATTLIST Structure id ID #REQUIRED>

<!ELEMENT StruName (#PCDATA)>

<!ELEMENT StruDesc (#PCDATA)>

<!--

Weight

-->

<!ELEMENT Weights (Weight+)>

<!ELEMENT Weight (

WeightDesc,

CostWt,

PerfFctr

)>

<!--

Prefix ID attribute with 'wt' - e.g. wt1, wt2, etc.

-->

<!ATTLIST Weight id ID #REQUIRED>

<!ELEMENT WeightDesc (#PCDATA)>

<!--

CostWt is a number between 0 and 100, inclusive

PerfFctr is Cost/Schedule weighting (default 1.0)

-->

<!ELEMENT CostWt (#PCDATA)>

<!ELEMENT PerfFctr (#PCDATA)>

<!--

Threshold

-->

<!ELEMENT Thresholds (Threshold+)>

<!ELEMENT Threshold (

ThreshDesc,

ThreshSet,

 ThreshSet,

ThreshSet,

ThreshSet

)>

<!--

Prefix ID attribute with 'th' - e.g. th1, th2, etc.

-->

<!ATTLIST Threshold id ID #REQUIRED>

<!ELEMENT ThreshDesc (#PCDATA)>

<!ELEMENT ThreshSet (

 PctCmp,

CurCostD?,

CurCostP?,

CurSchD?,

CurSchP?,

CumCostD?,

CumCostP?,

CumSchD?,

CumSchP?,

VacD?,

VacP?,

AndOr?

)>

<!ATTLIST ThreshSet range (1 | 2 | 3 | 4) #REQUIRED>

<!--

ThreshSet applies from % complete range of previous (or 0) to

% complete value given in PctCmp field. Default is 97, 98, 99, 100.

This creates ranges of 0-97, 97-98, 98-99, 99-100.

-->

<!ELEMENT PctCmp (#PCDATA)>

<!ELEMENT CurCostD (#PCDATA)>

<!ELEMENT CurCostP (#PCDATA)>

<!ELEMENT CurSchD (#PCDATA)>

<!ELEMENT CurSchP (#PCDATA)>

<!ELEMENT CumCostD (#PCDATA)>

<!ELEMENT CumCostP (#PCDATA)>

<!ELEMENT CumSchD (#PCDATA)>

<!ELEMENT CumSchP (#PCDATA)>

<!ELEMENT VacD (#PCDATA)>

<!ELEMENT VacP (#PCDATA)>

<!--

AndOr: 'A', 'O', or 'N'

AND = exceeds Cost AND Sch thresh; OR = Cost OR Sch thresh; NOT = ignore

-->

<!ELEMENT AndOr (#PCDATA)>

<!--

Calendar

-->

<!ELEMENT Calendars (Calendar+)>

<!ELEMENT Calendar (

CalDesc,

DateFmt?,

FyEnd?

)>

<!--

Prefix ID attribute with 'cal' - e.g. cal1, cal2, etc.

-->

<!ATTLIST Calendar id ID #REQUIRED>

<!ELEMENT CalDesc (#PCDATA)>

<!--

DateFmt specifies how periods should be displayed.

Default is "!%b %y", e.g. JUN 99.

%d  Day of month (01-31)

%m  Two digit month (01-12)

%b  Month abbreviation (Jan, Feb, Mar, ...)

%y  Two digit year (00 - 99)

%Y  Four digit year (1999, 2000, ...)

%f  Two-digit fiscal year

%F  Four digit fiscal year

%q  Quarter number (1-4)

%p  Period number (see below)

! (prefix) Use upper case (JUN vs. Jun)

-->

<!ELEMENT DateFmt (#PCDATA)>

<!--

Specifies FY end date in mm.dd format. The default value

is December 31st, represented as '12.31'.

-->

<!ELEMENT FyEnd (#PCDATA)>

<!--

CalendarDet

-->

<!ELEMENT CalendarDets (CalendarDet+)>

<!ELEMENT CalendarDet (

EndDate,

PerNum?,

ReportPer?,

HrsInPer?,

AltDate?,

FeeLoadSp?,

FeeLoadA?,

FeeLoadEtc?,

OhLoadSp?,

OhLoadA?,

OhLoadEtc?,

ComLoadSp?,

ComLoadA?,

ComLoadEtc?,

GaLoadSp?,

GaLoadA?,

GaLoadEtc?

)>

<!--

cal_id must refer to a previously defined Calendar

-->

<!ATTLIST CalendarDet cal_id IDREF #REQUIRED>

<!ELEMENT EndDate (#PCDATA)>

<!--

PerNum is the period number in the current fiscal year. By default,

it is the ordinal value of the current month (1-12).

-->

<!ELEMENT PerNum (#PCDATA)>

<!--

 'T' if period is a reporting period, 'F' otherwise

-->

<!ELEMENT ReportPer (#PCDATA)>

<!ELEMENT HrsInPer (#PCDATA)>

<!ELEMENT AltDate (#PCDATA)>

<!ELEMENT FeeLoadSp (#PCDATA)>

<!ELEMENT FeeLoadA (#PCDATA)>

<!ELEMENT FeeLoadEtc (#PCDATA)>

<!ELEMENT OhLoadSp (#PCDATA)>

<!ELEMENT OhLoadA (#PCDATA)>

<!ELEMENT OhLoadEtc (#PCDATA)>

<!ELEMENT ComLoadSp (#PCDATA)>

<!ELEMENT ComLoadA (#PCDATA)>

<!ELEMENT ComLoadEtc (#PCDATA)>

<!ELEMENT GaLoadSp (#PCDATA)>

<!ELEMENT GaLoadA (#PCDATA)>

<!ELEMENT GaLoadEtc (#PCDATA)>

<!--

Contractor

-->

<!ELEMENT Contractors (Contractor+)>

<!ELEMENT Contractor (CtrName, Abbr?, Address?, Locator?)>

<!--

Prefix ID attribute with 'ctr' - e.g. ctr1, ctr2, etc.

-->

<!ATTLIST Contractor id ID #REQUIRED>

<!ELEMENT CtrName (#PCDATA)>

<!ELEMENT Abbr (#PCDATA)>

<!ELEMENT Address (Addr1?, Addr2?, City?, State?, Country?, Zip?)>

<!ELEMENT Addr1 (#PCDATA)>

<!ELEMENT Addr2 (#PCDATA)>

<!ELEMENT City (#PCDATA)>

<!ELEMENT State (#PCDATA)>

<!ELEMENT Zip (#PCDATA)>

<!ELEMENT Country (#PCDATA)>

<!--

 Locator IDType & IDCode values:

1 = D-U-N-S Number

9 = D-U-N-S + 4

10 = DOD Address Code

-->

<!ELEMENT Locator (IDType, IDCode)>

<!ELEMENT IDType (#PCDATA)>

<!ELEMENT IDCode (#PCDATA)>

<!--

Contract

-->

<!ELEMENT Contracts (Contract+)>

<!ELEMENT Contract (

ContrName,

ContrNum?,

ContrType?,

ProgName?,

ProgNum?,

ProgType?,

CtrID?,

SecurityText?,

RDQty?,

ProdQty?,

Manager?,

Analyst?,

ProgOffName?,

ProgOffSym?,

RptType?,

NegCost?,

TgtPrice?,

TgtFeeDol?,

TgtFeePct?,

ContrCeiling?,

MinFee?,

MaxFee?,

FixedFee?,

OrigAwdFee?,

 NonFeeBearCost?,

ShareAbove?,

ShareBelow?,

ChgPct?,

RedPct?,

YellowPct?,

GreenPct?,

 ContrDefinit?,

 ContrStart?,

WorkStart?,

LastItemDlv?,

ContrCompl?,

UserSym?,

CaoSym?,

CtrSym?,

RecalcFlags?,

SysDateID?,

CalID?,

F3UnitID?,

F4UnitID?,

F4StruID?,

CustID?,

CprDid?,

UserDefValue*

)>

<!--

Prefix ID attribute with 'cc' - e.g. cc1, cc2, etc.

-->

<!ATTLIST Contract id ID #REQUIRED>

<!ELEMENT ContrName (#PCDATA)>

<!ELEMENT ContrNum (#PCDATA)>

<!--

ContrType values are limited to 10 characters

CW = Cost Plus Award Fee

CX = Cost Plus Fixed Fee

CY = Cost Plus Incentive Fee

FD = Fixed Price Redetermination

FE = Fixed Price with Escalation

FI = Fixed Price Incentive

FR = Firm Fixed Price

TM = Time and Materials

OC = Other Contract Type (enter)

-->

<!ELEMENT ContrType (#PCDATA)>

<!ELEMENT ProgName (#PCDATA)>

<!ELEMENT ProgNum (#PCDATA)>

<!--

ProgType values are limited to 10 characters

RDT&E = Research, Development, Test and Evaluation

PROD = Production

RDT&E+P = Both RDT&E and Production

AD = Advanced Design

DEMVAL = Demonstration Validation

FSD = Full Scale Development

EMD = Engineering and Manufacturing Development

CONEXP = Concept Exploration

DEPLOY = Deployment

LRIP = Low Rate Initial Production

Other = (specify)

-->

<!ELEMENT ProgType (#PCDATA)>

<!--

CtrID must refer to an existing Contractor ('ctr1', 'ctr2', etc.)

 CustID must refer to an existing Contractor ('ctr1', 'ctr2', etc.)

-->

<!ELEMENT CtrID EMPTY>

<!ATTLIST CtrID ctr_id IDREF #REQUIRED>

<!ELEMENT CustID EMPTY>

<!ATTLIST CustID ctr_id IDREF #REQUIRED>

<!--

 0 for Aug 1996 DID

1 for Mar 2005 DID

-->

<!ELEMENT CprDid (#PCDATA)>

<!--

CalID must refer to an existing Calendar ('cal1', 'cal2', etc.)

-->

<!ELEMENT CalID EMPTY>

<!ATTLIST CalID cal_id IDREF #REQUIRED>

<!--

SecurityText values are limited to 30 characters, e.g.

Competition Sensitive

Unclassified

Confidential

Secret

Top Secret

-->

<!ELEMENT SecurityCode (#PCDATA)>

<!ELEMENT SecurityText (#PCDATA)>

<!ELEMENT RDQty (#PCDATA)>

<!ELEMENT ProdQty (#PCDATA)>

<!ELEMENT Manager (#PCDATA)>

<!ELEMENT Analyst (#PCDATA)>

<!ELEMENT ProgOffName (#PCDATA)>

<!ELEMENT ProgOffSym (#PCDATA)>

<!--

enum RptType { CPR, C/SSR }

When generating a C/SSR file, the OBS (i.e., Element Type = Func),

and Manpower elements  can be omitted, as well as all Cpr elements

after 'ShareBelow'.

-->

<!ELEMENT RptType (#PCDATA)>

<!--

Monetary values should be entered in the units specified

 by F3UnitID

-->

<!ELEMENT NegCost (#PCDATA)>

<!ELEMENT TgtPrice (#PCDATA)>

<!ELEMENT TgtFeeDol (#PCDATA)>

<!ELEMENT TgtFeePct (#PCDATA)>

<!ELEMENT ContrCeiling (#PCDATA)>

<!ELEMENT MinFee (#PCDATA)>

<!ELEMENT MaxFee (#PCDATA)>

<!ELEMENT FixedFee (#PCDATA)>

<!ELEMENT OrigAwdFee (#PCDATA)>

<!ELEMENT NonFeeBearCost (#PCDATA)>

<!ELEMENT ShareAbove (#PCDATA)>

<!ELEMENT ShareBelow (#PCDATA)>

<!ELEMENT ChgPct (#PCDATA)>

<!ELEMENT RedPct (#PCDATA)>

<!ELEMENT YellowPct (#PCDATA)>

<!ELEMENT GreenPct (#PCDATA)>

<!ELEMENT ContrDefinit (#PCDATA)>

<!ELEMENT ContrStart (#PCDATA)>

<!ELEMENT WorkStart (#PCDATA)>

<!ELEMENT LastItemDlv (#PCDATA)>

<!ELEMENT ContrCompl (#PCDATA)>

<!ELEMENT UserSym (#PCDATA)>

<!ELEMENT CaoSym (#PCDATA)>

<!ELEMENT CtrSym (#PCDATA)>

<!ELEMENT RecalcFlags (#PCDATA)>

<!--

Specifies the ID of the most recent period of data (cd1, cd2, etc.)

-->

<!ELEMENT SysDateID EMPTY>

<!ATTLIST SysDateID cd_id IDREF #REQUIRED>

<!--

Specifies the unit ID for Format 3 (Baseline) records

Must refer to an existing Unit

-->

<!ELEMENT F3UnitID  EMPTY>

<!ATTLIST F3UnitID un_id IDREF #REQUIRED>

<!--

Specifies the unit ID for Format4 (Manpower) records

Must refer to an existing Unit

-->

<!ELEMENT F4UnitID  EMPTY>

<!ATTLIST F4UnitID un_id IDREF #REQUIRED>

<!--

Specifies the structure ID for Format4 (Manpower) records

Must refer to an existing Structure

-->

<!ELEMENT F4StruID  EMPTY>

<!ATTLIST F4StruID st_id IDREF #REQUIRED>

<!--

col_id = ColumnID of associated Column

-->

<!ELEMENT UserDefValue (#PCDATA)>

<!ATTLIST UserDefValue col_id IDREF #REQUIRED>

<!--

Period

-->

<!ELEMENT Periods (Period+)>

<!ELEMENT Period (

EndDate,

CprID?,

PerNum?,

OrdVal?,

Alias?,

 UserDefValue*

)>

<!--

Prefix ID attribute with 'cd' - e.g. cd1, cd2, etc.

cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)

-->

<!ATTLIST Period

cc_id IDREF #REQUIRED

id ID #REQUIRED

>

<!--

Ordinal number of period from most recent (1) to earliest.

-->

<!ELEMENT OrdVal (#PCDATA)>

<!--

cd_id must refer to an existing Period (cd1, cd2, etc.)

-->

<!ELEMENT CprID EMPTY>

<!ATTLIST CprID cd_id IDREF #REQUIRED>

<!ELEMENT Cprs (Cpr+)>

<!ELEMENT Cpr (

RptStartDt?,

RptEndDt?,

LastContrChg?,

TotalNegChg?,

LastOTB?,

CBB?,

TAB?,

FundsObl?,

TgtFeeDol?,

 TgtFeePct?,

LastItemDlv?,

Incentives?,

ApprName?,

ApprTitle?,

ApprOrg?,

SubmDate?,

NegCost?,

AuthUnpr?,

TgtPrice?,

EstPrice?,

ContrCeiling?,

EstCeiling?,

TotalAwdFee?,

AwdFeePaid?,

AwdFeeRem?,

ContrCompl?,

PoEstCompl?,

CtrEstCompl?,

EacMin?,

EacML?,

EacMax?,

PoEpc?,

CaoEpc?,

TotalFund?,

MinFee?,

 MaxFee?,

FixedFee?,

NonFeeBearCost?,

ShareAbove?,

ShareBelow?,

TFloat?,

 FundLimit?,

AmtBilled?,

PmtRcvd?,

BaselineRevNum?,

BaselineRevDate?,

OmbConcur?,

PlanCompl?,

EvmsAppr?,

 BCumToDt?,

BCurrent?,

BCurP1?,

BCurP2?,

 BCurP3?,

BCurP4?,

BCurP5?,

BCurP6?,

BPer1?,

BPer2?,

BPer3?,

BPer4?,

BToCmp?,

BUndBudg?,

ECumToDt?,

ECurP1?,

ECurP2?,

 ECurP3?,

ECurP4?,

ECurP5?,

ECurP6?,

EPer1?,

EPer2?,

EPer3?,

EPer4?,

EToCmp?,

EUndBudg?,

F3Per1?,

F3Per2?,

F3Per3?,

F3Per4?,

F3PerTC?,

F3Txt1?,

F3Txt2?,

F3Txt3?,

F3Txt4?,

F4Per1?,

 F4Per2?,

F4Per3?,

F4Per4?,

F4PerTC?,

F4Txt1?,

F4Txt2?,

F4Txt3?,

F4Txt4?

)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST Cpr cd_id IDREF #REQUIRED>

<!--

 Monetary values should be entered in the units specified

by F3UnitID of the corresponding contract

-->

<!ELEMENT RptStartDt (#PCDATA)>

<!ELEMENT RptEndDt (#PCDATA)>

<!ELEMENT LastContrChg (#PCDATA)>

<!ELEMENT TotalNegChg (#PCDATA)>

<!ELEMENT LastOTB (#PCDATA)>

<!ELEMENT CBB (#PCDATA)>

<!ELEMENT TAB (#PCDATA)>

<!ELEMENT FundsObl (#PCDATA)>

<!ELEMENT Incentives (#PCDATA)>

<!ELEMENT ApprName (#PCDATA)>

<!ELEMENT ApprTitle (#PCDATA)>

<!ELEMENT ApprOrg (#PCDATA)>

<!ELEMENT SubmDate (#PCDATA)>

<!ELEMENT AuthUnpr (#PCDATA)>

<!ELEMENT EstPrice (#PCDATA)>

<!ELEMENT EstCeiling (#PCDATA)>

<!ELEMENT TotalAwdFee (#PCDATA)>

<!ELEMENT AwdFeePaid (#PCDATA)>

<!ELEMENT AwdFeeRem (#PCDATA)>

<!ELEMENT PoEstCompl (#PCDATA)>

<!ELEMENT CtrEstCompl (#PCDATA)>

<!ELEMENT EacMin (#PCDATA)>

<!ELEMENT EacML (#PCDATA)>

<!ELEMENT EacMax (#PCDATA)>

<!ELEMENT PoEpc (#PCDATA)>

<!ELEMENT CaoEpc (#PCDATA)>

<!ELEMENT TotalFund (#PCDATA)>

<!ELEMENT BCumToDt (#PCDATA)>

<!ELEMENT BCurrent (#PCDATA)>

<!ELEMENT BCurP1 (#PCDATA)>

<!ELEMENT BCurP2 (#PCDATA)>

<!ELEMENT BCurP3 (#PCDATA)>

<!ELEMENT BCurP4 (#PCDATA)>

<!ELEMENT BCurP5 (#PCDATA)>

<!ELEMENT BCurP6 (#PCDATA)>

<!ELEMENT BPer1 (#PCDATA)>

<!ELEMENT BPer2 (#PCDATA)>

<!ELEMENT BPer3 (#PCDATA)>

<!ELEMENT BPer4 (#PCDATA)>

<!ELEMENT BToCmp (#PCDATA)>

<!ELEMENT BUndBudg (#PCDATA)>

<!ELEMENT ECumToDt (#PCDATA)>

<!ELEMENT ECurP1 (#PCDATA)>

<!ELEMENT ECurP2 (#PCDATA)>

<!ELEMENT ECurP3 (#PCDATA)>

<!ELEMENT ECurP4 (#PCDATA)>

<!ELEMENT ECurP5 (#PCDATA)>

<!ELEMENT ECurP6 (#PCDATA)>

<!ELEMENT EPer1 (#PCDATA)>

<!ELEMENT EPer2 (#PCDATA)>

<!ELEMENT EPer3 (#PCDATA)>

<!ELEMENT EPer4 (#PCDATA)>

<!ELEMENT EToCmp (#PCDATA)>

<!ELEMENT EUndBudg (#PCDATA)>

<!ELEMENT F3Per1 (#PCDATA)>

<!ELEMENT F3Per2 (#PCDATA)>

<!ELEMENT F3Per3 (#PCDATA)>

<!ELEMENT F3Per4 (#PCDATA)>

<!ELEMENT F3PerTC (#PCDATA)>

<!ELEMENT F3Txt1 (#PCDATA)>

<!ELEMENT F3Txt2 (#PCDATA)>

<!ELEMENT F3Txt3 (#PCDATA)>

<!ELEMENT F3Txt4 (#PCDATA)>

<!ELEMENT F4Per1 (#PCDATA)>

<!ELEMENT F4Per2 (#PCDATA)>

<!ELEMENT F4Per3 (#PCDATA)>

<!ELEMENT F4Per4 (#PCDATA)>

<!ELEMENT F4PerTC (#PCDATA)>

<!ELEMENT F4Txt1 (#PCDATA)>

<!ELEMENT F4Txt2 (#PCDATA)>

<!ELEMENT F4Txt3 (#PCDATA)>

<!ELEMENT F4Txt4 (#PCDATA)>

<!ELEMENT TFloat (#PCDATA)>

<!ELEMENT FundLimit (#PCDATA)>

<!ELEMENT AmtBilled (#PCDATA)>

<!ELEMENT PmtRcvd (#PCDATA)>

<!ELEMENT BaselineRevNum (#PCDATA)>

<!ELEMENT BaselineRevDate (#PCDATA)>

<!ELEMENT OmbConcur (#PCDATA)>

<!ELEMENT PlanCompl (#PCDATA)>

<!ELEMENT EvmsAppr (#PCDATA)>

<!--

EacMr

-->

<!ELEMENT EacMrs (EacMr+)>

<!ELEMENT EacMr (

PoEac?,

PoMr?,

 CaoEac?,

CaoMr?,

ReprogSch?

)>

<!--

cd_id must refer to an existing Period (cd1, cd2, etc.)

un_id must refer to an existing Unit (un1, un2, etc.)

-->

<!ATTLIST EacMr

cd_id IDREF #REQUIRED

un_id IDREF #REQUIRED

>

<!ELEMENT PoEac (#PCDATA)>

<!ELEMENT PoMr (#PCDATA)>

<!ELEMENT CaoEac (#PCDATA)>

<!ELEMENT CaoMr (#PCDATA)>

<!ELEMENT ReprogSch (#PCDATA)>

<!--

BaselineChg

Omit this element when generating a C/SSR file.

-->

<!ELEMENT BaselineChgs (BaselineChg+)>

<!ELEMENT BaselineChg (

ChgDesc,

ChgValue

)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST BaselineChg cd_id IDREF #REQUIRED>

<!ELEMENT ChgDesc (#PCDATA)>

<!ELEMENT ChgValue (#PCDATA)>

<!--

 Milestones

-->

<!ELEMENT Milestones (Milestone+)>

<!ELEMENT Milestone (

 MilesDesc,

Baseline?,

Actual?,

Scheduled

)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST Milestone cd_id IDREF #REQUIRED>

<!ELEMENT MilesDesc (#PCDATA)>

<!ELEMENT Baseline (#PCDATA)>

<!ELEMENT Actual (#PCDATA)>

<!ELEMENT Scheduled (#PCDATA)>

<!--

Element

-->

<!ELEMENT Elements (Element+)>

<!ELEMENT Element(

WbsNum,

ElemDesc?,

ElemLevel?,

ElemHier?,

ParentID?,

ElemSeq?,

NumChild?,

SortVal?,

LinkVal?,

ElemType?,

EVM?,

LongDesc?,

NAFlag?,

ProjOff?,

 OffSym?,

OffExt?,

 RiskLevel?,

CtrID?,

Email?,

VarState?,

VarRejectReason?,

VarLastTimeStamp?,

VarStateAw?,

UserDefValue*

)>

<!--

Prefix ID attribute with 'ce' - e.g. ce1, ce2, etc.

cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)

st_id must refer to an existing Structure ('st1', 'st2', etc.)

-->

<!ATTLIST Element

id #REQUIRED

cc_id IDREF #REQUIRED

st_id IDREF #REQUIRED

>

<!--

WbsNum is limited to 50 characters. The following WBS Numbers are reserved:

[OH] - Overhead

[COM] - Cost of Money

[G&A] - General And Administrative

[UB] - Undistributed Budget

[MR] - Management Reserve

 These WBS elements are members of the "Indirect" structure (st_id="st3")

and are (formally) children of the level 1 WBS element (ref: ParentID below).

The following WBS Number is also reserved. It is generated automatically

during the recalculation process and need not be exported. If exported, its

cc_id and st_id attributes should reflect the contract and structure to which

it belongs. Similarly, its ParentID will be that of the level 1 element of

the structure to which it belongs.

[PMB] - Performance Measurement Baseline

-->

<!ELEMENT WbsNum (#PCDATA)>

<!ELEMENT ElemDesc (#PCDATA)>

<!--

ElemLevel may be omitted if ParentID is supplied.

Required for Level 1 element of each structure.

-->

<!ELEMENT ElemLevel (#PCDATA)>

<!--

ElemHier is the ordinal position of element in tree (hierarchical sort).

This is a calculated value and may be omitted.

-->

<!ELEMENT ElemHier (#PCDATA)>

<!--

ParentID is required except for Level 1 elements.

ce_id must refer to a previously defined element.

-->

<!ELEMENT ParentID EMPTY>

<!ATTLIST ParentID ce_id IDREF #REQUIRED>

<!--

If supplied, use the values below for the reserved elements.

ElemSeq: { OH=9994, COM=9995, G&A=9996, UB=9997, PMB=9998, MR=9999 }

-->

<!ELEMENT ElemSeq (#PCDATA)>

<!ELEMENT NumChild (#PCDATA)>

<!ELEMENT SortVal (#PCDATA)>

<!ELEMENT LinkVal (#PCDATA)>

<!ELEMENT ElemType (#PCDATA)>

<!ELEMENT EVM (#PCDATA)>

<!ELEMENT LongDesc (#PCDATA)>

<!--

For ordinary elements NAFlag = 0 for add, or 1 for non-add into parent.

For [OH], [COM], [G&A], [UB], and [MR] elements, NAFlag can be set on

a per-structure basis by setting the bit corresponding to (structure id - 1).

For example, NAFlag = 9 is non-add for st_id = 1 and 4 (2^0 + 2^3).

-->

<!ELEMENT NAFlag (#PCDATA)>

<!ELEMENT ProjOff (#PCDATA)>

<!ELEMENT OffSym (#PCDATA)>

<!ELEMENT OffExt (#PCDATA)>

<!--

RiskLevel: 'L', 'M', or 'H' (Low, Medium, High)

-->

<!ELEMENT RiskLevel (#PCDATA)>

<!ELEMENT Email (#PCDATA)>

<!ELEMENT VarState (#PCDATA)>

<!ELEMENT VarRejectReason (#PCDATA)>

<!ELEMENT VarLastUser (#PCDATA)>

<!ELEMENT VarTimeStamp (#PCDATA)>

<!ELEMENT VarStateAw (#PCDATA)>

<!--

EarnedValue

-->

<!ELEMENT EarnedValues (EarnedValue+)>

<!ELEMENT EarnedValue(

BcwsCum?,

BcwpCum?,

AcwpCum?,

Bac?,

Lre?,

BcwsAdj?,

BcwpAdj?,

AcwpAdj?,

ReprogCost?,

ReprogBudg?,

BcwsCur?,

BcwpCur?,

AcwpCur?,

UserEac?,

UserEacMin?,

UserEacMax?,

UserEacPdf?,

MovAvg3?,

MovAvg6?,

CumCpiFc?,

CurCpiFc?,

WtCostSch?,

LinRegr?,

PerfFctr?,

CpiSpi?,

Micom?,

Colors?,

Trends?,

 Fmt5Var?,

UserMethod?,

UserMethodMin?,

UserMethodMax?,

CumCpiFcAdj?,

CpiSpiAdj?,

UnfillOrd?,

Number1?,

Number2?,

Number3?,

Number4?,

Number5?,

Number6?,

Number7?,

Number8?,

Number9?,

Number10?,

SvAw?,

CvAw?,

VacAw?,

CpiCum3?,

CpiCum6?,

SpiCum3?,

SpiCum6?,

ReprogSch?,

UserColors?,

 UserTrends?,

UserDefValue*

)>

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

un_id must refer to an existing Unit ('un1', 'un2', etc.)

-->

<!ATTLIST EarnedValue

 ce_id IDREF #REQUIRED

 cd_id IDREF #REQUIRED

 un_id IDREF #REQUIRED

>

<!ELEMENT BcwsCum (#PCDATA)>

<!ELEMENT BcwpCum (#PCDATA)>

<!ELEMENT AcwpCum (#PCDATA)>

<!ELEMENT Bac (#PCDATA)>

<!ELEMENT Lre (#PCDATA)>

<!ELEMENT BcwsAdj (#PCDATA)>

<!ELEMENT BcwpAdj (#PCDATA)>

<!ELEMENT AcwpAdj (#PCDATA)>

<!ELEMENT ReprogCost (#PCDATA)>

<!ELEMENT ReprogBudg (#PCDATA)>

<!ELEMENT BcwsCur (#PCDATA)>

<!ELEMENT BcwpCur (#PCDATA)>

<!ELEMENT AcwpCur (#PCDATA)>

<!ELEMENT MovAvg3 (#PCDATA)>

<!ELEMENT MovAvg6 (#PCDATA)>

<!ELEMENT CumCpiFc (#PCDATA)>

<!ELEMENT CurCpiFc (#PCDATA)>

<!ELEMENT WtCostSch (#PCDATA)>

<!ELEMENT LinRegr (#PCDATA)>

<!--

 PerfFctr already declared in Weight, where it is a

paramenter used in the calculation of this EAC

<!ELEMENT PerfFctr (#PCDATA)>

-->

<!ELEMENT CpiSpi (#PCDATA)>

<!ELEMENT Micom (#PCDATA)>

<!ELEMENT Colors (#PCDATA)>

<!ELEMENT Trends (#PCDATA)>

<!ELEMENT Fmt5Var (#PCDATA)>

<!ELEMENT UserEac (#PCDATA)>

<!ELEMENT UserEacMin (#PCDATA)>

<!ELEMENT UserEacMax (#PCDATA)>

<!ELEMENT CumCpiFcAdj (#PCDATA)>

<!ELEMENT CpiSpiAdj (#PCDATA)>

<!ELEMENT UnfillOrd (#PCDATA)>

<!ELEMENT Number1 (#PCDATA)>

<!ELEMENT Number2 (#PCDATA)>

<!ELEMENT Number3 (#PCDATA)>

<!ELEMENT Number4 (#PCDATA)>

<!ELEMENT Number5 (#PCDATA)>

<!ELEMENT Number6 (#PCDATA)>

<!ELEMENT Number7 (#PCDATA)>

<!ELEMENT Number8 (#PCDATA)>

<!ELEMENT Number9 (#PCDATA)>

<!ELEMENT Number10 (#PCDATA)>

<!ELEMENT SvAw (#PCDATA)>

<!ELEMENT CvAw (#PCDATA)>

<!ELEMENT VacAw (#PCDATA)>

<!ELEMENT CpiCum3 (#PCDATA)>

<!ELEMENT CpiCum6 (#PCDATA)>

<!ELEMENT SpiCum3 (#PCDATA)>

<!ELEMENT SpiCum6 (#PCDATA)>

<!ELEMENT UserColors (#PCDATA)>

<!ELEMENT UserTrends (#PCDATA)>

<!--

UserEacPdf: enum { Uniform=0, Triangular=1, Normal=2, Beta=3 }

-->

<!ELEMENT UserEacPdf (#PCDATA)>

<!ELEMENT UserMethod (#PCDATA)>

<!ELEMENT UserMethodMin (#PCDATA)>

<!ELEMENT UserMethodMax (#PCDATA)>

<!--

 Manpower

Omit this element when generating a C/SSR file.

-->

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

rpt is 0 for Manpower LRE, 1 for Manpower BAC

Labor value should be entered in the units specified by F4UnitID

of the corresponding contract

-->

<!ELEMENT Manpowers (Manpower+)>

<!ELEMENT Manpower (

PlanCur?,

PlanCum?,

ActCur?,

ActCum?,

RptType?,

CurP1?,

CurP2?,

CurP3?,

 CurP4?,

CurP5?,

CurP6?,

 Per1?,

Per2?,

Per3?,

Per4?,

ToCmp?

)>

<!ATTLIST Manpower

ce_id IDREF #REQUIRED

 cd_id IDREF #REQUIRED

rpt (0 | 1) #REQUIRED

>

<!ELEMENT PlanCur (#PCDATA)>

<!ELEMENT PlanCum (#PCDATA)>

<!ELEMENT ActCur (#PCDATA)>

<!ELEMENT ActCum (#PCDATA)>

<!ELEMENT CurP1 (#PCDATA)>

<!ELEMENT CurP2 (#PCDATA)>

<!ELEMENT CurP3 (#PCDATA)>

<!ELEMENT CurP4 (#PCDATA)>

<!ELEMENT CurP5 (#PCDATA)>

<!ELEMENT CurP6 (#PCDATA)>

<!ELEMENT Per1 (#PCDATA)>

<!ELEMENT Per2 (#PCDATA)>

<!ELEMENT Per3 (#PCDATA)>

<!ELEMENT Per4 (#PCDATA)>

<!ELEMENT ToCmp (#PCDATA)>

<!--

FutureEtc

-->

<!ELEMENT FutureEtcs (FutureEtc+)>

<!ELEMENT FutureEtc(

EndDate,

Bcws?,

Etc?

UserDefValue*

)>

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

un_id must refer to an existing Unit ('un1', 'un2', etc.)

-->

<!ATTLIST FutureEtc

ce_id IDREF #REQUIRED

 cd_id IDREF #REQUIRED

un_id IDREF #REQUIRED

>

<!ELEMENT Bcws (#PCDATA)>

<!ELEMENT Etc (#PCDATA)>

<!--

 NarrPer

-->

<!ELEMENT NarrPers (NarrPer+)>

<!ELEMENT NarrPer (#PCDATA)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

enum type { PMR=1, OMBC=2, OMBD=3, OMBE=4, OMBF=5 }

-->

<!ATTLIST NarrPer

cd_id IDREF #REQUIRED

type (1 | 2 | 3 | 4 | 5) #REQUIRED

>

<!--

NarrElem

-->

<!ELEMENT NarrElems (NarrElem+)>

<!ELEMENT NarrElem (#PCDATA)>

<!--

ce_id must refer to an existing Period ('ce1', 'ce2', etc.)

enum type { SOW=1 }

-->

<!ATTLIST NarrElem

ce_id IDREF #REQUIRED

type (1) #REQUIRED

>

<!--

NarrElemPer

-->

<!ELEMENT NarrElemPers (NarrElemPer+)>

<!ELEMENT NarrElemPer (#PCDATA)>

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

 enum type { Fmt5=1, UserNarr=2, EacNarr=3, EacLink=4 }

-->

<!ATTLIST NarrElemPer

ce_id IDREF #REQUIRED

cd_id IDREF #REQUIRED

type (1 | 2 | 3 | 4) #REQUIRED >

<!--

EuwtLink

-->

<!ELEMENT EuwtLinks (EuwtLink+)>

<!ELEMENT EuwtLink (WeightID, ThreshID)>

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

un_id must refer to an existing Unit ('un1', 'un2', etc.)

-->

<!ATTLIST EuwtLink

ce_id IDREF #REQUIRED

un_id IDREF #REQUIRED

>

<!--

Must refer to an existing Weight record (wt1, wt2, etc.)

-->

<!ELEMENT WeightID EMPTY>

<!ATTLIST WeightID wt_id IDREF #REQUIRED>

<!--

Must refer to an existing Threshold record (th1, th2, etc.)

-->

<!ELEMENT ThreshID EMPTY>

<!ATTLIST ThreshID th_id IDREF #REQUIRED>

<!--

Project

-->

<!ELEMENT Projects (Project+)>

<!ELEMENT Project (

ProjName,

 StatusDate,

 UserDefValue*

)>

<!--

  Prefix ID attribute with 'prj' - e.g. prj1, prj2, etc.

  cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST Project  

 cd_id IDREF #REQUIRED

 id ID #REQUIRED

>

<!ELEMENT ProjName (#PCDATA)>

<!ELEMENT StatusDate (#PCDATA)>

<!--

 Tasks

-->

<!ELEMENT Tasks (Task+)>

<!ELEMENT Task (

  UID,

  TaskName?,

  WbsNum?,

  IsSummary?,

  IsMilestone?,

  IsCritical?,

  Duration?,

  BaselineDuration?,

  ActualDuration?,

  RemainingDuration?,

  Start?,

  Finish?,

  ActualStart?,

  ActualFinish?,

  BaselineStart?,

  BaselineFinish?,

  EarlyStart?,

  EarlyFinish?,

  LateStart?,

  LateFinish?,

  Start1?,

  Finish1?,

  Start2?,

  Finish2?,

  Start3?,

  Finish3?,

  FreeFloat?,

  TotalFloat?,

  PercentComplete?,

  CompleteThrough?,

  BaselinePctCmp?,

  BaselineCmpThru?,

  Slip?,

  SlipVal?,

  FloatVal?,

  NumSlips?,

  ColorCode?,

LongestPath?,

LongestPath1?,

LongestPath2?,

LongestPath3?,

FreeFloat1?,

FreeFloat2?,

FreeFloat3?,

TotalFloat1?,

TotalFloat2?,

TotalFloat3?,

Slip1?,

Slip2?,

Slip3?,

Critical1?,

Critical2?,

Critical3?,

  UserDefValue*

)>

<!--

  Prefix ID attribute with 't' - e.g. t1, t2, etc.

  prj_id must refer to an existing Project ('prj1', 'prj2', etc.)

-->

<!ATTLIST Task

  id  ID  #REQUIRED

  prj_id  IDREF #REQUIRED

>

<!--

  UID is the schedule's unique ID for the task

-->

<!ELEMENT UID (#PCDATA)>

<!ELEMENT TaskName (#PCDATA)>

<!--

  For next 3 fields: enum { true='T', false='F' }

-->

<!ELEMENT IsMilestone (#PCDATA)>

<!ELEMENT IsSummary (#PCDATA)>

<!ELEMENT IsCritical (#PCDATA)>

<!--

  Enter durations as text in desired format, e.g. 10d

  Enter start/finish dates in CCYYMMDD format

-->

<!ELEMENT Duration (#PCDATA)>

<!ELEMENT BaselineDuration (#PCDATA)>

<!ELEMENT ActualDuration (#PCDATA)>

<!ELEMENT RemainingDuration (#PCDATA)>

<!ELEMENT Start (#PCDATA)>

<!ELEMENT Finish (#PCDATA)>

<!ELEMENT ActualStart (#PCDATA)>

<!ELEMENT ActualFinish (#PCDATA)>

<!ELEMENT BaselineStart (#PCDATA)>

<!ELEMENT BaselineFinish (#PCDATA)>

<!ELEMENT EarlyStart (#PCDATA)>

<!ELEMENT EarlyFinish (#PCDATA)>

<!ELEMENT LateStart (#PCDATA)>

<!ELEMENT LateFinish (#PCDATA)>

<!ELEMENT Start1 (#PCDATA)>

<!ELEMENT Finish1 (#PCDATA)>

<!ELEMENT Start2 (#PCDATA)>

<!ELEMENT Finish2 (#PCDATA)>

<!ELEMENT Start3 (#PCDATA)>

<!ELEMENT Finish3 (#PCDATA)>

<!--

Enter FreeFloat and TotalFloat as text in format used by scheduling system

-->

<!ELEMENT FreeFloat (#PCDATA)>

<!ELEMENT TotalFloat (#PCDATA)>

<!ELEMENT PercentComplete (#PCDATA)>

<!ELEMENT CompleteThrough (#PCDATA)>

<!ELEMENT BaselinePctCmp (#PCDATA)>

<!ELEMENT BaselineCmpThru (#PCDATA)>

<!--

 Enter Slip as text in format used by scheduling system

-->

<!ELEMENT Slip (#PCDATA)>

<!--

Enter slip from baseline and total float as numeric values in days

-->

<!ELEMENT SlipVal (#PCDATA)>

<!ELEMENT FloatVal (#PCDATA)>

<!--

 Enter number of slips from baseline compared to 3 prior periods (0-3)

(Can be calculated after import by schedule viewer)

-->

<!ELEMENT NumSlips (#PCDATA)>

<!--   enum { red='R', yellow='Y', green='G' }

(Can be calculated after import by schedule viewer)

-->

<!ELEMENT ColorCode (#PCDATA)>

<!--

Enter 'T' if the task is on the longest path through the schedule, 'F'

otherwise

-->

<!ELEMENT LongestPath (#PCDATA)>

<!ELEMENT LongestPath1 (#PCDATA)>

<!ELEMENT LongestPath2 (#PCDATA)>

<!ELEMENT LongestPath3 (#PCDATA)>

<!--

Enter as text in the format used by the scheduling system

-->

<!ELEMENT FreeFloat1 (#PCDATA)>

<!ELEMENT FreeFloat2 (#PCDATA)>

<!ELEMENT FreeFloat3 (#PCDATA)>

<!ELEMENT TotalFloat1 (#PCDATA)>

<!ELEMENT TotalFloat2 (#PCDATA)>

<!ELEMENT TotalFloat3 (#PCDATA)>

<!ELEMENT Slip1 (#PCDATA)>

<!ELEMENT Slip2 (#PCDATA)>

<!ELEMENT Slip3 (#PCDATA)>

<!ELEMENT Critical1 (#PCDATA)>

<!ELEMENT Critical2 (#PCDATA)>

<!ELEMENT Critical3 (#PCDATA)>

<!--

TaskLink

-->

<!ELEMENT TaskLinks (TaskLink+)>

<!ELEMENT TaskLink (

LinkVal,

TaskLevel?,

TaskSeq?

)>

<!--

t_id refers to an existing Task ('t1', 't2', etc.)

st_id refers to an existing Structure ('st1', 'st2', etc.)

-->

<!ATTLIST TaskLink   t_id  IDREF #REQUIRED st_id IDREF #REQUIRED

>

<!--

(Can be calculated after import by schedule viewer)

-->

<!ELEMENT TaskLevel (#PCDATA)>

<!ELEMENT TaskSeq (#PCDATA)>

<!--

TaskPred

-->

<!ELEMENT TaskPreds (TaskPred+)>

<!ELEMENT TaskPred (

LagVal?,

LagType?

)>

<!--

t_id refers to an existing Task ('t1', 't2', etc.)

pt_id refers to an existing (predecessor) Task ('t1', 't2', etc.)

-->

<!ATTLIST TaskPred

 t_id  IDREF #REQUIRED

pt_id IDREF #REQUIRED

>

<!--

Enter LagVal as text in format expected by scheduling system

-->

<!ELEMENT LagVal (#PCDATA)>

<!--

LagType is one of "FS", "SS", "SF", "FF"

-->

<!ELEMENT LagType (#PCDATA)>

<!--

User

-->

<!ELEMENT Users (User+)>

<!ELEMENT User (

 UserName,

UserCode?,

Password?,

Prefilter?,

GroupID?,

OSAuth?

)>

<!--

Prefix ID attribute with 'usr' - e.g. usr1, usr2, etc.

-->

<!ATTLIST User id ID #REQUIRED>

<!ELEMENT UserName (#PCDATA)>

<!ELEMENT UserCode (#PCDATA)>

<!ELEMENT Password (#PCDATA)>

<!ELEMENT Prefilter (#PCDATA)>

<!--

  Must refer to an existing User record (usr1, usr2, etc.)

 To indicate a user group, set the group ID to the user ID.

-->

<!ELEMENT GroupID EMPTY>

<!ATTLIST GroupID usr_id IDREF #REQUIRED>

<!ELEMENT OSAuth (#PCDATA)>

<!--

UserContract

-->

<!ELEMENT UserContracts (UserContract+)>

<!ELEMENT UserContract (AccessFlag)>

<!--

cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)

usr_id must refer to an existing User ('usr1', 'usr2', etc.)

-->

<!ATTLIST UserContract

cc_id IDREF #REQUIRED

usr_id IDREF #REQUIRED

>

<!--

AccessFlag: 'R' (Read) 'W' (Write), or 'N' (None)

-->

<!ELEMENT AccessFlag (#PCDATA)>

<!--

Beginning of CFSR data elements

-->

<!ELEMENT FundTypes (FundType+)>

<!ELEMENT FundType (

Source,

Approp,

Fy,

FundTypeParentID?,

 ElemDesc?,

NumChild?,

  ElemLevel?,

 ElemSeq?,

 ElemHier?

)>

<!--

Prefix ID attribute with 'ft' - e.g. ft1, ft2, etc.

cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)

-->

<!ATTLIST FundType

 id ID #REQUIRED

cc_id IDREF #REQUIRED

>

<!ELEMENT ElemID (#PCDATA)>

<!ELEMENT ContrID (#PCDATA)>

<!--

<!ELEMENT Source (#PCDATA)>

<!--

If the FundType element does not have an Appropriation,

the value provided for this element must be '*'

i.e., <Approp>*</Approp>

-->

<!ELEMENT Approp (#PCDATA)>

<!--

If the FundType does not have an Fiscal Year,

the value provided for this element must be '*'

i.e., <Fy>*</Fy>

-->

<!ELEMENT Fy (#PCDATA)>

<!--

 FundTypeParentID is required except for Level 1 elements.

 ft_id must refer to a previously defined element.

-->

<!ELEMENT FundTypeParentID EMPTY>

<!ATTLIST FundTypeParentID ft_id IDREF #REQUIRED>

<!ELEMENT ClinTypes (ClinType+)>

<!ELEMENT ClinType (

Clin

)>

<!--

 Prefix ID attribute with 'cl' - e.g. cl1, cl2, etc.

cc_id must refer to an existing Contract ('cc1', 'cc2', etc.)

-->

<!ATTLIST ClinType

 id ID #REQUIRED

cc_id IDREF #REQUIRED

>

<!ELEMENT Clin (#PCDATA)>

<!ELEMENT CfsrBlock12Types (CfsrBlock12Type+)>

<!ELEMENT CfsrBlock12Type(

Type

)>

<!--

Prefix ID attribute with 'tp' - e.g. tp1, tp2, etc.

-->

<!ATTLIST CfsrBlock12Type

id ID #REQUIRED

>

<!ELEMENT Type (#PCDATA)>

<!ELEMENT Block11s (Block11+)>

<!ELEMENT Block11 (

AuthFund?,

AccruExp?,

Definit?,

NotDefinit?,

NotAuth?,

OtherWork?,

CarryOver?

)>

<!--

ft_id must refer to an existing FundType ('ft1', 'ft2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

cl_id must refer to an existing ClinType ('cl1', 'cl2', etc.)

-->

<!ATTLIST Block11

ft_id IDREF #REQUIRED

cd_id IDREF #REQUIRED

cl_id IDREF #REQUIRED

>

<!ELEMENT AuthFund (#PCDATA)>

<!ELEMENT AccruExp (#PCDATA)>

<!ELEMENT Definit (#PCDATA)>

<!ELEMENT NotDefinit (#PCDATA)>

<!ELEMENT NotAuth (#PCDATA)>

<!ELEMENT OtherWork (#PCDATA)>

<!ELEMENT CarryOver (#PCDATA)>

<!ELEMENT Block12s (Block12+)>

<!ELEMENT Block12(

ActToDate?,

Period1?,

Period2?,

Period3?,

Period4?,

Period5?,

Period6?,

Period7?,

Period8?,

Period9?,

Period10?,

Period11?,

Period12?,

Period13?,

Period14?,

AtComplete?

)>

<!--

 ft_id must refer to an existing FundType ('ft1', 'ft2', etc.

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

tp_id must refer to an existing CfsrBlock12Type ('tp1', 'tp2', etc.

-->

<!ATTLIST Block12

ft_id IDREF #REQUIRED

 cd_id IDREF #REQUIRED

tp_id IDREF #REQUIRED

>

<!ELEMENT ActToDate (#PCDATA)>

<!ELEMENT Period1 (#PCDATA)>

<!ELEMENT Period2 (#PCDATA)>

<!ELEMENT Period3 (#PCDATA)>

<!ELEMENT Period4 (#PCDATA)>

<!ELEMENT Period5 (#PCDATA)>

<!ELEMENT Period6 (#PCDATA)>

<!ELEMENT Period7 (#PCDATA)>

<!ELEMENT Period8 (#PCDATA)>

<!ELEMENT Period9 (#PCDATA)>

<!ELEMENT Period10 (#PCDATA)>

<!ELEMENT Period11 (#PCDATA)>

<!ELEMENT Period12 (#PCDATA)>

<!ELEMENT Period13 (#PCDATA)>

<!ELEMENT Period14 (#PCDATA)>

<!ELEMENT AtComplete (#PCDATA)>

<!ELEMENT CfsrThresholds (CfsrThreshold+)>

<!ELEMENT CfsrThreshold (

ThreshDesc,

TpDolVar?,

TpPerVar?,

TpAndOr?,

NdDolVar?,

NdPerVar?,

NdAndOr?,

AeDolVar?,

AePerVar?,

AeAndOr?,

AcDolVar?,

AcPerVar?,

AcAndOr?

)>

<!--

Prefix ID attribute with 'ct' - e.g. ct1, ct2, etc.

-->

<!ATTLIST CfsrThreshold

id ID #REQUIRED

>

<!--

 xxAndOr: 'A' or 'O',

AND = exceeds Cost AND Sch thresh; OR = Cost OR Sch thresh

-->

<!ELEMENT TpDolVar (#PCDATA)>

<!ELEMENT TpPerVar (#PCDATA)>

<!ELEMENT TpAndOr (#PCDATA)>

<!ELEMENT NdDolVar (#PCDATA)>

<!ELEMENT NdPerVar (#PCDATA)>

<!ELEMENT NdAndOr (#PCDATA)>

<!ELEMENT AeDolVar (#PCDATA)>

<!ELEMENT AePerVar (#PCDATA)>

<!ELEMENT AeAndOr (#PCDATA)>

<!ELEMENT AcDolVar (#PCDATA)>

<!ELEMENT AcPerVar (#PCDATA)>

<!ELEMENT AcAndOr (#PCDATA)>

<!ELEMENT Cfsrs (Cfsr+)>

<!ELEMENT Cfsr (

LastPeriodDate?,

Per1?,

 Per2?,

Per3?,

Per4?,

Per5?,

 Per6?,

 Per7?,

Per8?,

Per9?,

Per10?,

Per11?,

Per12?,

 Per13?,

Per14?,

AtComplete?

)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

ct_id must refer to an existing CfsrThreshold ('ct1', 'ct2', etc.)

->

<!ATTLIST Cfsr

cd_id IDREF #REQUIRED

ct_id IDREF #REQUIRED

>

<!ELEMENT LastPeriodDate (#PCDATA)>

<!ELEMENT Per5 (#PCDATA)>

<!ELEMENT Per6 (#PCDATA)>

<!ELEMENT Per7 (#PCDATA)>

<!ELEMENT Per8 (#PCDATA)>

<!ELEMENT Per9 (#PCDATA)>

<!ELEMENT Per10 (#PCDATA)>

<!ELEMENT Per11 (#PCDATA)>

<!ELEMENT Per12 (#PCDATA)>

<!ELEMENT Per13 (#PCDATA)>

<!ELEMENT Per14 (#PCDATA)>

<!ELEMENT CfsrNarrs (CfsrNarr+)>

<!ELEMENT CfsrNarr (#PCDATA)>

<!--

ft_id must refer to an existing FundType ('ft1', 'ft2', etc.)

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST CfsrNarr

ft_id IDREF #REQUIRED

cd_id IDREF #REQUIRED

>

<!--

OmbMilestones

-->

<!ELEMENT OmbMilestones (OmbMilestone+)>

<!ELEMENT OmbMilestone (

MilesDesc,

BaselineStart?,

BaselineFinish?,

BaselineDur?,

PlannedCost?,

FundingAgency?,

ActualStart?,

ActualFinish?,

ActualPctCmp?,

ActualCost?

)>

<!--

cd_id must refer to an existing Period ('cd1', 'cd2', etc.)

-->

<!ATTLIST OmbMilestone cd_id IDREF #REQUIRED>

<!ELEMENT BaselineDur (#PCDATA)>

<!ELEMENT PlannedCost (#PCDATA)>

<!ELEMENT FundingAgency (#PCDATA)>

<!ELEMENT ActualPctCmp (#PCDATA)>

<!ELEMENT ActualCost (#PCDATA)>

<!--

ElemLink

-->

<!ELEMENT ElemLinks (ElemLink+)>

<!ELEMENT ElemLink EMPTY>

<!--

ce_id must refer to an existing Element ('ce1', 'ce2', etc.)

st_id must refer to an existing Structure ('st1', 'st2', etc.)

tl_id must exist to an existing Element ('ce1', 'ce2', etc.)

Additional notes:

-The element referred to by ce_id should be a member of the WBS structure.

-The structure referred to by st_id should NOT be the WBS or Indirect structure

-The element referred to by tl_id should be a member of the structure identified by st_id

-->

<!ATTLIST ElemLink

ce_id IDREF #REQUIRED

st_id IDREF #REQUIRED

tl_id IDREF #REQUIRED