Question : Incorrect syntax near '+'

This error is driving me crazy; it's happening in a stored procedure that is defined in the code snippet. The last two strings that are passed to the stored procedure are throwing this error. What am I doing wrong?!

Thanks in advance! :)
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
CREATE PROCEDURE UpdateMetadata 
	@activityName nvarchar(300),
	@userName nvarchar(128),
	@nomeCurso ntext='',
	@objectivos ntext='',
	@destinatarios ntext='',
	@itinerarioPedagogico ntext='',
	@modalidadeFormacao ntext='',
	@areaFormacao ntext='',
	@planoCurricular ntext='',
	@niveisFormacao ntext='',
	@observacoes ntext=''
 
        --(...)
 
       EXEC [SaveMetaData]
				@activity_pk,
				2,
				@userId,
				2,
				'stringelement^'+@nomeCurso+'^\|stringelement1^'+@objectivos+'^\|stringelement2^'+@destinatarios+'^\|stringelement3^'+@itinerarioPedagogico+'^\|stringelement4^'+@modalidadeFormacao+'^\|stringelement5^'+@areaFormacao+'^\|stringelement6^'+@planoCurricular+'^\|niveisFormacao^'+@niveisFormacao+'^\|stringelement7^'+@observacoes+'^\',
				' '+@nomeCurso+'^\ '+@objectivos+'^\ '+@destinatarios+'^\ '+@itinerarioPedagogico+'^\ '+@modalidadeFormacao+'^\ '+@areaFormacao+'^\ '+@planoCurricular+'^\ '+@niveisFormacao+'^\ '+@observacoes+'^\ ',				
				@userName

Answer : Incorrect syntax near '+'

I believe that you need to build your strings first:

SET @string1 = 'stringelement^'+@nomeCurso+'^\|stringelement1^'+@objectivos+'^\|stringelement2^'+@destinatarios+'^\|stringelement3^'+@itinerarioPedagogico+'^\|stringelement4^'+@modalidadeFormacao+'^\|stringelement5^'+@areaFormacao+'^\|stringelement6^'+@planoCurricular+'^\|niveisFormacao^'+@niveisFormacao+'^\|stringelement7^'+@observacoes+'^\'

Set @string2 = '<Metadata> <stringelement>'+@nomeCurso+'^\</stringelement> <stringelement1>'+@objectivos+'^\</stringelement1> <stringelement2>'+@destinatarios+'^\</stringelement2> <stringelement3>'+@itinerarioPedagogico+'^\</stringelement3> <stringelement4>'+@modalidadeFormacao+'^\</stringelement4> <stringelement5>'+@areaFormacao+'^\</stringelement5> <stringelement6>'+@planoCurricular+'^\</stringelement6> <niveisFormacao>'+@niveisFormacao+'^\</niveisFormacao> <stringelement7>'+@observacoes+'^\</stringelement7> </Metadata>'

and then use the variables in your call
EXEC [SaveMetaData] @activity_pk, 2, @userID, 2, @string1, @string2, @username      
Random Solutions  
 
programming4us programming4us