@@ -265,7 +265,7 @@ private void CreateElements(IEnumerable<XmlSchemaElement> elements)
265265
266266 derivedClassModel = new ClassModel ( _configuration )
267267 {
268- Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( rootElement . QualifiedName ) ,
268+ Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( rootElement . QualifiedName , rootElement ) ,
269269 Namespace = CreateNamespaceModel ( elementSource , rootElement . QualifiedName )
270270 } ;
271271
@@ -291,7 +291,7 @@ private void CreateElements(IEnumerable<XmlSchemaElement> elements)
291291
292292 var originalClassModel = new ClassModel ( _configuration )
293293 {
294- Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( type . RootElementName ) ,
294+ Name = _configuration . NamingProvider . RootClassNameFromQualifiedName ( type . RootElementName , rootElement ) ,
295295 Namespace = classModel . Namespace
296296 } ;
297297
@@ -404,7 +404,7 @@ private TypeModel CreateTypeModel(Uri source, XmlSchemaAnnotated type, XmlQualif
404404
405405 private TypeModel CreateTypeModel ( Uri source , XmlSchemaGroup group , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
406406 {
407- var name = "I" + _configuration . NamingProvider . GroupTypeNameFromQualifiedName ( qualifiedName ) ;
407+ var name = "I" + _configuration . NamingProvider . GroupTypeNameFromQualifiedName ( qualifiedName , group ) ;
408408 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
409409
410410 var interfaceModel = new InterfaceModel ( _configuration )
@@ -438,7 +438,7 @@ private TypeModel CreateTypeModel(Uri source, XmlSchemaGroup group, NamespaceMod
438438
439439 private TypeModel CreateTypeModel ( Uri source , XmlSchemaAttributeGroup attributeGroup , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
440440 {
441- var name = "I" + _configuration . NamingProvider . AttributeGroupTypeNameFromQualifiedName ( qualifiedName ) ;
441+ var name = "I" + _configuration . NamingProvider . AttributeGroupTypeNameFromQualifiedName ( qualifiedName , attributeGroup ) ;
442442 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
443443
444444 var interfaceModel = new InterfaceModel ( _configuration )
@@ -470,7 +470,7 @@ private TypeModel CreateTypeModel(Uri source, XmlSchemaAttributeGroup attributeG
470470
471471 private TypeModel CreateTypeModel ( Uri source , XmlSchemaComplexType complexType , NamespaceModel namespaceModel , XmlQualifiedName qualifiedName , List < DocumentationModel > docs )
472472 {
473- var name = _configuration . NamingProvider . ComplexTypeNameFromQualifiedName ( qualifiedName ) ;
473+ var name = _configuration . NamingProvider . ComplexTypeNameFromQualifiedName ( qualifiedName , complexType ) ;
474474 if ( namespaceModel != null )
475475 {
476476 name = namespaceModel . GetUniqueTypeName ( name ) ;
@@ -649,7 +649,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
649649 if ( isEnum )
650650 {
651651 // we got an enum
652- var name = _configuration . NamingProvider . EnumTypeNameFromQualifiedName ( qualifiedName ) ;
652+ var name = _configuration . NamingProvider . EnumTypeNameFromQualifiedName ( qualifiedName , simpleType ) ;
653653 if ( namespaceModel != null ) { name = namespaceModel . GetUniqueTypeName ( name ) ; }
654654
655655 var enumModel = new EnumModel ( _configuration )
@@ -667,7 +667,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
667667 {
668668 var value = new EnumValueModel
669669 {
670- Name = _configuration . NamingProvider . EnumMemberNameFromValue ( enumModel . Name , facet . Value ) ,
670+ Name = _configuration . NamingProvider . EnumMemberNameFromValue ( enumModel . Name , facet . Value , facet ) ,
671671 Value = facet . Value
672672 } ;
673673
@@ -699,7 +699,7 @@ private TypeModel CreateTypeModel(XmlSchemaSimpleType simpleType, NamespaceModel
699699 restrictions = GetRestrictions ( facets , simpleType ) . Where ( r => r != null ) . Sanitize ( ) . ToList ( ) ;
700700 }
701701
702- var simpleModelName = _configuration . NamingProvider . SimpleTypeNameFromQualifiedName ( qualifiedName ) ;
702+ var simpleModelName = _configuration . NamingProvider . SimpleTypeNameFromQualifiedName ( qualifiedName , simpleType ) ;
703703 if ( namespaceModel != null ) { simpleModelName = namespaceModel . GetUniqueTypeName ( simpleModelName ) ; }
704704
705705 var simpleModel = new SimpleModel ( _configuration )
@@ -756,7 +756,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForAttributes(Uri source, Typ
756756 if ( attribute . Use != XmlSchemaUse . Prohibited )
757757 {
758758 var attributeQualifiedName = attribute . AttributeSchemaType . QualifiedName ;
759- var attributeName = _configuration . NamingProvider . AttributeNameFromQualifiedName ( attribute . QualifiedName ) ;
759+ var attributeName = _configuration . NamingProvider . AttributeNameFromQualifiedName ( attribute . QualifiedName , attribute ) ;
760760
761761 if ( attribute . Parent is XmlSchemaAttributeGroup attributeGroup
762762 && attributeGroup . QualifiedName != typeModel . XmlSchemaName
@@ -776,7 +776,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForAttributes(Uri source, Typ
776776 if ( attributeQualifiedName . IsEmpty || string . IsNullOrEmpty ( attributeQualifiedName . Namespace ) )
777777 {
778778 // inner type, have to generate a type name
779- var typeName = _configuration . NamingProvider . PropertyNameFromAttribute ( typeModel . Name , attribute . QualifiedName . Name ) ;
779+ var typeName = _configuration . NamingProvider . PropertyNameFromAttribute ( typeModel . Name , attribute . QualifiedName . Name , attribute ) ;
780780 attributeQualifiedName = new XmlQualifiedName ( typeName , typeModel . XmlSchemaName . Namespace ) ;
781781 // try to avoid name clashes
782782 if ( NameExists ( attributeQualifiedName ) )
@@ -864,7 +864,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForElements(Uri source, TypeM
864864 {
865865 // inner type, have to generate a type name
866866 var typeModelName = xmlParticle is XmlSchemaGroupRef groupRef ? groupRef . RefName : typeModel . XmlSchemaName ;
867- var typeName = _configuration . NamingProvider . PropertyNameFromElement ( typeModelName . Name , element . QualifiedName . Name ) ;
867+ var typeName = _configuration . NamingProvider . PropertyNameFromElement ( typeModelName . Name , element . QualifiedName . Name , element ) ;
868868 elementQualifiedName = new XmlQualifiedName ( typeName , typeModel . XmlSchemaName . Namespace ) ;
869869 // try to avoid name clashes
870870 if ( NameExists ( elementQualifiedName ) )
@@ -877,7 +877,7 @@ private IEnumerable<PropertyModel> CreatePropertiesForElements(Uri source, TypeM
877877 }
878878
879879 var effectiveElement = substitute ? . Element ?? element ;
880- var propertyName = _configuration . NamingProvider . ElementNameFromQualifiedName ( effectiveElement . QualifiedName ) ;
880+ var propertyName = _configuration . NamingProvider . ElementNameFromQualifiedName ( effectiveElement . QualifiedName , effectiveElement ) ;
881881 var originalPropertyName = propertyName ;
882882 if ( propertyName == typeModel . Name )
883883 {
0 commit comments