You can go to the higher nodes in the hierarchy using .. , you can go to ZGLV and SCHET from the root element (eg /ZL_LIST/ZGLV ), because them one by one in the file.
This is how it should work:
SELECT DATA, YEAR, MONTH, ID, EXTR, PROFIL FROM OPENXML(@hDoc, 'ZL_LIST/ZAP/SLUCH') WITH ( DATA date '(/ZL_LIST/ZGLV/DATA)[1]', [YEAR] int '(/ZL_LIST/SCHET/YEAR)[1]', [MONTH] int '(/ZL_LIST/SCHET/MONTH)[1]', [ID] varchar(100) '../PERSON[1]/ID[1]', EXTR [varchar](100) 'EXTR', PROFIL [varchar](100) 'PROFIL' )
The same with XQuery:
SELECT DATA = list.c.value('(ZGLV/DATA/text())[1]', 'date'), YEAR = list.c.value('(SCHET/YEAR/text())[1]', 'int'), MONTH = list.c.value('(SCHET/MONTH/text())[1]', 'int'), ID = zap.c.value('(PERSON/ID/text())[1]', 'varchar(100)'), EXTR = zap.c.value('(SLUCH/EXTR/text())[1]', 'varchar(100)'), PROFIL = zap.c.value('(SLUCH/PROFIL/text())[1]', 'varchar(100)') FROM @XML.nodes('/ZL_LIST[1]') list(c) CROSS APPLY list.c.nodes('ZAP') zap(c)