개체를 XML로 반환하는 저장 프로 시저가 있습니다. 객체가 존재하지 않는 경우 어떻게 처리합니까?SQL Server에서 오는 XML에서 null 개체를 처리하는 방법은 무엇입니까?
XmlReader가 유효한 XML이 아니라고 불평하므로 null 또는 빈 문자열을 반환 할 수 없습니다.
빈 태그를 반환하면 빈 객체인지 객체인지 아닌지 어떻게 알 수 있습니까?
개체를 XML로 반환하는 저장 프로 시저가 있습니다. 객체가 존재하지 않는 경우 어떻게 처리합니까?SQL Server에서 오는 XML에서 null 개체를 처리하는 방법은 무엇입니까?
XmlReader가 유효한 XML이 아니라고 불평하므로 null 또는 빈 문자열을 반환 할 수 없습니다.
빈 태그를 반환하면 빈 객체인지 객체인지 아닌지 어떻게 알 수 있습니까?
글쎄, 일반적인 접근 방식은 xsi:nil="true"
과 같은 일부 마커 속성입니다 (단 하나의 예일지라도).
어느 자체 정의 된 빈 태그 (반환)하고 그것을 확인하거나 사용자가 데이터를 읽는 방식 변경 :
에 대한 독자. 저장 프로 시저 내에서 값을 기존 개체의 경우 1로 설정하고 존재하지 않는 경우 0으로 설정하십시오. 아웃 매개 변수, 당신은에 의해 널 (어떻게 제어하는 XML 생성/소비하는 프로세스의 많은 예) 표현할 수
CREATE PROCEDURE sp_GetObjectAsXml
(
@intId int,
@intExists int out
)
AS
BEGIN
SELECT 'hello world' WHERE 1 = @intId
SET @intExists = @@ROWCOUNT
END
-- Happy Path
DECLARE @intExists int
exec sp_GetObjectAsXml 1, @intExists out
SELECT @intExists -- results in 1
-- Sad Path
DECLARE @intExists int
exec sp_GetObjectAsXml 10, @intExists out
SELECT @intExists -- results in 0
1. 당신의 "외부 제약 조건"에 따라 경우에만 저장 프로 시저의 XML 결과를 역 직렬화 요소를 전혀 포함하지 않습니다.
받는 쪽 (도식 유효성 검사 등)은 선택 요소를 처리 할 준비가되어 있어야합니다.
는 내가 본 두 가지 방법은 다음과 같습니다
첫 번째 옵션은 일반적으로 다루기가 더 쉽지만 더 많은 텍스트가 생성됩니다. 두 번째는 더 작은 xml 파일을 생성 할 수 있습니다.
우리는 하나의 객체를 반환한다고 가정합니다. 우리는 여러 개의 자식 객체를 가질 수 있습니다 : 일부는 null이고 그렇지 않은 객체도 있습니다. –
공정한 포인트. 그 맥락에서 나는 당신의 접근법이 속성을 사용하는 것을 좋아한다. –