public Shields(IXPathNavigable path) : base(path) {
            // Get Navigator
            XPathNavigator navigator = path.CreateNavigator();

            // <TypeFieldName>
            XPathNavigator navigatorTypeFieldName = navigator.SelectSingleNode("TypeFieldName");
            if (navigatorTypeFieldName != null) {
                this._typeFieldName = navigatorTypeFieldName.Value;
            }

            // <NumberFieldName>
            XPathNavigator navigatorNumberFieldName = navigator.SelectSingleNode("NumberFieldName");
            if (navigatorNumberFieldName != null) {
                this._numberFieldName = navigatorNumberFieldName.Value;
            }

            // <CombinedFieldName>
            XPathNavigator navigatorCombinedFieldName = navigator.SelectSingleNode("CombinedFieldName");
            if (navigatorCombinedFieldName != null) {
                this._combinedFieldName = navigatorCombinedFieldName.Value;
            }

            // <UseCombinedField>
            XPathNavigator navigatorUseCombinedField = navigator.SelectSingleNode("UseCombinedField");
            if (navigatorUseCombinedField != null) {
                this._useCombinedField = navigatorUseCombinedField.ValueAsBoolean;
            }

            // <ArrayOfShield><Shield></Shield></ArrayOfShield>
            this._shields = new List<Shield>();
            XPathNodeIterator interatorShield = navigator.Select("ArrayOfShield/Shield");
            while (interatorShield.MoveNext()) {
                // Get <Shield>
                XPathNavigator navigatorShield = interatorShield.Current;

                // Add Shield
                Shield shield = new Shield(navigatorShield);
                this._shields.Add(shield);
            }
        }
 public Shield(Shield prototype) : base(prototype) {
     this._shieldType = prototype.ShieldType;
     this._shieldDescription = prototype.ShieldDescription;
 }