@@ -263,7 +263,7 @@ private void CreateElements(IEnumerable<XmlSchemaElement> elements)
263263
264264 derivedClassModel = new ClassModel ( _configuration )
265265 {
266- Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( rootElement . QualifiedName ) ,
266+ Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( rootElement . QualifiedName , rootElement ) ,
267267 Namespace = CreateNamespaceModel ( elementSource , rootElement . QualifiedName )
268268 } ;
269269
@@ -289,7 +289,7 @@ private void CreateElements(IEnumerable<XmlSchemaElement> elements)
289289
290290 var originalClassModel = new ClassModel ( _configuration )
291291 {
292- Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( type . RootElementName ) ,
292+ Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( type . RootElementName , rootElement ) ,
293293 Namespace = classModel . Namespace
294294 } ;
295295
@@ -403,7 +403,7 @@ private TypeModel CreateTypeModel(XmlSchemaAnnotated type, XmlQualifiedName qual
403403
404404 private TypeModel CreateTypeModel ( Uri source , XmlSchemaGroup group , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
405405 {
406- var name = "I" + _configuration . NamingProvider . GroupTypeNameFromQualifiedName ( qualifiedName ) ;
406+ var name = "I" + _configuration . NamingProvider . GroupTypeNameFromQualifiedName ( qualifiedName , group ) ;
407407 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
408408
409409 var interfaceModel = new InterfaceModel ( _configuration )
@@ -437,7 +437,7 @@ private TypeModel CreateTypeModel(Uri source, XmlSchemaGroup group, NamespaceMod
437437
438438 private TypeModel CreateTypeModel ( Uri source , XmlSchemaAttributeGroup attributeGroup , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
439439 {
440- var name = "I" + _configuration . NamingProvider . AttributeGroupTypeNameFromQualifiedName ( qualifiedName ) ;
440+ var name = "I" + _configuration . NamingProvider . AttributeGroupTypeNameFromQualifiedName ( qualifiedName , attributeGroup ) ;
441441 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
442442
443443 var interfaceModel = new InterfaceModel ( _configuration )
@@ -469,7 +469,7 @@ private TypeModel CreateTypeModel(Uri source, XmlSchemaAttributeGroup attributeG
469469
470470 private TypeModel CreateTypeModel ( Uri source , XmlSchemaComplexType complexType , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
471471 {
472- var name = _configuration . NamingProvider . ComplexTypeNameFromQualifiedName ( qualifiedName ) ;
472+ var name = _configuration . NamingProvider . ComplexTypeNameFromQualifiedName ( qualifiedName , complexType ) ;
473473 if ( namespaceModel != null )
474474 {
475475 name = namespaceModel . GetUniqueTypeName ( name ) ;
@@ -648,7 +648,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
648648 if ( isEnum )
649649 {
650650 // we got an enum
651- var name = _configuration . NamingProvider . EnumTypeNameFromQualifiedName ( qualifiedName ) ;
651+ var name = _configuration . NamingProvider . EnumTypeNameFromQualifiedName ( qualifiedName , simpleType ) ;
652652 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
653653
654654 var enumModel = new EnumModel ( _configuration )
@@ -666,7 +666,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
666666 {
667667 var value = new EnumValueModel
668668 {
669- Name = _configuration . NamingProvider . EnumMemberNameFromValue ( enumModel . Name , facet . Value ) ,
669+ Name = _configuration . NamingProvider . EnumMemberNameFromValue ( enumModel . Name , facet . Value , facet ) ,
670670 Value = facet . Value
671671 } ;
672672
@@ -698,7 +698,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
698698 restrictions = GetRestrictions ( facets , simpleType ) . Where ( r => r != null ) . Sanitize ( ) . ToList ( ) ;
699699 }
700700
701- var simpleModelName = _configuration . NamingProvider . SimpleTypeNameFromQualifiedName ( qualifiedName ) ;
701+ var simpleModelName = _configuration . NamingProvider . SimpleTypeNameFromQualifiedName ( qualifiedName , simpleType ) ;
702702 if ( namespaceModel != null ) { simpleModelName = namespaceModel . GetUniqueTypeName ( simpleModelName ) ; }
703703
704704 var simpleModel = new SimpleModel ( _configuration )
@@ -755,7 +755,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForAttributes(Uri source, Typ
755755 if ( attribute . Use != XmlSchemaUse . Prohibited )
756756 {
757757 var attributeQualifiedName = attribute . AttributeSchemaType . QualifiedName ;
758- var attributeName = _configuration . NamingProvider . AttributeNameFromQualifiedName ( attribute . QualifiedName ) ;
758+ var attributeName = _configuration . NamingProvider . AttributeNameFromQualifiedName ( attribute . QualifiedName , attribute ) ;
759759
760760 if ( attribute . Parent is XmlSchemaAttributeGroup attributeGroup
761761 && attributeGroup . QualifiedName != typeModel . XmlSchemaName
@@ -775,7 +775,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForAttributes(Uri source, Typ
775775 if ( attributeQualifiedName . IsEmpty || string . IsNullOrEmpty ( attributeQualifiedName . Namespace ) )
776776 {
777777 // inner type, have to generate a type name
778- var typeName = _configuration . NamingProvider . PropertyNameFromAttribute ( typeModel . Name , attribute . QualifiedName . Name ) ;
778+ var typeName = _configuration . NamingProvider . PropertyNameFromAttribute ( typeModel . Name , attribute . QualifiedName . Name , attribute ) ;
779779 attributeQualifiedName = new XmlQualifiedName ( typeName , typeModel . XmlSchemaName . Namespace ) ;
780780 // try to avoid name clashes
781781 if ( NameExists ( attributeQualifiedName ) )
@@ -863,7 +863,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForElements(Uri source, TypeM
863863 {
864864 // inner type, have to generate a type name
865865 var typeModelName = xmlParticle is XmlSchemaGroupRef groupRef ? groupRef . RefName : typeModel . XmlSchemaName ;
866- var typeName = _configuration . NamingProvider . PropertyNameFromElement ( typeModelName . Name , element . QualifiedName . Name ) ;
866+ var typeName = _configuration . NamingProvider . PropertyNameFromElement ( typeModelName . Name , element . QualifiedName . Name , element ) ;
867867 elementQualifiedName = new XmlQualifiedName ( typeName , typeModel . XmlSchemaName . Namespace ) ;
868868 // try to avoid name clashes
869869 if ( NameExists ( elementQualifiedName ) )
@@ -876,7 +876,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForElements(Uri source, TypeM
876876 }
877877
878878 var effectiveElement = substitute ? . Element ?? element ;
879- var propertyName = _configuration . NamingProvider . ElementNameFromQualifiedName ( effectiveElement . QualifiedName ) ;
879+ var propertyName = _configuration . NamingProvider . ElementNameFromQualifiedName ( effectiveElement . QualifiedName , effectiveElement ) ;
880880 var originalPropertyName = propertyName ;
881881 if ( propertyName == typeModel . Name )
882882 {
0 commit comments