public void IgnoreCase () { CodeIdentifiers c = new CodeIdentifiers (false); c.Add ("test", "x"); c.Add ("Test", "y"); Assert.IsTrue ("test" != c.AddUnique ("Test", "z"), "#1"); Assert.IsTrue (c.IsInUse ("tEsT"), "#2"); Assert.AreEqual ("camelCase", c.MakeRightCase ("CAMELCASE"), "#3"); }
void ImportTextMember(CodeIdentifiers members, XmlQualifiedName simpleContentType) { TypeMapping mapping; bool isMixed = false; if (simpleContentType != null) { mapping = ImportType(simpleContentType, typeof(TypeMapping), null); if (!(mapping is PrimitiveMapping || mapping.TypeDesc.CanBeTextValue)) { return; } } else { // this is a case of the mixed content type, just generate string typeDesc isMixed = true; mapping = new PrimitiveMapping(); mapping.TypeDesc = scope.GetTypeDesc(typeof(string)); mapping.TypeName = mapping.TypeDesc.DataType.Name; } TextAccessor accessor = new TextAccessor(); accessor.Mapping = mapping; MemberMapping member = new MemberMapping(); member.Elements = new ElementAccessor[0]; member.Text = accessor; if (isMixed) { // just generate code for the standard mixed case (string[] text) member.TypeDesc = accessor.Mapping.TypeDesc.CreateArrayTypeDesc(); member.Name = members.MakeRightCase("Text"); } else { // import mapping for the simpleContent PrimitiveMapping pm = (PrimitiveMapping)accessor.Mapping; if (pm.IsList) { member.TypeDesc = accessor.Mapping.TypeDesc.CreateArrayTypeDesc(); member.Name = members.MakeRightCase("Text"); } else { member.TypeDesc = accessor.Mapping.TypeDesc; member.Name = members.MakeRightCase("Value"); } } member.Name = members.AddUnique(member.Name, member); }
void ImportAnyMember(XmlSchemaAny any, string identifier, CodeIdentifiers members, string ns, bool mixed) { ElementAccessor accessor = ImportAny(any, !mixed); accessor.Name = identifier; accessor.Namespace = ns; MemberMapping member = new MemberMapping(); member.Elements = new ElementAccessor[] { accessor }; member.Name = members.MakeRightCase("Any"); member.Name = members.AddUnique(member.Name, member); member.TypeDesc = ((TypeMapping)accessor.Mapping).TypeDesc; bool repeats = any.IsMultipleOccurrence; if (mixed) { SpecialMapping textMapping = new SpecialMapping(); textMapping.TypeDesc = scope.GetTypeDesc(typeof(XmlNode)); textMapping.TypeName = textMapping.TypeDesc.Name; member.TypeDesc = textMapping.TypeDesc; TextAccessor text = new TextAccessor(); text.Mapping = textMapping; member.Text = text; repeats = true; } if (repeats) { member.TypeDesc = member.TypeDesc.CreateArrayTypeDesc(); } }
void ImportAnyAttributeMember(XmlSchemaAnyAttribute any, CodeIdentifiers members) { SpecialMapping mapping = new SpecialMapping(); mapping.TypeDesc = scope.GetTypeDesc(typeof(XmlAttribute)); mapping.TypeName = mapping.TypeDesc.Name; AttributeAccessor accessor = new AttributeAccessor(); accessor.Any = true; accessor.Mapping = mapping; MemberMapping member = new MemberMapping(); member.Elements = new ElementAccessor[0]; member.Attribute = accessor; member.Name = members.MakeRightCase("AnyAttr"); member.Name = members.AddUnique(member.Name, member); member.TypeDesc = ((TypeMapping)accessor.Mapping).TypeDesc; member.TypeDesc = member.TypeDesc.CreateArrayTypeDesc(); }
private MemberMapping ImportAnyMember(XmlSchemaAny any, string identifier, CodeIdentifiers members, CodeIdentifiers membersScope, INameScope elementsScope, string ns, ref bool mixed, ref bool needExplicitOrder, bool allowDuplicates) { ElementAccessor[] accessors = ImportAny(any, !mixed, ns); AddScopeElements(elementsScope, accessors, ref needExplicitOrder, allowDuplicates); MemberMapping member = new MemberMapping(); member.Elements = accessors; member.Name = membersScope.MakeRightCase("Any"); member.Name = membersScope.AddUnique(member.Name, member); members.Add(member.Name, member); member.TypeDesc = ((TypeMapping)accessors[0].Mapping).TypeDesc; bool repeats = any.IsMultipleOccurrence; if (mixed) { SpecialMapping textMapping = new SpecialMapping(); textMapping.TypeDesc = Scope.GetTypeDesc(typeof(XmlNode)); textMapping.TypeName = textMapping.TypeDesc.Name; member.TypeDesc = textMapping.TypeDesc; TextAccessor text = new TextAccessor(); text.Mapping = textMapping; member.Text = text; repeats = true; mixed = false; } if (repeats) { member.TypeDesc = member.TypeDesc.CreateArrayTypeDesc(); } return member; }
private MemberMapping ImportAnyMember(XmlSchemaAny any, string identifier, CodeIdentifiers members, CodeIdentifiers membersScope, INameScope elementsScope, string ns, ref bool mixed, ref bool needExplicitOrder, bool allowDuplicates) { MemberMapping mapping; ElementAccessor[] elements = this.ImportAny(any, !mixed, ns); this.AddScopeElements(elementsScope, elements, ref needExplicitOrder, allowDuplicates); mapping = new MemberMapping { Elements = elements, Name = membersScope.MakeRightCase("Any"), Name = membersScope.AddUnique(mapping.Name, mapping) }; members.Add(mapping.Name, mapping); mapping.TypeDesc = elements[0].Mapping.TypeDesc; bool isMultipleOccurrence = any.IsMultipleOccurrence; if (mixed) { SpecialMapping mapping2; mapping2 = new SpecialMapping { TypeDesc = base.Scope.GetTypeDesc(typeof(XmlNode)), TypeName = mapping2.TypeDesc.Name }; mapping.TypeDesc = mapping2.TypeDesc; TextAccessor accessor = new TextAccessor { Mapping = mapping2 }; mapping.Text = accessor; isMultipleOccurrence = true; mixed = false; } if (isMultipleOccurrence) { mapping.TypeDesc = mapping.TypeDesc.CreateArrayTypeDesc(); } return mapping; }
private void ImportAnyAttributeMember(XmlSchemaAnyAttribute any, CodeIdentifiers members, CodeIdentifiers membersScope) { SpecialMapping mapping; MemberMapping mapping2; mapping = new SpecialMapping { TypeDesc = base.Scope.GetTypeDesc(typeof(XmlAttribute)), TypeName = mapping.TypeDesc.Name }; AttributeAccessor accessor = new AttributeAccessor { Any = true, Mapping = mapping }; mapping2 = new MemberMapping { Elements = new ElementAccessor[0], Attribute = accessor, Name = membersScope.MakeRightCase("AnyAttr"), Name = membersScope.AddUnique(mapping2.Name, mapping2) }; members.Add(mapping2.Name, mapping2); mapping2.TypeDesc = accessor.Mapping.TypeDesc; mapping2.TypeDesc = mapping2.TypeDesc.CreateArrayTypeDesc(); }
private void ImportTextMember(CodeIdentifiers members, CodeIdentifiers membersScope, XmlQualifiedName simpleContentType) { TypeMapping defaultMapping; bool flag = false; if (simpleContentType != null) { defaultMapping = this.ImportType(simpleContentType, typeof(TypeMapping), null, TypeFlags.CanBeElementValue | TypeFlags.CanBeTextValue, false); if (!(defaultMapping is PrimitiveMapping) && !defaultMapping.TypeDesc.CanBeTextValue) { return; } } else { flag = true; defaultMapping = this.GetDefaultMapping(TypeFlags.CanBeElementValue | TypeFlags.CanBeTextValue); } TextAccessor accessor = new TextAccessor { Mapping = defaultMapping }; MemberMapping mapping2 = new MemberMapping { Elements = new ElementAccessor[0], Text = accessor }; if (flag) { mapping2.TypeDesc = accessor.Mapping.TypeDesc.CreateArrayTypeDesc(); mapping2.Name = members.MakeRightCase("Text"); } else { PrimitiveMapping mapping = (PrimitiveMapping) accessor.Mapping; if (mapping.IsList) { mapping2.TypeDesc = accessor.Mapping.TypeDesc.CreateArrayTypeDesc(); mapping2.Name = members.MakeRightCase("Text"); } else { mapping2.TypeDesc = accessor.Mapping.TypeDesc; mapping2.Name = members.MakeRightCase("Value"); } } mapping2.Name = membersScope.AddUnique(mapping2.Name, mapping2); members.Add(mapping2.Name, mapping2); }