Support a `name` attribute for XML tags for attributes in zapxml (#36270)

* Add support for a name attribute in zapxml

* Add unit test
diff --git a/scripts/py_matter_idl/matter_idl/test_zapxml.py b/scripts/py_matter_idl/matter_idl/test_zapxml.py
index 5ea15e2..2bf4338 100755
--- a/scripts/py_matter_idl/matter_idl/test_zapxml.py
+++ b/scripts/py_matter_idl/matter_idl/test_zapxml.py
@@ -360,6 +360,33 @@
         )
         self.assertEqual(idl, Idl(global_structs=[struct]))
 
+    def testNameAttribute(self):
+        idl = XmlToIdl('''<?xml version="1.0"?>
+            <configurator>
+              <cluster>
+                  <name>TestCluster</name>
+                  <code>20</code>
+
+                  <attribute side="server" code="0x0002" name="SubjectsPerAccessControlEntry" define="SUBJECTS_PER_ACCESS_CONTROL_ENTRY" type="int16u" min="4" default="4">
+                     <mandatoryConform/>
+                   </attribute>
+              </cluster>
+            </configurator>
+        ''')
+        self.assertEqual(idl,
+                         Idl(clusters=[
+                             Cluster(name='TestCluster', code=20,
+                                     attributes=[
+                                         Attribute(
+                                             definition=Field(
+                                                 data_type=DataType(name='int16u', min_value=4),
+                                                 code=2,
+                                                 name='SubjectsPerAccessControlEntry',
+                                             ),
+                                             qualities=AttributeQuality.READABLE,
+                                             readacl=AccessPrivilege.VIEW,
+                                             writeacl=AccessPrivilege.OPERATE)])]))
+
     def testStruct(self):
         idl = XmlToIdl('''<?xml version="1.0"?>
             <configurator>
diff --git a/scripts/py_matter_idl/matter_idl/zapxml/handlers/parsing.py b/scripts/py_matter_idl/matter_idl/zapxml/handlers/parsing.py
index 5244e65..30ca8a5 100644
--- a/scripts/py_matter_idl/matter_idl/zapxml/handlers/parsing.py
+++ b/scripts/py_matter_idl/matter_idl/zapxml/handlers/parsing.py
@@ -81,10 +81,12 @@
     if 'max' in attrs:
         data_type.max_value = ParseInt(attrs['max'], data_type)
 
+    name = attrs['name'] if 'name' in attrs else ''
+
     field = Field(
         data_type=data_type,
         code=ParseInt(attrs['code']),
-        name='',
+        name=name,
         is_list=(attrs['type'].lower() == 'array')
     )