공백 정의
XML에서와 마찬가지로 XAML의 공백 문자는 공백, 줄 바꿈 및 탭이며, 이러한 값은 각각 유니코드 값 0020, 000A 및 0009에 해당합니다.
공백 정규화
XAML 프로세서가 XAML 파일을 처리하면 기본적으로 공백이 다음과 같이 정규화됩니다.
동아시아 문자 사이의 줄 바꿈 문자가 제거됩니다. "동아시아 문자"에 대한 정의는 이 항목 아래쪽의 동아시아 문자 단원을 참조하십시오.
모든 공백 문자(공백, 줄 바꿈, 탭)가 공백으로 변환됩니다.
연속되는 모든 공백이 삭제되고 단일 공백으로 바뀝니다.
시작 태그 바로 다음에 오는 공백이 삭제됩니다.
끝 태그 바로 앞에 오는 공백이 삭제됩니다.
여기서 "기본"이란 의미는 xml:space의 기본값이 나타내는 상태에 해당합니다.
내부 텍스트의 공백 및 문자열 기본 형식
위의 정규화 규칙은 XAML 요소의 내부 텍스트에 적용됩니다. 정규화를 수행한 이후 XAML 프로세서는 다음과 같이 모든 내부 텍스트를 적절한 형식으로 변환합니다.
속성이 컬렉션 형식이 아닌 경우 Object 형식이 아니면 XAML 프로세서는 형식 변환기를 통해 해당 형식으로 변환하려고 시도합니다. 변환이 실패하면 컴파일 타임 오류가 발생합니다.
속성이 컬렉션 형식이고 내부 텍스트가 연속적(중간에 요소 태그가 없음)이면 내부 텍스트가 단일 String으로 구문 분석됩니다. 컬렉션 형식에 String이 허용되지 않는 경우에는 컴파일 타임 오류가 발생합니다.
속성이 Object 형식이면 내부 텍스트가 단일 String으로 구문 분석됩니다. Object 형식은 String 등의 단일 개체를 나타내므로 중간에 요소 태그가 있으면 컴파일 타임 오류가 발생합니다.
속성이 컬렉션 형식이고 내부 텍스트가 연속적이지 않으면 첫 번째 부분 문자열이 String으로 변환되어 컬렉션 항목으로 추가되고, 중간 요소가 컬렉션 항목으로 추가된 다음 마지막 부분 문자열(있는 경우)이 컬렉션에 세 번째 String 항목으로 추가됩니다.
공백 및 텍스트 콘텐츠 모델
공백 유지
나중에 XAML 프로세서 공백 정규화의 영향을 받지 않도록 여러 가지 방법으로 소스 XAML에 공백을 유지할 수 있습니다.
xml:space="preserve": 이 특성은 공백을 유지할 요소의 수준에서 지정합니다. 이 특성을 사용하면 코드 편집 응용 프로그램에서 요소를 한 눈에 이해하기 쉬운 중첩 구조로 "보기 좋게" 정렬하기 위해 추가하는 공백을 포함하여 모든 공백이 유지됩니다. 그러나 공백이 렌더링되는지 여부는 포함하는 요소의 콘텐츠 모델에 따라 달라집니다. 대부분의 개체 모델에서는 공백이 중요한 항목으로 인식되지 않기 때문에 xml:space="preserve"를 루트 수준에서 지정하지 않는 것이 좋습니다. 이 특성은 문자열 내의 공백을 렌더링하는 요소 또는 유효한 공백 컬렉션인 요소의 수준에서만 설정하는 것이 좋습니다.
엔터티 및 줄 바꿈하지 않는 공백: XAML에서는 텍스트 개체 모델 내에 유니코드 엔터티를 삽입할 수 있습니다. 줄 바꿈하지 않는 공백(UTF-8 인코딩의 경우  )과 같은 전용 엔터티를 사용하거나, 줄 바꿈하지 않는 공백 문자를 지원하는 서식 있는 텍스트 컨트롤을 사용할 수도 있습니다. 엔터티의 런타임 출력은 패널과 여백을 제대로 사용했는지 여부와 같은 일반적인 레이아웃 기능에 비해 더 많은 요인의 영향을 받을 수 있기 때문에 엔터티를 사용하여 들여쓰기 같은 레이아웃 특성을 시뮬레이션할 때는 주의해야 합니다. 예를 들어 엔터티는 글꼴에 매핑되므로 선택한 글꼴에 따라 크기가 달라질 수 있습니다.
동아시아 문자
"동아시아 문자"는 U+20000 - U+2FFFD 및 U+30000 - U+3FFFD 범위의 유니코드 문자 집합으로 정의되며 이 하위 집합을 "CJK ideographs"라고도 합니다. 자세한 내용은 http://www.unicode.org를 참조하십시오.