1378 {
1379 if (elements.Length == 0 &&
text ==
null)
1380 {
1381 return;
1382 }
1383 if (elements.Length == 1 &&
text ==
null)
1384 {
1385 TypeDesc
typeDesc = (elements[0].IsUnbounded ? elements[0].Mapping.TypeDesc.CreateArrayTypeDesc() : elements[0].Mapping.TypeDesc);
1386 if (!elements[0].
Any && !elements[0].Mapping.TypeDesc.UseReflection && !elements[0].Mapping.TypeDesc.IsOptionalValue)
1387 {
1389 }
1391 return;
1392 }
1394 {
1395 base.Writer.Write(
"if ((object)(");
1397 base.Writer.Write(
") != null)");
1398 }
1399 base.Writer.WriteLine(
"{");
1400 base.Writer.Indent++;
1401 int num = 0;
1404 bool flag = false;
1407 {
1409 {
1410 num++;
1412 {
1414 }
1416 {
1418 }
1419 }
1421 {
1426 if (flag)
1427 {
1428 base.Writer.Write(
"else ");
1429 }
1430 else
1431 {
1432 flag = true;
1433 }
1434 base.Writer.Write(
"if (");
1436 base.Writer.Write(
" == ");
1439 {
1440 base.Writer.Write(
" && ((object)(");
1442 base.Writer.Write(
") != null)");
1443 }
1444 base.Writer.WriteLine(
") {");
1445 base.Writer.Indent++;
1449 {
1451 }
1453 base.Writer.Indent--;
1454 base.Writer.WriteLine(
"}");
1455 }
1456 else
1457 {
1461 if (flag)
1462 {
1463 base.Writer.Write(
"else ");
1464 }
1465 else
1466 {
1467 flag = true;
1468 }
1469 base.Writer.Write(
"if (");
1471 base.Writer.WriteLine(
") {");
1472 base.Writer.Indent++;
1475 {
1477 }
1479 base.Writer.Indent--;
1480 base.Writer.WriteLine(
"}");
1481 }
1482 }
1483 if (num > 0)
1484 {
1485 if (elements.Length - num > 0)
1486 {
1487 base.Writer.Write(
"else ");
1488 }
1490 base.Writer.Write(
"if (");
1492 base.Writer.Write(
" is ");
1494 base.Writer.WriteLine(
") {");
1495 base.Writer.Indent++;
1497 base.Writer.Write(
" elem = (");
1499 base.Writer.Write(
")");
1501 base.Writer.WriteLine(
";");
1504 {
1506 {
1507 base.Writer.Write(
"else ");
1508 }
1509 string text6 =
null;
1511 {
1514 base.Writer.Write(
"if (");
1516 base.Writer.Write(
" == ");
1519 {
1520 base.Writer.Write(
" && ((object)(");
1522 base.Writer.Write(
") != null)");
1523 }
1524 base.Writer.WriteLine(
") {");
1525 base.Writer.Indent++;
1526 }
1527 base.Writer.Write(
"if (elem.Name == ");
1529 base.Writer.Write(
" && elem.NamespaceURI == ");
1531 base.Writer.WriteLine(
") {");
1532 base.Writer.Indent++;
1535 {
1536 base.Writer.Indent--;
1537 base.Writer.WriteLine(
"}");
1538 base.Writer.WriteLine(
"else {");
1539 base.Writer.Indent++;
1540 base.Writer.WriteLine(
"// throw Value '{0}' of the choice identifier '{1}' does not match element '{2}' from namespace '{3}'.");
1541 base.Writer.Write(
"throw CreateChoiceIdentifierValueException(");
1543 base.Writer.Write(
", ");
1545 base.Writer.WriteLine(
", elem.Name, elem.NamespaceURI);");
1546 base.Writer.Indent--;
1547 base.Writer.WriteLine(
"}");
1548 }
1549 base.Writer.Indent--;
1550 base.Writer.WriteLine(
"}");
1551 }
1553 {
1554 base.Writer.WriteLine(
"else {");
1555 base.Writer.Indent++;
1556 }
1558 {
1560 }
1561 else
1562 {
1563 base.Writer.WriteLine(
"throw CreateUnknownAnyElementException(elem.Name, elem.NamespaceURI);");
1564 }
1566 {
1567 base.Writer.Indent--;
1568 base.Writer.WriteLine(
"}");
1569 }
1570 base.Writer.Indent--;
1571 base.Writer.WriteLine(
"}");
1572 }
1574 {
1577 if (elements.Length != 0)
1578 {
1579 base.Writer.Write(
"else ");
1580 base.Writer.Write(
"if (");
1582 base.Writer.WriteLine(
") {");
1583 base.Writer.Indent++;
1586 {
1588 }
1590 base.Writer.Indent--;
1591 base.Writer.WriteLine(
"}");
1592 }
1593 else
1594 {
1597 {
1599 }
1601 }
1602 }
1603 if (elements.Length != 0)
1604 {
1605 base.Writer.Write(
"else ");
1607 {
1608 base.Writer.Write(
" if ((object)(");
1610 base.Writer.Write(
") != null)");
1611 }
1612 base.Writer.WriteLine(
"{");
1613 base.Writer.Indent++;
1614 base.Writer.Write(
"throw CreateUnknownTypeException(");
1616 base.Writer.WriteLine(
");");
1617 base.Writer.Indent--;
1618 base.Writer.WriteLine(
"}");
1619 }
1620 base.Writer.Indent--;
1621 base.Writer.WriteLine(
"}");
1622 }
void WriteQuotedCSharpString(string value)
void WriteInstanceOf(string source, string escapedTypeName, bool useReflection)
void WriteText(string source, TextAccessor text)
void WriteElement(string source, ElementAccessor element, string arrayName, bool writeAccessor)
void WriteChoiceTypeCheck(string source, string fullTypeName, bool useReflection, ChoiceIdentifierAccessor choice, string enumName, TypeDesc typeDesc)
string FindChoiceEnumValue(ElementAccessor element, EnumMapping choiceMapping, bool useReflection)