잘못된 문자가 포함 된 요소를 추가하는 데 문제가 있습니다. 나는 다음 SQL을 가지고있다sql xml의 느낌표
SELECT
'en-GB' AS '@xml:lang',
'[email protected]' AS '@payloadID',
'2012-02-17T16:46:11' AS '@timestamp',
'1.2.014' AS '@version',
(SELECT
(SELECT /* FROM */
(SELECT 'TecSolExchangeID' AS 'Credential/@domain', 33333 AS 'Credential/Identity'
FOR XML PATH(''), TYPE),
(SELECT 'name' AS 'Credential/@domain', 'Test Limited' AS 'Credential/Identity'
FOR XML PATH(''), TYPE)
FOR XML PATH('From'), TYPE),
(SELECT /* TO */
(SELECT 'TecSolExchangeID' AS 'Credential/@domain', 66666 AS 'Credential/Identity'
FOR XML PATH(''), TYPE),
(SELECT 'name' AS 'Credential/@domain', 'Test Company' AS 'Credential/Identity'
FOR XML PATH(''), TYPE)
FOR XML PATH('To'), TYPE),
(SELECT /* SENDER */
(SELECT 'TecSolExchangeID' AS 'Credential/@domain', 13041 AS 'Credential/Identity', '' AS 'Credential/SharedSecret'
FOR XML PATH(''), TYPE), ' cXML Link v1.3.0' AS 'UserAgent'
FOR XML PATH('Sender'), TYPE)
FROM TEST2.PORDER
WHERE POHNUM_0 = '2011302POH00000002'
FOR XML PATH('Header'),TYPE)
, (SELECT 'production' AS '@deploymentMode',
(SELECT
(SELECT /* ShipNoticeHeader */
(SELECT ''
FOR XML PATH(''),
TYPE)
FOR XML PATH('ShipNoticeHeader'),
TYPE),
(SELECT '' AS '@domain',
'' as 'CarrierIdentfier',
''AS 'ShipmentIdentifier'
FOR XML PATH('ShipControl'),
TYPE),
(SELECT /* Ship Notice Portion */
(SELECT '1;29117/42' AS 'DocumentReference/@PayLoadID',
'' AS 'DocumentReference'
FOR XML PATH('OrderReference'),
TYPE),
(SELECT '4' AS '@Quantity',
'1' AS '@LineNo',
'Box 4' AS 'UnitOfMeasure'
FOR XML PATH('ShipNoticeItem'),
TYPE)
FOR XML PATH('ShipNoticePortion'),
TYPE)
FROM TEST2.PORDER
WHERE POHNUM_0 = '2011302POH00000002'
FOR XML PATH('ShipNoticeRequest'),
TYPE)
FROM TEST2.PORDER
WHERE POHNUM_0 = '2011302POH00000002'
FOR XML PATH('Request'),
TYPE)
FROM TEST2.PORDER
WHERE POHNUM_0 = '2011302POH00000002'
FOR XML PATH('?XML')
나는 알 수 있듯이 루트 필드에는 물음표가있다. 이 오류와 함께 실패합니다. '? XML'에 FOR XML에 필요한 잘못된 XML 식별자가 포함되어 있습니다. '?'(0x003F)는 오류가 발생한 첫 번째 문자입니다. '
내 질문에 잘못된 문자가 들어있는 요소를 만들 수 있어야합니다. 예를 들어 "<! DOCTYPE >"이 될 메시지를 둘러싼 다른 요소가 필요합니다. 이 필드를 제외하고 동일한 시나리오에는 느낌표가 있습니다.
먼저 가능하나요, 그렇다면 누구나 제가 도와 드릴 수 있습니다. 당신이 FOR XML
및 NVARCHAR
조작의 조합을 사용하여이를 달성 할 수 있지만 사전
아마도 데이터베이스 레이어가 실제와 같은 본격적인 문서를 구성하는 데 가장 현명한 장소가 아니라고 생각해 본 적이 있습니까? (실제로 XML이 아니므로 XML 기능이 여러분과 싸우고 있습니다) –