lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [5442] Regenerate enumerations, using the technique descri


From: Greg Chicares
Subject: [lmi-commits] [5442] Regenerate enumerations, using the technique described 20120325T1232Z
Date: Tue, 27 Mar 2012 12:22:13 +0000

Revision: 5442
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5442
Author:   chicares
Date:     2012-03-27 12:22:13 +0000 (Tue, 27 Mar 2012)
Log Message:
-----------
Regenerate enumerations, using the technique described 20120325T1232Z

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/cell.rnc
    lmi/trunk/cell.xsd
    lmi/trunk/test_schemata.sh

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2012-03-26 12:31:42 UTC (rev 5441)
+++ lmi/trunk/ChangeLog 2012-03-27 12:22:13 UTC (rev 5442)
@@ -29936,3 +29936,38 @@
   version.hpp
 Designate release candidate.
 
+20120325T1232Z <address@hidden> [573]
+
+  mc_enum_types.xpp
+Improve concinnity, so that this command:
+  sed -e'/_NAMES/,/};/!d' -e's/ \\$//;s/_NAMES/ =/;s/{/  /' \
+      -e 's/ *};//;s/#define //;s/^    ,/    | /;s/,  / | /g'
+can be used to generate enumerations for 'cell.rnc'.
+
+20120326T1059Z <address@hidden> [573]
+
+  test_schemata.sh
+Copy files from working directory to /tmp even if they are older.
+
+20120326T1231Z <address@hidden> [573]
+
+  cell.rnc
+  cell.xsd
+  multiple_cell_document.rnc
+  single_cell_document.rnc
+Reformat; improve documentation. Translating RNG to XSD with 'trang'
+can mangle commentary, e.g., changing this:
+  minInclusive = "2361222" # gregorian_epoch_jdn
+  maxInclusive = "5373484" # last_yyyy_date_jdn
+to the single line
+  <!-- last_yyyy_date_jdn -->
+inscrutably following the definition of the calendar-date type.
+
+20120327T1222Z <address@hidden> [573]
+
+  cell.rnc
+  cell.xsd
+  test_schemata.sh
+Regenerate enumerations, using the technique described 20120325T1232Z.
+This makes it easier to annotate them.
+

