XmlTextReader.Normalization 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
공백과 특성 값을 정규화할지를 나타내는 값을 가져오거나 설정합니다.
public:
property bool Normalization { bool get(); void set(bool value); };
public bool Normalization { get; set; }
member this.Normalization : bool with get, set
Public Property Normalization As Boolean
속성 값
정규화하려면 true
이고, 그렇지 않으면 false
입니다. 기본값은 false
입니다.
예외
판독기를 닫은 상태에서 이 속성을 설정하는 경우(ReadState가 ReadState.Closed
인 경우)
예제
다음 예제에서는 정규화가 켜진 다음 꺼진 판독기 동작을 보여 집니다.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
// Create the XML fragment to be parsed.
String^ xmlFrag = "<item attr1=' test A B C\n"
"1 2 3'/>\n"
"<item attr2=''/>\n";
// Create the XmlNamespaceManager.
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( gcnew NameTable );
// Create the XmlParserContext.
XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::Preserve );
// Create the reader.
XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
// Show attribute value normalization.
reader->Read();
reader->Normalization = false;
Console::WriteLine( "Attribute value: {0}", reader->GetAttribute( "attr1" ) );
reader->Normalization = true;
Console::WriteLine( "Attribute value: {0}", reader->GetAttribute( "attr1" ) );
// Set Normalization back to false. This allows the reader to accept
// character entities in the � to range. If Normalization had
// been set to true, character entities in this range throw an exception.
reader->Normalization = false;
reader->Read();
reader->MoveToContent();
Console::WriteLine( "Attribute value: {0}", reader->GetAttribute( "attr2" ) );
// Close the reader.
reader->Close();
}
using System;
using System.IO;
using System.Xml;
public class Sample{
public static void Main(){
// Create the XML fragment to be parsed.
string xmlFrag =
@"<item attr1=' test A B C
1 2 3'/>
<item attr2=''/>";
// Create the XmlNamespaceManager.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.Preserve);
// Create the reader.
XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
// Show attribute value normalization.
reader.Read();
reader.Normalization = false;
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"));
reader.Normalization = true;
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"));
// Set Normalization back to false. This allows the reader to accept
// character entities in the � to range. If Normalization had
// been set to true, character entities in this range throw an exception.
reader.Normalization = false;
reader.Read();
reader.MoveToContent();
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr2"));
// Close the reader.
reader.Close();
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
' Create the XML fragment to be parsed.
Dim xmlFrag as string = "<item attr1=' test A B C " + Chr(10) & _
" 1 2 3'/>" + Chr(10) & _
"<item attr2=''/>"
' Create the XmlNamespaceManager.
Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(new NameTable())
' Create the XmlParserContext.
Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.Preserve)
' Create the reader.
Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
' Show attribute value normalization.
reader.Read()
reader.Normalization = false
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"))
reader.Normalization = true
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr1"))
' Set Normalization back to false. This allows the reader to accept
' character entities in the � to range. If Normalization had
' been set to true, character entities in this range throw an exception.
reader.Normalization = false
reader.Read()
reader.MoveToContent()
Console.WriteLine("Attribute value:{0}", reader.GetAttribute("attr2"))
' Close the reader.
reader.Close()
end sub
end class
설명
참고
.NET Framework 2.0부터 새 기능을 활용하기 위해 메서드를 사용하여 XmlReader.Create 인스턴스를 만드는 XmlReader 것이 좋습니다.
이 속성은 언제든지 변경할 수 있으며 다음 읽기 작업에 적용됩니다.
참고
XmlTextReader 특성 값을 정규화하기 위해 이 값을 Normalization
생성하는 XmlValidatingReader데 사용되는 경우 .로 설정true
해야 합니다.
이 값으로 false
설정하면 Normalization
숫자 엔터티에 대한 문자 범위 검사도 비활성화됩니다. 따라서 문자 엔터티(예: �
)가 허용됩니다.
다음은 특성 값 정규화에 대해 설명합니다.
문자 참조의 경우 참조된 문자를 특성 값에 추가합니다.
엔터티 참조 경우 엔터티의 대체 텍스트를 재귀적으로 처리합니다.
공백 문자(#x20, #xD, #xA, #x9)의 경우 정규화된 값에 #x20 추가합니다. (외부 구문 분석된 엔터티 또는 내부 구문 분석된 엔터티의 리터럴 엔터티 값에 속하는 "#xD#xA" 시퀀스에는 단일 #x20 추가됩니다.
표준화된 값에 기타 문자를 추가하여 처리합니다.
선언된 값이 CDATA가 아닌 경우 선행 및 후행 공백(#x20) 문자를 삭제하고 공백(#x20) 문자 시퀀스를 단일 공백(#x20) 문자로 바꿉니다.
XmlTextReader
유일한 특성 또는 CDATA 정규화를 수행합니다. 에 래핑 XmlValidatingReader
되지 않는 한 DTD 관련 정규화를 수행하지 않습니다.
정규화에 대한 자세한 내용은 W3C XML 1.0 권장 사항을 참조하세요.