Modified: lmi/trunk/cell.rnc
===================================================================
--- lmi/trunk/cell.rnc  2012-03-26 12:31:42 UTC (rev 5441)
+++ lmi/trunk/cell.rnc  2012-03-27 12:22:13 UTC (rev 5442)
@@ -27,21 +27,21 @@
 cell_element = element cell
     {attribute version {"6"}
 
-    ,element AccidentalDeathBenefit           {lmibool}
+    ,element AccidentalDeathBenefit           {yes_or_no}
     ,element Address                          {text}
     ,element AgentAddress                     {text}
     ,element AgentCity                        {text}
     ,element AgentId                          {text}
     ,element AgentName                        {text}
     ,element AgentPhone                       {text}
-    ,element AgentState                       {mcenum_state}
+    ,element AgentState                       {state}
     ,element AgentZipCode                     {text}
-    ,element AmortizePremiumLoad              {lmibool}
-    ,element AvoidMecMethod                   {"Allow MEC"|"Reduce premium"}
-    ,element BlendGender                      {lmibool}
-    ,element BlendSmoking                     {lmibool}
+    ,element AmortizePremiumLoad              {yes_or_no}
+    ,element AvoidMecMethod                   {mec_avoid_method}
+    ,element BlendGender                      {yes_or_no}
+    ,element BlendSmoking                     {yes_or_no}
     ,element CashValueEnhancementRate         {numeric_sequence}
-    ,element ChildRider                       {lmibool}
+    ,element ChildRider                       {yes_or_no}
     ,element ChildRiderAmount                 {nonnegative_double}
     ,element City                             {text}
     ,element Comments                         {text}
@@ -51,67 +51,47 @@
     ,element CorporationPayment               {payment_sequence}
     ,element CorporationPaymentMode           {mode_sequence}
     ,element CorporationPremiumTableFactor    {nonnegative_double}
-    ,element CorporationState                 {mcenum_state}
+    ,element CorporationState                 {state}
     ,element CorporationTaxBracket            {numeric_sequence}
     ,element CorporationZipCode               {text}
-    ,element Country                          {mcenum_country}
+    ,element Country                          {country}
     ,element CountryCoiMultiplier             {nonnegative_double}
-    ,element CreateSupplementalReport         {lmibool}
+    ,element CreateSupplementalReport         {yes_or_no}
     ,element CurrentCoiMultiplier             {numeric_sequence}
     ,element DateOfBirth                      {calendar_date_int}
     ,element DeathBenefitOption               {dbo_sequence}
-    ,element DeathBenefitOptionFromIssue      {"A"|"B"|"ROP"}
-    ,element DeathBenefitOptionFromRetirement {"A"|"B"|"ROP"}
-    ,element DefinitionOfLifeInsurance        {"CVAT"|"GPT"|"Not 7702 
compliant"}
-    ,element DefinitionOfMaterialChange       {"Unnecessary premium"
-                                       |"Benefit increase"
-                                       |"Later of increase or unnecessary 
premium"
-                                       |"Earlier of increase or unnecessary 
premium"
-                                       |"GPT adjustment event"}
+    ,element DeathBenefitOptionFromIssue      {dbopt}
+    ,element DeathBenefitOptionFromRetirement {dbopt}
+    ,element DefinitionOfLifeInsurance        {defn_life_ins}
+    ,element DefinitionOfMaterialChange       {defn_material_change}
     ,element Dumpin                           {nonnegative_double}
     ,element EffectiveDate                    {calendar_date_int}
-    ,element EffectiveDateToday               {lmibool}
+    ,element EffectiveDateToday               {yes_or_no}
     ,element EmployeeClass                    {text}
     ,element ExperienceRatingInitialKFactor   {nonnegative_double}
     ,element ExperienceReserveRate            {proportion_double}
     ,element External1035ExchangeAmount       {nonnegative_double}
     ,element External1035ExchangeBasis        {nonnegative_double}
-    ,element External1035ExchangeFromMec      {lmibool}
+    ,element External1035ExchangeFromMec      {yes_or_no}
     ,element ExtraCompensationOnAssets        {numeric_sequence}
     ,element ExtraCompensationOnPremium       {numeric_sequence}
     ,element ExtraMonthlyCustodialFee         {numeric_sequence}
     ,element FlatExtra                        {numeric_sequence}
     ,element Franchise                        {text}
     ,element FundAllocations                  {numeric_sequence}
-    ,element FundChoiceType                   {"Average fund"
-                           |"Override fund"
-                           |"Choose funds"}
-    ,element Gender                           {"Female"|"Male"|"Unisex"}
+    ,element FundChoiceType                   {fund_input_method}
+    ,element Gender                           {gender}
     ,element GeneralAccountRate               {numeric_sequence}
-    ,element GeneralAccountRateType           {"Credited rate"|"Earned rate"}
-    ,element GroupUnderwritingType            {"Medical"
-                                  |"Paramedical"
-                                  |"Nonmedical"
-                                  |"Simplified issue"
-                                  |"Guaranteed issue"}
-    ,element HoneymoonEndorsement             {lmibool}
+    ,element GeneralAccountRateType           {gen_acct_rate_type}
+    ,element GroupUnderwritingType            {uw_basis}
+    ,element HoneymoonEndorsement             {yes_or_no}
     ,element HoneymoonValueSpread             {numeric_sequence}
-    ,element IncludeInComposite               {lmibool}
+    ,element IncludeInComposite               {yes_or_no}
     ,element IndividualPaymentAmount          {nonnegative_double}
-    ,element IndividualPaymentMode            {"Annual"
-                                  |"Semiannual"
-                                  |"Quarterly"
-                                  |"Monthly"}
-    ,element IndividualPaymentStrategy        {"PmtInputScalar"
-                                      |"PmtMinimum"
-                                      |"PmtTarget"
-                                      |"PmtMEP"
-                                      |"PmtGLP"
-                                      |"PmtGSP"
-                                      |"PmtCorridor"
-                                      |"PmtTable"}
+    ,element IndividualPaymentMode            {mode}
+    ,element IndividualPaymentStrategy        {pmt_strategy}
     ,element IndividualPaymentToAge           {age_int}
-    ,element IndividualPaymentToAlternative   {mcenum_to_point}
+    ,element IndividualPaymentToAlternative   {to_point}
     ,element IndividualPaymentToDuration      {duration_int}
     ,element InforceAsOfDate                  {calendar_date_int}
     ,element InforceAvBeforeLastMc            {nonnegative_double}
@@ -125,7 +105,7 @@
     ,element InforceGlp                       {nonnegative_double}
     ,element InforceGsp                       {nonnegative_double}
     ,element InforceHoneymoonValue            {nonnegative_double}
-    ,element InforceIsMec                     {lmibool}
+    ,element InforceIsMec                     {yes_or_no}
     ,element InforceLeastDeathBenefit         {nonnegative_double}
     ,element InforceMonth                     {month_int}
     ,element InforceNetExperienceReserve      {xsd:double}
@@ -143,146 +123,112 @@
     ,element InsuredPremiumTableFactor        {nonnegative_double}
     ,element Internal1035ExchangeAmount       {nonnegative_double}
     ,element Internal1035ExchangeBasis        {nonnegative_double}
-    ,element Internal1035ExchangeFromMec      {lmibool}
+    ,element Internal1035ExchangeFromMec      {yes_or_no}
     ,element IssueAge                         {age_int}
     ,element LastCoiReentryDate               {calendar_date_int}
     ,element LastMaterialChangeDate           {calendar_date_int}
     ,element LoanAmount                       {nonnegative_double}
     ,element LoanFromAge                      {age_int}
-    ,element LoanFromAlternative              {mcenum_from_point}
+    ,element LoanFromAlternative              {from_point}
     ,element LoanFromDuration                 {duration_int}
     ,element LoanRate                         {proportion_double}
-    ,element LoanRateType                     {"Fixed loan rate"|"Variable 
loan rate"}
+    ,element LoanRateType                     {loan_rate_type}
     ,element LoanToAge                        {age_int}
-    ,element LoanToAlternative                {mcenum_to_point}
+    ,element LoanToAlternative                {to_point}
     ,element LoanToDuration                   {duration_int}
     ,element MaleProportion                   {proportion_double}
     ,element MaximumNaar                      {nonnegative_double}
     ,element NewLoan                          {numeric_sequence}
     ,element NonsmokerProportion              {proportion_double}
     ,element NumberOfIdenticalLives           {xsd:nonNegativeInteger}
-    ,element OverrideCoiMultiplier            {lmibool}
-    ,element OverrideExperienceReserveRate    {lmibool}
-    ,element OverrideFundManagementFee        {lmibool}
+    ,element OverrideCoiMultiplier            {yes_or_no}
+    ,element OverrideExperienceReserveRate    {yes_or_no}
+    ,element OverrideFundManagementFee        {yes_or_no}
     ,element PartialMortalityMultiplier       {numeric_sequence}
     ,element Payment                          {payment_sequence}
     ,element PaymentMode                      {mode_sequence}
     ,element PolicyNumber                     {text}
     ,element PostHoneymoonSpread              {proportion_double}
     ,element PremiumHistory                   {numeric_sequence}
-    ,element PremiumTaxState                  {mcenum_state}
+    ,element PremiumTaxState                  {state}
     # Enumerators for 'ProductName' depend on run-time context.
     ,element ProductName                      {text}
     ,element ProjectedSalary                  {numeric_sequence}
-    ,element RetireesCanEnroll                {lmibool}
+    ,element RetireesCanEnroll                {yes_or_no}
     ,element RetirementAge                    {age_int}
-    ,element RunOrder                         {"Life by life"|"Month by month"}
+    ,element RunOrder                         {run_order}
     ,element SalarySpecifiedAmountCap         {nonnegative_double}
     ,element SalarySpecifiedAmountFactor      {nonnegative_double}
     ,element SalarySpecifiedAmountOffset      {nonnegative_double}
     ,element SeparateAccountRate              {numeric_sequence}
-    ,element SeparateAccountRateType          {"Net rate"|"Gross rate"}
-    ,element Smoking                          {"Smoker"|"Nonsmoker"|"Unismoke"}
-    ,element SolveBasis                       
{"Current"|"Guaranteed"|"Midpoint"}
+    ,element SeparateAccountRateType          {sep_acct_rate_type}
+    ,element Smoking                          {smoking}
+    ,element SolveBasis                       {gen_basis}
     ,element SolveBeginTime                   {duration_int}
     ,element SolveBeginYear                   {duration_int}
     ,element SolveEndTime                     {duration_int}
     ,element SolveEndYear                     {duration_int}
-    ,element SolveFromWhich                   {mcenum_from_point}
-    ,element SolveSeparateAccountBasis        {"Hypothetical"
-                                      |"Zero"
-                                      |"Half of hypothetical"}
-    ,element SolveTarget                      {"Endowment"
-                        |"Target CSV"
-                        |"CSV = tax basis"
-                        |"Avoid MEC"}
+    ,element SolveFromWhich                   {from_point}
+    ,element SolveSeparateAccountBasis        {sep_basis}
+    ,element SolveTarget                      {solve_target}
     ,element SolveTargetCashSurrenderValue    {nonnegative_double}
     ,element SolveTargetTime                  {duration_int}
     ,element SolveTargetYear                  {duration_int}
-    ,element SolveTgtAtWhich                  {mcenum_to_point}
-    ,element SolveToWhich                     {mcenum_to_point}
-    ,element SolveType                        {"No solve"
-                      |"Specified amount"
-                      |"Employee premium"
-                      |"Employer premium"
-                      |"Loan"
-                      |"Withdrawal"}
+    ,element SolveTgtAtWhich                  {to_point}
+    ,element SolveToWhich                     {to_point}
+    ,element SolveType                        {solve_type}
     ,element SpecamtHistory                   {numeric_sequence}
     ,element SpecifiedAmount                  {specamt_sequence}
     ,element SpecifiedAmountFromIssue         {nonnegative_double}
     ,element SpecifiedAmountFromRetirement    {nonnegative_double}
-    ,element SpecifiedAmountStrategyFromIssue {"SAInputScalar"
-                                             |"SAMaximum"
-                                             |"SATarget"
-                                             |"SAMEP"
-                                             |"SAGLP"
-                                             |"SAGSP"
-                                             |"SACorridor"
-                                             |"SASalary"}
+    ,element SpecifiedAmountStrategyFromIssue {sa_strategy}
     ,element SpouseIssueAge                   {age_int}
-    ,element SpouseRider                      {lmibool}
+    ,element SpouseRider                      {yes_or_no}
     ,element SpouseRiderAmount                {nonnegative_double}
-    ,element State                            {mcenum_state}
-    ,element StateOfJurisdiction              {mcenum_state}
-    ,element SubstandardTable                 {"None"
-                             |"A=+25%"
-                             |"B=+50%"
-                             |"C=+75%"
-                             |"D=+100%"
-                             |"E=+125%"
-                             |"F=+150%"
-                             |"H=+200%"
-                             |"J=+250%"
-                             |"L=+300%"
-                             |"P=+400%"}
-    ,element SupplementalReportColumn00       {mcenum_report_column}
-    ,element SupplementalReportColumn01       {mcenum_report_column}
-    ,element SupplementalReportColumn02       {mcenum_report_column}
-    ,element SupplementalReportColumn03       {mcenum_report_column}
-    ,element SupplementalReportColumn04       {mcenum_report_column}
-    ,element SupplementalReportColumn05       {mcenum_report_column}
-    ,element SupplementalReportColumn06       {mcenum_report_column}
-    ,element SupplementalReportColumn07       {mcenum_report_column}
-    ,element SupplementalReportColumn08       {mcenum_report_column}
-    ,element SupplementalReportColumn09       {mcenum_report_column}
-    ,element SupplementalReportColumn10       {mcenum_report_column}
-    ,element SupplementalReportColumn11       {mcenum_report_column}
+    ,element State                            {state}
+    ,element StateOfJurisdiction              {state}
+    ,element SubstandardTable                 {table_rating}
+    ,element SupplementalReportColumn00       {report_column}
+    ,element SupplementalReportColumn01       {report_column}
+    ,element SupplementalReportColumn02       {report_column}
+    ,element SupplementalReportColumn03       {report_column}
+    ,element SupplementalReportColumn04       {report_column}
+    ,element SupplementalReportColumn05       {report_column}
+    ,element SupplementalReportColumn06       {report_column}
+    ,element SupplementalReportColumn07       {report_column}
+    ,element SupplementalReportColumn08       {report_column}
+    ,element SupplementalReportColumn09       {report_column}
+    ,element SupplementalReportColumn10       {report_column}
+    ,element SupplementalReportColumn11       {report_column}
     ,element SurviveToAge                     {age_int}
-    ,element SurviveToType                    {"No survival limit"
-                          |"Survive to age limit"
-                          |"Survive to duration limit"
-                          |"Survive to life expectancy"}
+    ,element SurviveToType                    {survival_limit}
     ,element SurviveToYear                    {duration_int}
     ,element TaxBracket                       {numeric_sequence}
-    ,element TermAdjustmentMethod             {"Adjust base first"
-                                 |"Adjust term first"
-                                 |"Adjust base and term proportionately"}
-    ,element TermRider                        {lmibool}
+    ,element TermAdjustmentMethod             {term_adj_method}
+    ,element TermRider                        {yes_or_no}
     ,element TermRiderAmount                  {nonnegative_double}
     ,element TermRiderProportion              {proportion_double}
-    ,element TermRiderUseProportion           {lmibool}
+    ,element TermRiderUseProportion           {yes_or_no}
     ,element TotalSpecifiedAmount             {nonnegative_double}
-    ,element UnderwritingClass                
{"Preferred"|"Standard"|"Rated"|"Ultra"}
-    ,element UseAverageOfAllFunds             {lmibool}
-    ,element UseCurrentDeclaredRate           {lmibool}
-    ,element UseDOB                           {lmibool}
-    ,element UseExperienceRating              {lmibool}
-    ,element UsePartialMortality              {lmibool}
-    ,element WaiverOfPremiumBenefit           {lmibool}
-    ,element WithdrawToBasisThenLoan          {lmibool}
+    ,element UnderwritingClass                {class}
+    ,element UseAverageOfAllFunds             {yes_or_no}
+    ,element UseCurrentDeclaredRate           {yes_or_no}
+    ,element UseDOB                           {yes_or_no}
+    ,element UseExperienceRating              {yes_or_no}
+    ,element UsePartialMortality              {yes_or_no}
+    ,element WaiverOfPremiumBenefit           {yes_or_no}
+    ,element WithdrawToBasisThenLoan          {yes_or_no}
     ,element Withdrawal                       {numeric_sequence}
     ,element WithdrawalAmount                 {nonnegative_double}
     ,element WithdrawalFromAge                {age_int}
-    ,element WithdrawalFromAlternative        {mcenum_from_point}
+    ,element WithdrawalFromAlternative        {from_point}
     ,element WithdrawalFromDuration           {duration_int}
     ,element WithdrawalToAge                  {age_int}
-    ,element WithdrawalToAlternative          {mcenum_to_point}
+    ,element WithdrawalToAlternative          {to_point}
     ,element WithdrawalToDuration             {duration_int}
     ,element ZipCode                          {text}
     }
 
-lmibool = "Yes"|"No"
-
 # It is infeasible to validate an input sequence with a regex.
 
 numeric_sequence = text
@@ -308,94 +254,252 @@
 
 # Enumerations.
 
-mcenum_to_point = "Retirement"|"Year"|"Age"|"Maturity"
+yes_or_no =
+      "No"
+    | "Yes"
 
-mcenum_from_point = "Issue"|"Year"|"Age"|"Retirement"
+gender =
+      "Female"
+    | "Male"
+    | "Unisex"
 
-mcenum_state = "AL"|"AK"|"AZ"|"AR"|"CA"|"CO"|"CT"|"DE"|"DC"|"FL"|"GA"
-             | "HI"|"ID"|"IL"|"IN"|"IA"|"KS"|"KY"|"LA"|"ME"|"MD"|"MA"
-             | "MI"|"MN"|"MS"|"MO"|"MT"|"NE"|"NV"|"NH"|"NJ"|"NM"|"NY"
-             | "NC"|"ND"|"OH"|"OK"|"OR"|"PA"|"PR"|"RI"|"SC"|"SD"|"TN"
-             | "TX"|"UT"|"VT"|"VA"|"WA"|"WV"|"WI"|"WY"|"XX"
+smoking =
+      "Smoker"
+    | "Nonsmoker"
+    | "Unismoke"
 
-mcenum_country = "AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AN"|"AO"|"AQ"|"AR"
-               | "AS"|"AT"|"AU"|"AW"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"
-               | "BH"|"BI"|"BJ"|"BM"|"BN"|"BO"|"BR"|"BS"|"BT"|"BV"|"BW"
-               | "BY"|"BZ"|"CA"|"CC"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"
-               | "CM"|"CN"|"CO"|"CR"|"CU"|"CV"|"CX"|"CY"|"CZ"|"DE"|"DJ"
-               | "DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"
-               | "FI"|"FJ"|"FK"|"FM"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"
-               | "GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"
-               | "GW"|"GY"|"HK"|"HM"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"
-               | "IN"|"IO"|"IQ"|"IR"|"IS"|"IT"|"JM"|"JO"|"JP"|"KE"|"KG"
-               | "KH"|"KI"|"KM"|"KN"|"KP"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"
-               | "LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"
-               | "MD"|"MG"|"MH"|"MK"|"ML"|"MM"|"MN"|"MO"|"MP"|"MQ"|"MR"
-               | "MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"
-               | "NF"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"
-               | "PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"
-               | "PW"|"PY"|"QA"|"RE"|"RO"|"RU"|"RW"|"SA"|"SB"|"SC"|"SD"
-               | "SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"
-               | "ST"|"SV"|"SY"|"SZ"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"
-               | "TM"|"TN"|"TO"|"TP"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"
-               | "UM"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VI"|"VN"|"VU"
-               | "WF"|"WS"|"YE"|"YT"|"YU"|"ZA"|"ZM"|"ZW"
+class =
+      "Preferred"
+    | "Standard"
+    | "Rated"
+    | "Ultra"
 
-mcenum_report_column = "[none]"
-                     | "AttainedAge"
-                     | "PolicyYear"
-                     | "InforceLives"
-                     | "SpecAmt"
-                     | "TermSpecAmt"
-                     | "CorridorFactor"
-                     | "AnnGAIntRate_Current"
-                     | "AnnSAIntRate_Current"
-                     | "Outlay"
-                     | "EeGrossPmt"
-                     | "ErGrossPmt"
-                     | "NetWD"
-                     | "NewCashLoan"
-                     | "TotalLoanBalance_Current"
-                     | "TotalLoanBalance_Guaranteed"
-                     | "AcctVal_Current"
-                     | "AcctVal_Guaranteed"
-                     | "CSVNet_Current"
-                     | "CSVNet_Guaranteed"
-                     | "EOYDeathBft_Current"
-                     | "EOYDeathBft_Guaranteed"
-                     | "BaseDeathBft_Current"
-                     | "BaseDeathBft_Guaranteed"
-                     | "TermPurchased_Current"
-                     | "TermPurchased_Guaranteed"
-                     | "COICharge_Current"
-                     | "COICharge_Guaranteed"
-                     | "RiderCharges_Current"
-                     | "IrrCsv_Current"
-                     | "IrrCsv_Guaranteed"
-                     | "IrrDb_Current"
-                     | "IrrDb_Guaranteed"
-                     | "ExperienceReserve_Current"
-                     | "NetClaims_Current"
-                     | "NetCOICharge_Current"
-                     | "ProjectedCoiCharge_Current"
-                     | "KFactor_Current"
-                     | "GrossPmt"
-                     | "LoanIntAccrued_Current"
-                     | "NetDeathBenefit"
-                     | "DeathProceedsPaid_Current"
-                     | "ClaimsPaid_Current"
-                     | "AVRelOnDeath_Current"
-                     | "SpecAmtLoad_Current"
-                     | "GrossIntCredited_Current"
-                     | "NetIntCredited_Current"
-                     | "SepAcctCharges_Current"
-                     | "PolicyFee_Current"
-                     | "AVGenAcct_CurrentZero"
-                     | "AVGenAcct_GuaranteedZero"
-                     | "AVSepAcct_CurrentZero"
-                     | "AVSepAcct_GuaranteedZero"
-                     | "AcctVal_CurrentZero"
-                     | "AcctVal_GuaranteedZero"
-                     | "CSVNet_CurrentZero"
-                     | "CSVNet_GuaranteedZero"
+dbopt =
+      "A"
+    | "B"
+    | "ROP"
 
+mode =
+      "Annual"
+    | "Semiannual"
+    | "Quarterly"
+    | "Monthly"
+
+gen_basis =
+      "Current"
+    | "Guaranteed"
+    | "Midpoint"
+
+sep_basis =
+      "Hypothetical"
+    | "Zero"
+    | "Half of hypothetical"
+
+uw_basis =
+      "Medical"
+    | "Paramedical"
+    | "Nonmedical"
+    | "Simplified issue"
+    | "Guaranteed issue"
+
+table_rating =
+      "None"
+    | "A=+25%"
+    | "B=+50%"
+    | "C=+75%"
+    | "D=+100%"
+    | "E=+125%"
+    | "F=+150%"
+    | "H=+200%"
+    | "J=+250%"
+    | "L=+300%"
+    | "P=+400%"
+
+solve_type =
+      "No solve"
+    | "Specified amount"
+    | "Employee premium"
+    | "Employer premium"
+    | "Loan"
+    | "Withdrawal"
+
+solve_target =
+      "Endowment"
+    | "Target CSV"
+    | "CSV = tax basis"
+    | "Avoid MEC"
+
+pmt_strategy =
+      "PmtInputScalar"
+    | "PmtMinimum"
+    | "PmtTarget"
+    | "PmtMEP"
+    | "PmtGLP"
+    | "PmtGSP"
+    | "PmtCorridor"
+    | "PmtTable"
+
+sa_strategy =
+      "SAInputScalar"
+    | "SAMaximum"
+    | "SATarget"
+    | "SAMEP"
+    | "SAGLP"
+    | "SAGSP"
+    | "SACorridor"
+    | "SASalary"
+
+gen_acct_rate_type =
+      "Credited rate"
+    | "Earned rate"
+
+sep_acct_rate_type =
+      "Net rate"
+    | "Gross rate"
+
+loan_rate_type =
+      "Fixed loan rate"
+    | "Variable loan rate"
+
+fund_input_method =
+      "Average fund"
+    | "Override fund"
+    | "Choose funds"
+
+run_order =
+      "Life by life"
+    | "Month by month"
+
+survival_limit =
+      "No survival limit"
+    | "Survive to age limit"
+    | "Survive to duration limit"
+    | "Survive to life expectancy"
+
+term_adj_method =
+      "Adjust base first"
+    | "Adjust term first"
+    | "Adjust base and term proportionately"
+
+state =
+      "AL" | "AK" | "AZ" | "AR" | "CA" | "CO" | "CT" | "DE" | "DC" | "FL"
+    | "GA" | "HI" | "ID" | "IL" | "IN" | "IA" | "KS" | "KY" | "LA" | "ME"
+    | "MD" | "MA" | "MI" | "MN" | "MS" | "MO" | "MT" | "NE" | "NV" | "NH"
+    | "NJ" | "NM" | "NY" | "NC" | "ND" | "OH" | "OK" | "OR" | "PA" | "PR"
+    | "RI" | "SC" | "SD" | "TN" | "TX" | "UT" | "VT" | "VA" | "WA" | "WV"
+    | "WI" | "WY"
+    | "XX"
+
+country =
+      "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AN" | "AO" | "AQ"
+    | "AR" | "AS" | "AT" | "AU" | "AW" | "AZ" | "BA" | "BB" | "BD" | "BE"
+    | "BF" | "BG" | "BH" | "BI" | "BJ" | "BM" | "BN" | "BO" | "BR" | "BS"
+    | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG"
+    | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV"
+    | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC"
+    | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM"
+    | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GH" | "GI" | "GL"
+    | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY"
+    | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IN"
+    | "IO" | "IQ" | "IR" | "IS" | "IT" | "JM" | "JO" | "JP" | "KE" | "KG"
+    | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA"
+    | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY"
+    | "MA" | "MC" | "MD" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO"
+    | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY"
+    | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP"
+    | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK"
+    | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE"
+    | "RO" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH"
+    | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "ST" | "SV"
+    | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TM"
+    | "TN" | "TO" | "TP" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG"
+    | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN"
+    | "VU" | "WF" | "WS" | "YE" | "YT" | "YU" | "ZA" | "ZM" | "ZW"
+
+defn_life_ins =
+      "CVAT"
+    | "GPT"
+    | "Not 7702 compliant"
+
+mec_avoid_method =
+      "Allow MEC"
+    | "Reduce premium"
+
+defn_material_change =
+      "Unnecessary premium"
+    | "Benefit increase"
+    | "Later of increase or unnecessary premium"
+    | "Earlier of increase or unnecessary premium"
+    | "GPT adjustment event"
+
+from_point =
+      "Issue"
+    | "Year"
+    | "Age"
+    | "Retirement"
+
+to_point =
+      "Retirement"
+    | "Year"
+    | "Age"
+    | "Maturity"
+
+report_column =
+      "[none]"
+    | "AttainedAge"
+    | "PolicyYear"
+    | "InforceLives"
+    | "SpecAmt"
+    | "TermSpecAmt"
+    | "CorridorFactor"
+    | "AnnGAIntRate_Current"
+    | "AnnSAIntRate_Current"
+    | "Outlay"
+    | "EeGrossPmt"
+    | "ErGrossPmt"
+    | "NetWD"
+    | "NewCashLoan"
+    | "TotalLoanBalance_Current"
+    | "TotalLoanBalance_Guaranteed"
+    | "AcctVal_Current"
+    | "AcctVal_Guaranteed"
+    | "CSVNet_Current"
+    | "CSVNet_Guaranteed"
+    | "EOYDeathBft_Current"
+    | "EOYDeathBft_Guaranteed"
+    | "BaseDeathBft_Current"
+    | "BaseDeathBft_Guaranteed"
+    | "TermPurchased_Current"
+    | "TermPurchased_Guaranteed"
+    | "COICharge_Current"
+    | "COICharge_Guaranteed"
+    | "RiderCharges_Current"
+    | "IrrCsv_Current"
+    | "IrrCsv_Guaranteed"
+    | "IrrDb_Current"
+    | "IrrDb_Guaranteed"
+    | "ExperienceReserve_Current"
+    | "NetClaims_Current"
+    | "NetCOICharge_Current"
+    | "ProjectedCoiCharge_Current"
+    | "KFactor_Current"
+    | "GrossPmt"
+    | "LoanIntAccrued_Current"
+    | "NetDeathBenefit"
+    | "DeathProceedsPaid_Current"
+    | "ClaimsPaid_Current"
+    | "AVRelOnDeath_Current"
+    | "SpecAmtLoad_Current"
+    | "GrossIntCredited_Current"
+    | "NetIntCredited_Current"
+    | "SepAcctCharges_Current"
+    | "PolicyFee_Current"
+    | "AVGenAcct_CurrentZero"
+    | "AVGenAcct_GuaranteedZero"
+    | "AVSepAcct_CurrentZero"
+    | "AVSepAcct_GuaranteedZero"
+    | "AcctVal_CurrentZero"
+    | "AcctVal_GuaranteedZero"
+    | "CSVNet_CurrentZero"
+    | "CSVNet_GuaranteedZero"
+

Modified: lmi/trunk/cell.xsd
===================================================================
--- lmi/trunk/cell.xsd  2012-03-26 12:31:42 UTC (rev 5441)
+++ lmi/trunk/cell.xsd  2012-03-27 12:22:13 UTC (rev 5442)
@@ -244,28 +244,21 @@
       </xs:attribute>
     </xs:complexType>
   </xs:element>
-  <xs:element name="AccidentalDeathBenefit" type="lmibool"/>
+  <xs:element name="AccidentalDeathBenefit" type="yes_or_no"/>
   <xs:element name="Address" type="xs:string"/>
   <xs:element name="AgentAddress" type="xs:string"/>
   <xs:element name="AgentCity" type="xs:string"/>
   <xs:element name="AgentId" type="xs:string"/>
   <xs:element name="AgentName" type="xs:string"/>
   <xs:element name="AgentPhone" type="xs:string"/>
-  <xs:element name="AgentState" type="mcenum_state"/>
+  <xs:element name="AgentState" type="state"/>
   <xs:element name="AgentZipCode" type="xs:string"/>
-  <xs:element name="AmortizePremiumLoad" type="lmibool"/>
-  <xs:element name="AvoidMecMethod">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Allow MEC"/>
-        <xs:enumeration value="Reduce premium"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="BlendGender" type="lmibool"/>
-  <xs:element name="BlendSmoking" type="lmibool"/>
+  <xs:element name="AmortizePremiumLoad" type="yes_or_no"/>
+  <xs:element name="AvoidMecMethod" type="mec_avoid_method"/>
+  <xs:element name="BlendGender" type="yes_or_no"/>
+  <xs:element name="BlendSmoking" type="yes_or_no"/>
   <xs:element name="CashValueEnhancementRate" type="xs:string"/>
-  <xs:element name="ChildRider" type="lmibool"/>
+  <xs:element name="ChildRider" type="yes_or_no"/>
   <xs:element name="ChildRiderAmount" type="nonnegative_double"/>
   <xs:element name="City" type="xs:string"/>
   <xs:element name="Comments" type="xs:string"/>
@@ -275,136 +268,47 @@
   <xs:element name="CorporationPayment" type="xs:string"/>
   <xs:element name="CorporationPaymentMode" type="xs:string"/>
   <xs:element name="CorporationPremiumTableFactor" type="nonnegative_double"/>
-  <xs:element name="CorporationState" type="mcenum_state"/>
+  <xs:element name="CorporationState" type="state"/>
   <xs:element name="CorporationTaxBracket" type="xs:string"/>
   <xs:element name="CorporationZipCode" type="xs:string"/>
-  <xs:element name="Country" type="mcenum_country"/>
+  <xs:element name="Country" type="country"/>
   <xs:element name="CountryCoiMultiplier" type="nonnegative_double"/>
-  <xs:element name="CreateSupplementalReport" type="lmibool"/>
+  <xs:element name="CreateSupplementalReport" type="yes_or_no"/>
   <xs:element name="CurrentCoiMultiplier" type="xs:string"/>
   <xs:element name="DateOfBirth" type="calendar_date_int"/>
   <xs:element name="DeathBenefitOption" type="xs:string"/>
-  <xs:element name="DeathBenefitOptionFromIssue">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="A"/>
-        <xs:enumeration value="B"/>
-        <xs:enumeration value="ROP"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="DeathBenefitOptionFromRetirement">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="A"/>
-        <xs:enumeration value="B"/>
-        <xs:enumeration value="ROP"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="DefinitionOfLifeInsurance">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="CVAT"/>
-        <xs:enumeration value="GPT"/>
-        <xs:enumeration value="Not 7702 compliant"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="DefinitionOfMaterialChange">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Unnecessary premium"/>
-        <xs:enumeration value="Benefit increase"/>
-        <xs:enumeration value="Later of increase or unnecessary premium"/>
-        <xs:enumeration value="Earlier of increase or unnecessary premium"/>
-        <xs:enumeration value="GPT adjustment event"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="DeathBenefitOptionFromIssue" type="dbopt"/>
+  <xs:element name="DeathBenefitOptionFromRetirement" type="dbopt"/>
+  <xs:element name="DefinitionOfLifeInsurance" type="defn_life_ins"/>
+  <xs:element name="DefinitionOfMaterialChange" type="defn_material_change"/>
   <xs:element name="Dumpin" type="nonnegative_double"/>
   <xs:element name="EffectiveDate" type="calendar_date_int"/>
-  <xs:element name="EffectiveDateToday" type="lmibool"/>
+  <xs:element name="EffectiveDateToday" type="yes_or_no"/>
   <xs:element name="EmployeeClass" type="xs:string"/>
   <xs:element name="ExperienceRatingInitialKFactor" type="nonnegative_double"/>
   <xs:element name="ExperienceReserveRate" type="proportion_double"/>
   <xs:element name="External1035ExchangeAmount" type="nonnegative_double"/>
   <xs:element name="External1035ExchangeBasis" type="nonnegative_double"/>
-  <xs:element name="External1035ExchangeFromMec" type="lmibool"/>
+  <xs:element name="External1035ExchangeFromMec" type="yes_or_no"/>
   <xs:element name="ExtraCompensationOnAssets" type="xs:string"/>
   <xs:element name="ExtraCompensationOnPremium" type="xs:string"/>
   <xs:element name="ExtraMonthlyCustodialFee" type="xs:string"/>
   <xs:element name="FlatExtra" type="xs:string"/>
   <xs:element name="Franchise" type="xs:string"/>
   <xs:element name="FundAllocations" type="xs:string"/>
-  <xs:element name="FundChoiceType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Average fund"/>
-        <xs:enumeration value="Override fund"/>
-        <xs:enumeration value="Choose funds"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="Gender">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Female"/>
-        <xs:enumeration value="Male"/>
-        <xs:enumeration value="Unisex"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="FundChoiceType" type="fund_input_method"/>
+  <xs:element name="Gender" type="gender"/>
   <xs:element name="GeneralAccountRate" type="xs:string"/>
-  <xs:element name="GeneralAccountRateType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Credited rate"/>
-        <xs:enumeration value="Earned rate"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="GroupUnderwritingType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Medical"/>
-        <xs:enumeration value="Paramedical"/>
-        <xs:enumeration value="Nonmedical"/>
-        <xs:enumeration value="Simplified issue"/>
-        <xs:enumeration value="Guaranteed issue"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="HoneymoonEndorsement" type="lmibool"/>
+  <xs:element name="GeneralAccountRateType" type="gen_acct_rate_type"/>
+  <xs:element name="GroupUnderwritingType" type="uw_basis"/>
+  <xs:element name="HoneymoonEndorsement" type="yes_or_no"/>
   <xs:element name="HoneymoonValueSpread" type="xs:string"/>
-  <xs:element name="IncludeInComposite" type="lmibool"/>
+  <xs:element name="IncludeInComposite" type="yes_or_no"/>
   <xs:element name="IndividualPaymentAmount" type="nonnegative_double"/>
-  <xs:element name="IndividualPaymentMode">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Annual"/>
-        <xs:enumeration value="Semiannual"/>
-        <xs:enumeration value="Quarterly"/>
-        <xs:enumeration value="Monthly"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="IndividualPaymentStrategy">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="PmtInputScalar"/>
-        <xs:enumeration value="PmtMinimum"/>
-        <xs:enumeration value="PmtTarget"/>
-        <xs:enumeration value="PmtMEP"/>
-        <xs:enumeration value="PmtGLP"/>
-        <xs:enumeration value="PmtGSP"/>
-        <xs:enumeration value="PmtCorridor"/>
-        <xs:enumeration value="PmtTable"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="IndividualPaymentMode" type="mode"/>
+  <xs:element name="IndividualPaymentStrategy" type="pmt_strategy"/>
   <xs:element name="IndividualPaymentToAge" type="age_int"/>
-  <xs:element name="IndividualPaymentToAlternative" type="mcenum_to_point"/>
+  <xs:element name="IndividualPaymentToAlternative" type="to_point"/>
   <xs:element name="IndividualPaymentToDuration" type="duration_int"/>
   <xs:element name="InforceAsOfDate" type="calendar_date_int"/>
   <xs:element name="InforceAvBeforeLastMc" type="nonnegative_double"/>
@@ -418,7 +322,7 @@
   <xs:element name="InforceGlp" type="nonnegative_double"/>
   <xs:element name="InforceGsp" type="nonnegative_double"/>
   <xs:element name="InforceHoneymoonValue" type="nonnegative_double"/>
-  <xs:element name="InforceIsMec" type="lmibool"/>
+  <xs:element name="InforceIsMec" type="yes_or_no"/>
   <xs:element name="InforceLeastDeathBenefit" type="nonnegative_double"/>
   <xs:element name="InforceMonth" type="month_int"/>
   <xs:element name="InforceNetExperienceReserve" type="xs:double"/>
@@ -436,235 +340,109 @@
   <xs:element name="InsuredPremiumTableFactor" type="nonnegative_double"/>
   <xs:element name="Internal1035ExchangeAmount" type="nonnegative_double"/>
   <xs:element name="Internal1035ExchangeBasis" type="nonnegative_double"/>
-  <xs:element name="Internal1035ExchangeFromMec" type="lmibool"/>
+  <xs:element name="Internal1035ExchangeFromMec" type="yes_or_no"/>
   <xs:element name="IssueAge" type="age_int"/>
   <xs:element name="LastCoiReentryDate" type="calendar_date_int"/>
   <xs:element name="LastMaterialChangeDate" type="calendar_date_int"/>
   <xs:element name="LoanAmount" type="nonnegative_double"/>
   <xs:element name="LoanFromAge" type="age_int"/>
-  <xs:element name="LoanFromAlternative" type="mcenum_from_point"/>
+  <xs:element name="LoanFromAlternative" type="from_point"/>
   <xs:element name="LoanFromDuration" type="duration_int"/>
   <xs:element name="LoanRate" type="proportion_double"/>
-  <xs:element name="LoanRateType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Fixed loan rate"/>
-        <xs:enumeration value="Variable loan rate"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="LoanRateType" type="loan_rate_type"/>
   <xs:element name="LoanToAge" type="age_int"/>
-  <xs:element name="LoanToAlternative" type="mcenum_to_point"/>
+  <xs:element name="LoanToAlternative" type="to_point"/>
   <xs:element name="LoanToDuration" type="duration_int"/>
   <xs:element name="MaleProportion" type="proportion_double"/>
   <xs:element name="MaximumNaar" type="nonnegative_double"/>
   <xs:element name="NewLoan" type="xs:string"/>
   <xs:element name="NonsmokerProportion" type="proportion_double"/>
   <xs:element name="NumberOfIdenticalLives" type="xs:nonNegativeInteger"/>
-  <xs:element name="OverrideCoiMultiplier" type="lmibool"/>
-  <xs:element name="OverrideExperienceReserveRate" type="lmibool"/>
-  <xs:element name="OverrideFundManagementFee" type="lmibool"/>
+  <xs:element name="OverrideCoiMultiplier" type="yes_or_no"/>
+  <xs:element name="OverrideExperienceReserveRate" type="yes_or_no"/>
+  <xs:element name="OverrideFundManagementFee" type="yes_or_no"/>
   <xs:element name="PartialMortalityMultiplier" type="xs:string"/>
   <xs:element name="Payment" type="xs:string"/>
   <xs:element name="PaymentMode" type="xs:string"/>
   <xs:element name="PolicyNumber" type="xs:string"/>
   <xs:element name="PostHoneymoonSpread" type="proportion_double"/>
   <xs:element name="PremiumHistory" type="xs:string"/>
-  <xs:element name="PremiumTaxState" type="mcenum_state"/>
+  <xs:element name="PremiumTaxState" type="state"/>
   <xs:element name="ProductName" type="xs:string"/>
   <xs:element name="ProjectedSalary" type="xs:string"/>
-  <xs:element name="RetireesCanEnroll" type="lmibool"/>
+  <xs:element name="RetireesCanEnroll" type="yes_or_no"/>
   <xs:element name="RetirementAge" type="age_int"/>
-  <xs:element name="RunOrder">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Life by life"/>
-        <xs:enumeration value="Month by month"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="RunOrder" type="run_order"/>
   <xs:element name="SalarySpecifiedAmountCap" type="nonnegative_double"/>
   <xs:element name="SalarySpecifiedAmountFactor" type="nonnegative_double"/>
   <xs:element name="SalarySpecifiedAmountOffset" type="nonnegative_double"/>
   <xs:element name="SeparateAccountRate" type="xs:string"/>
-  <xs:element name="SeparateAccountRateType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Net rate"/>
-        <xs:enumeration value="Gross rate"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="Smoking">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Smoker"/>
-        <xs:enumeration value="Nonsmoker"/>
-        <xs:enumeration value="Unismoke"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="SolveBasis">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Current"/>
-        <xs:enumeration value="Guaranteed"/>
-        <xs:enumeration value="Midpoint"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="SeparateAccountRateType" type="sep_acct_rate_type"/>
+  <xs:element name="Smoking" type="smoking"/>
+  <xs:element name="SolveBasis" type="gen_basis"/>
   <xs:element name="SolveBeginTime" type="duration_int"/>
   <xs:element name="SolveBeginYear" type="duration_int"/>
   <xs:element name="SolveEndTime" type="duration_int"/>
   <xs:element name="SolveEndYear" type="duration_int"/>
-  <xs:element name="SolveFromWhich" type="mcenum_from_point"/>
-  <xs:element name="SolveSeparateAccountBasis">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Hypothetical"/>
-        <xs:enumeration value="Zero"/>
-        <xs:enumeration value="Half of hypothetical"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="SolveTarget">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Endowment"/>
-        <xs:enumeration value="Target CSV"/>
-        <xs:enumeration value="CSV = tax basis"/>
-        <xs:enumeration value="Avoid MEC"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="SolveFromWhich" type="from_point"/>
+  <xs:element name="SolveSeparateAccountBasis" type="sep_basis"/>
+  <xs:element name="SolveTarget" type="solve_target"/>
   <xs:element name="SolveTargetCashSurrenderValue" type="nonnegative_double"/>
   <xs:element name="SolveTargetTime" type="duration_int"/>
   <xs:element name="SolveTargetYear" type="duration_int"/>
-  <xs:element name="SolveTgtAtWhich" type="mcenum_to_point"/>
-  <xs:element name="SolveToWhich" type="mcenum_to_point"/>
-  <xs:element name="SolveType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="No solve"/>
-        <xs:enumeration value="Specified amount"/>
-        <xs:enumeration value="Employee premium"/>
-        <xs:enumeration value="Employer premium"/>
-        <xs:enumeration value="Loan"/>
-        <xs:enumeration value="Withdrawal"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="SolveTgtAtWhich" type="to_point"/>
+  <xs:element name="SolveToWhich" type="to_point"/>
+  <xs:element name="SolveType" type="solve_type"/>
   <xs:element name="SpecamtHistory" type="xs:string"/>
   <xs:element name="SpecifiedAmount" type="xs:string"/>
   <xs:element name="SpecifiedAmountFromIssue" type="nonnegative_double"/>
   <xs:element name="SpecifiedAmountFromRetirement" type="nonnegative_double"/>
-  <xs:element name="SpecifiedAmountStrategyFromIssue">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="SAInputScalar"/>
-        <xs:enumeration value="SAMaximum"/>
-        <xs:enumeration value="SATarget"/>
-        <xs:enumeration value="SAMEP"/>
-        <xs:enumeration value="SAGLP"/>
-        <xs:enumeration value="SAGSP"/>
-        <xs:enumeration value="SACorridor"/>
-        <xs:enumeration value="SASalary"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="SpecifiedAmountStrategyFromIssue" type="sa_strategy"/>
   <xs:element name="SpouseIssueAge" type="age_int"/>
-  <xs:element name="SpouseRider" type="lmibool"/>
+  <xs:element name="SpouseRider" type="yes_or_no"/>
   <xs:element name="SpouseRiderAmount" type="nonnegative_double"/>
-  <xs:element name="State" type="mcenum_state"/>
-  <xs:element name="StateOfJurisdiction" type="mcenum_state"/>
-  <xs:element name="SubstandardTable">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="None"/>
-        <xs:enumeration value="A=+25%"/>
-        <xs:enumeration value="B=+50%"/>
-        <xs:enumeration value="C=+75%"/>
-        <xs:enumeration value="D=+100%"/>
-        <xs:enumeration value="E=+125%"/>
-        <xs:enumeration value="F=+150%"/>
-        <xs:enumeration value="H=+200%"/>
-        <xs:enumeration value="J=+250%"/>
-        <xs:enumeration value="L=+300%"/>
-        <xs:enumeration value="P=+400%"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="SupplementalReportColumn00" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn01" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn02" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn03" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn04" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn05" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn06" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn07" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn08" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn09" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn10" type="mcenum_report_column"/>
-  <xs:element name="SupplementalReportColumn11" type="mcenum_report_column"/>
+  <xs:element name="State" type="state"/>
+  <xs:element name="StateOfJurisdiction" type="state"/>
+  <xs:element name="SubstandardTable" type="table_rating"/>
+  <xs:element name="SupplementalReportColumn00" type="report_column"/>
+  <xs:element name="SupplementalReportColumn01" type="report_column"/>
+  <xs:element name="SupplementalReportColumn02" type="report_column"/>
+  <xs:element name="SupplementalReportColumn03" type="report_column"/>
+  <xs:element name="SupplementalReportColumn04" type="report_column"/>
+  <xs:element name="SupplementalReportColumn05" type="report_column"/>
+  <xs:element name="SupplementalReportColumn06" type="report_column"/>
+  <xs:element name="SupplementalReportColumn07" type="report_column"/>
+  <xs:element name="SupplementalReportColumn08" type="report_column"/>
+  <xs:element name="SupplementalReportColumn09" type="report_column"/>
+  <xs:element name="SupplementalReportColumn10" type="report_column"/>
+  <xs:element name="SupplementalReportColumn11" type="report_column"/>
   <xs:element name="SurviveToAge" type="age_int"/>
-  <xs:element name="SurviveToType">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="No survival limit"/>
-        <xs:enumeration value="Survive to age limit"/>
-        <xs:enumeration value="Survive to duration limit"/>
-        <xs:enumeration value="Survive to life expectancy"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
+  <xs:element name="SurviveToType" type="survival_limit"/>
   <xs:element name="SurviveToYear" type="duration_int"/>
   <xs:element name="TaxBracket" type="xs:string"/>
-  <xs:element name="TermAdjustmentMethod">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Adjust base first"/>
-        <xs:enumeration value="Adjust term first"/>
-        <xs:enumeration value="Adjust base and term proportionately"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="TermRider" type="lmibool"/>
+  <xs:element name="TermAdjustmentMethod" type="term_adj_method"/>
+  <xs:element name="TermRider" type="yes_or_no"/>
   <xs:element name="TermRiderAmount" type="nonnegative_double"/>
   <xs:element name="TermRiderProportion" type="proportion_double"/>
-  <xs:element name="TermRiderUseProportion" type="lmibool"/>
+  <xs:element name="TermRiderUseProportion" type="yes_or_no"/>
   <xs:element name="TotalSpecifiedAmount" type="nonnegative_double"/>
-  <xs:element name="UnderwritingClass">
-    <xs:simpleType>
-      <xs:restriction base="xs:token">
-        <xs:enumeration value="Preferred"/>
-        <xs:enumeration value="Standard"/>
-        <xs:enumeration value="Rated"/>
-        <xs:enumeration value="Ultra"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="UseAverageOfAllFunds" type="lmibool"/>
-  <xs:element name="UseCurrentDeclaredRate" type="lmibool"/>
-  <xs:element name="UseDOB" type="lmibool"/>
-  <xs:element name="UseExperienceRating" type="lmibool"/>
-  <xs:element name="UsePartialMortality" type="lmibool"/>
-  <xs:element name="WaiverOfPremiumBenefit" type="lmibool"/>
-  <xs:element name="WithdrawToBasisThenLoan" type="lmibool"/>
+  <xs:element name="UnderwritingClass" type="class"/>
+  <xs:element name="UseAverageOfAllFunds" type="yes_or_no"/>
+  <xs:element name="UseCurrentDeclaredRate" type="yes_or_no"/>
+  <xs:element name="UseDOB" type="yes_or_no"/>
+  <xs:element name="UseExperienceRating" type="yes_or_no"/>
+  <xs:element name="UsePartialMortality" type="yes_or_no"/>
+  <xs:element name="WaiverOfPremiumBenefit" type="yes_or_no"/>
+  <xs:element name="WithdrawToBasisThenLoan" type="yes_or_no"/>
   <xs:element name="Withdrawal" type="xs:string"/>
   <xs:element name="WithdrawalAmount" type="nonnegative_double"/>
   <xs:element name="WithdrawalFromAge" type="age_int"/>
-  <xs:element name="WithdrawalFromAlternative" type="mcenum_from_point"/>
+  <xs:element name="WithdrawalFromAlternative" type="from_point"/>
   <xs:element name="WithdrawalFromDuration" type="duration_int"/>
   <xs:element name="WithdrawalToAge" type="age_int"/>
-  <xs:element name="WithdrawalToAlternative" type="mcenum_to_point"/>
+  <xs:element name="WithdrawalToAlternative" type="to_point"/>
   <xs:element name="WithdrawalToDuration" type="duration_int"/>
   <xs:element name="ZipCode" type="xs:string"/>
-  <xs:simpleType name="lmibool">
-    <xs:restriction base="xs:token">
-      <xs:enumeration value="Yes"/>
-      <xs:enumeration value="No"/>
-    </xs:restriction>
-  </xs:simpleType>
   <!-- It is infeasible to validate an input sequence with a regex. -->
   <!-- Numeric-range types. -->
   <xs:simpleType name="nonnegative_double">
@@ -701,24 +479,177 @@
     </xs:restriction>
   </xs:simpleType>
   <!-- Enumerations. -->
-  <xs:simpleType name="mcenum_to_point">
+  <xs:simpleType name="yes_or_no">
     <xs:restriction base="xs:token">
-      <xs:enumeration value="Retirement"/>
-      <xs:enumeration value="Year"/>
-      <xs:enumeration value="Age"/>
-      <xs:enumeration value="Maturity"/>
+      <xs:enumeration value="No"/>
+      <xs:enumeration value="Yes"/>
     </xs:restriction>
   </xs:simpleType>
-  <xs:simpleType name="mcenum_from_point">
+  <xs:simpleType name="gender">
     <xs:restriction base="xs:token">
-      <xs:enumeration value="Issue"/>
-      <xs:enumeration value="Year"/>
-      <xs:enumeration value="Age"/>
-      <xs:enumeration value="Retirement"/>
+      <xs:enumeration value="Female"/>
+      <xs:enumeration value="Male"/>
+      <xs:enumeration value="Unisex"/>
     </xs:restriction>
   </xs:simpleType>
-  <xs:simpleType name="mcenum_state">
+  <xs:simpleType name="smoking">
     <xs:restriction base="xs:token">
+      <xs:enumeration value="Smoker"/>
+      <xs:enumeration value="Nonsmoker"/>
+      <xs:enumeration value="Unismoke"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="class">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Preferred"/>
+      <xs:enumeration value="Standard"/>
+      <xs:enumeration value="Rated"/>
+      <xs:enumeration value="Ultra"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="dbopt">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="A"/>
+      <xs:enumeration value="B"/>
+      <xs:enumeration value="ROP"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="mode">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Annual"/>
+      <xs:enumeration value="Semiannual"/>
+      <xs:enumeration value="Quarterly"/>
+      <xs:enumeration value="Monthly"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="gen_basis">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Current"/>
+      <xs:enumeration value="Guaranteed"/>
+      <xs:enumeration value="Midpoint"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="sep_basis">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Hypothetical"/>
+      <xs:enumeration value="Zero"/>
+      <xs:enumeration value="Half of hypothetical"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="uw_basis">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Medical"/>
+      <xs:enumeration value="Paramedical"/>
+      <xs:enumeration value="Nonmedical"/>
+      <xs:enumeration value="Simplified issue"/>
+      <xs:enumeration value="Guaranteed issue"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="table_rating">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="A=+25%"/>
+      <xs:enumeration value="B=+50%"/>
+      <xs:enumeration value="C=+75%"/>
+      <xs:enumeration value="D=+100%"/>
+      <xs:enumeration value="E=+125%"/>
+      <xs:enumeration value="F=+150%"/>
+      <xs:enumeration value="H=+200%"/>
+      <xs:enumeration value="J=+250%"/>
+      <xs:enumeration value="L=+300%"/>
+      <xs:enumeration value="P=+400%"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="solve_type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="No solve"/>
+      <xs:enumeration value="Specified amount"/>
+      <xs:enumeration value="Employee premium"/>
+      <xs:enumeration value="Employer premium"/>
+      <xs:enumeration value="Loan"/>
+      <xs:enumeration value="Withdrawal"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="solve_target">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Endowment"/>
+      <xs:enumeration value="Target CSV"/>
+      <xs:enumeration value="CSV = tax basis"/>
+      <xs:enumeration value="Avoid MEC"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="pmt_strategy">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="PmtInputScalar"/>
+      <xs:enumeration value="PmtMinimum"/>
+      <xs:enumeration value="PmtTarget"/>
+      <xs:enumeration value="PmtMEP"/>
+      <xs:enumeration value="PmtGLP"/>
+      <xs:enumeration value="PmtGSP"/>
+      <xs:enumeration value="PmtCorridor"/>
+      <xs:enumeration value="PmtTable"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="sa_strategy">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="SAInputScalar"/>
+      <xs:enumeration value="SAMaximum"/>
+      <xs:enumeration value="SATarget"/>
+      <xs:enumeration value="SAMEP"/>
+      <xs:enumeration value="SAGLP"/>
+      <xs:enumeration value="SAGSP"/>
+      <xs:enumeration value="SACorridor"/>
+      <xs:enumeration value="SASalary"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="gen_acct_rate_type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Credited rate"/>
+      <xs:enumeration value="Earned rate"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="sep_acct_rate_type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Net rate"/>
+      <xs:enumeration value="Gross rate"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="loan_rate_type">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Fixed loan rate"/>
+      <xs:enumeration value="Variable loan rate"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="fund_input_method">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Average fund"/>
+      <xs:enumeration value="Override fund"/>
+      <xs:enumeration value="Choose funds"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="run_order">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Life by life"/>
+      <xs:enumeration value="Month by month"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="survival_limit">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="No survival limit"/>
+      <xs:enumeration value="Survive to age limit"/>
+      <xs:enumeration value="Survive to duration limit"/>
+      <xs:enumeration value="Survive to life expectancy"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="term_adj_method">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Adjust base first"/>
+      <xs:enumeration value="Adjust term first"/>
+      <xs:enumeration value="Adjust base and term proportionately"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="state">
+    <xs:restriction base="xs:token">
       <xs:enumeration value="AL"/>
       <xs:enumeration value="AK"/>
       <xs:enumeration value="AZ"/>
@@ -774,7 +705,7 @@
       <xs:enumeration value="XX"/>
     </xs:restriction>
   </xs:simpleType>
-  <xs:simpleType name="mcenum_country">
+  <xs:simpleType name="country">
     <xs:restriction base="xs:token">
       <xs:enumeration value="AD"/>
       <xs:enumeration value="AE"/>
@@ -1017,8 +948,46 @@
       <xs:enumeration value="ZW"/>
     </xs:restriction>
   </xs:simpleType>
-  <xs:simpleType name="mcenum_report_column">
+  <xs:simpleType name="defn_life_ins">
     <xs:restriction base="xs:token">
+      <xs:enumeration value="CVAT"/>
+      <xs:enumeration value="GPT"/>
+      <xs:enumeration value="Not 7702 compliant"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="mec_avoid_method">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Allow MEC"/>
+      <xs:enumeration value="Reduce premium"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="defn_material_change">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Unnecessary premium"/>
+      <xs:enumeration value="Benefit increase"/>
+      <xs:enumeration value="Later of increase or unnecessary premium"/>
+      <xs:enumeration value="Earlier of increase or unnecessary premium"/>
+      <xs:enumeration value="GPT adjustment event"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="from_point">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Issue"/>
+      <xs:enumeration value="Year"/>
+      <xs:enumeration value="Age"/>
+      <xs:enumeration value="Retirement"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="to_point">
+    <xs:restriction base="xs:token">
+      <xs:enumeration value="Retirement"/>
+      <xs:enumeration value="Year"/>
+      <xs:enumeration value="Age"/>
+      <xs:enumeration value="Maturity"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="report_column">
+    <xs:restriction base="xs:token">
       <xs:enumeration value="[none]"/>
       <xs:enumeration value="AttainedAge"/>
       <xs:enumeration value="PolicyYear"/>

Modified: lmi/trunk/test_schemata.sh
===================================================================
--- lmi/trunk/test_schemata.sh  2012-03-26 12:31:42 UTC (rev 5441)
+++ lmi/trunk/test_schemata.sh  2012-03-27 12:22:13 UTC (rev 5442)
@@ -121,7 +121,7 @@
 Element 'InforceDcv': [facet 'minInclusive'] The value '-12345.67' is less 
than the minimum value allowed ('0').
 Element 'InforceDcv': '-12345.67' is not a valid value of the atomic type 
'nonnegative_double'.
 Element 'PremiumTaxState': [facet 'enumeration'] The value 'FC' is not an 
element of the set {'AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 
'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 
'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 
'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 
'WV', 'WI', 'WY', 'XX'}.
-Element 'PremiumTaxState': 'FC' is not a valid value of the atomic type 
'mcenum_state'.
+Element 'PremiumTaxState': 'FC' is not a valid value of the atomic type 
'state'.
 Element 'StateOfJurisdictionMangledTag': This element is not expected. 
Expected is ( StateOfJurisdiction ).
 sample_bad fails to validate
   invalid input, jing, .rng:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]