Share via


ILSSerializer 인터페이스

정의

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

[Android.Runtime.Register("org/w3c/dom/ls/LSSerializer", "", "Org.W3c.Dom.LS.ILSSerializerInvoker")]
public interface ILSSerializer : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("org/w3c/dom/ls/LSSerializer", "", "Org.W3c.Dom.LS.ILSSerializerInvoker")>]
type ILSSerializer = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
특성
구현

설명

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다. XML 데이터는 문자열 또는 출력 스트림에 기록됩니다. serialization 중에 변경되거나 수정된 내용은 직렬화된 데이터에만 영향을 줍니다. Document 개체와 해당 자식은 serialization 작업에 의해 변경되지 않습니다.

XML 데이터를 serialization하는 동안 네임스페이스 수정은 [DOM 수준 3 Core] , 부록 B에 정의된 대로 수행됩니다. [DOM 수준 2 Core]는 빈 문자열을 실제 네임스페이스 URI로 허용합니다. namespaceURINode 가 빈 문자열인 경우 serialization은 접두사를 무시하여 로 처리null합니다.

LSSerializer 는 serialization에 대한 모든 노드 형식을 허용합니다. 또는 Entity형식 Document 의 노드의 경우 가능한 경우 올바른 형식의 XML이 만들어집니다(문서 또는 엔터티가 구문 분석 작업에서 가져온 후 생성된 이후 변경되지 않은 경우 올바른 형식이 보장됨). 이러한 노드 형식에 대한 직렬화된 출력은 각각 XML 문서 또는 외부 XML 엔터티이며 XML 파서에 대해 허용되는 입력입니다. 다른 모든 유형의 노드의 경우 직렬화된 양식은 구현에 따라 달라집니다.

Document, DocumentFragment또는 Entity serialize Nodes 되는 내에서 는 XML 선언("xml-declaration" 매개 변수가 로 설정false되지 않은 경우) 및 DTD 하위 집합(DOM에 있는 경우)을 포함하여 다음과 같이 <ul><li>Document 노드가 기록되는 대로 처리됩니다. 노드를 작성하면 Document 전체 문서가 직렬화됩니다. </li li>Entity<> 노드는 에서 LSSerializer.write직접 작성할 때 엔터티 확장을 출력하지만 네임스페이스 수정은 수행되지 않습니다. 결과 출력은 외부 엔터티로 유효합니다. </li li>>< 매개 변수 "엔터티"가 로 trueEntityReference 설정된 경우 노드는 출력에서 "" &amp;entityName;형식의 엔터티 참조로 직렬화됩니다. 엔터티 참조의 자식 노드(확장)는 무시됩니다. 매개 변수 " 엔터티"가 로 false설정된 경우 엔터티 참조의 자식만 직렬화됩니다. EntityReference 자식이 없는 노드(해당 노드 또는 해당 EntityEntity 노드에 자식이 없음)는 항상 직렬화됩니다. <지정된 출력 인코딩에 나타낼 수 없는 콘텐츠 문자를 포함하는 /li li>CDATAsections<>는 "split-cdata-sections" 매개 변수에 따라 처리됩니다. 매개 변수가 로 trueCDATAsections 설정된 경우 는 분할되고, 대표할 수 없는 문자는 일반 콘텐츠에서 숫자 문자 참조로 직렬화됩니다. 정확한 위치와 분할 수는 지정되지 않았습니다. 매개 변수가 로 설정된 false경우 의 대표할 수 없는 문자 CDATAsection 는 매개 변수 "올바른 형식"이 로 설정된 true경우 오류로 "wf-invalid-character" 보고됩니다. 오류를 복구할 수 없습니다. 대체 문자를 제공하고 serialization을 계속하기 위한 메커니즘이 없습니다. </li li><>DocumentFragment 노드는 문서 조각에 나타나는 순서대로 문서 조각의 자식을 직렬화하여 serialize됩니다. </li li><> 다른 모든 노드 형식(요소, 텍스트 등)은 해당 XML 원본 형식으로 직렬화됩니다. </li></ul<>p ><b>Note:</b> 의 Node 직렬화가 항상 잘 구성된 XML 문서를 생성하는 것은 아닙니다. 즉, 결과 serialization을 구문 분석할 때 가 LSParser 심각한 오류를 발생시킬 수 있습니다.

문서의 문자 데이터 내에서(태그 외부) 직접 나타낼 수 없는 문자는 문자 참조로 바뀝니다. '<' 및 '&'의 발생은 미리 정의된 엔터티 &로 대체됩니다. Lt; 및 & 앰프;. 다른 미리 정의된 엔터티(& gt;, & apos;, 및 & quot;) 필요한 경우(예: & 사용)를 제외하고 사용되지 않을 수 있습니다. Gt; ']]>')과 같은 경우 출력 문자 인코딩에서 직접 나타낼 수 없는 문자는 숫자 문자 참조로 직렬화됩니다(문자 인코딩 표준은 일반적으로 문자의 16진수 표현을 사용하므로 문자 참조를 직렬화할 때 16진수 표현을 사용).

특성 값에 작은따옴표와 큰따옴표를 모두 포함하도록 하려면 아포스트로피 또는 작은따옴표 문자(')를 "&로 나타낼 수 있습니다. apos;", 큰따옴표 문자(")를 "& quot;". 출력 문자 인코딩의 특성 값으로 직접 나타낼 수 없는 새 줄 문자 및 기타 문자는 숫자 문자 참조로 직렬화됩니다.

태그 내에서 특성 외부에서 출력 문자 인코딩에 표시할 수 없는 문자의 발생은 심각한 오류로 DOMError 보고됩니다. 예를 들어 요소 <를 serialize합니다. LaCa\u00f1ada/> 을 사용하여 를 선택합니다 encoding="us-ascii". 그러면 "wf-invalid-character-in-node-name"이 생성 DOMError 됩니다(" 올바른 형식"에 제안됨).

매개 변수 "normalize-characters"LSSerializer를 true로 설정하여 요청하면 태그 및 문자 데이터 모두 직렬화할 모든 데이터에 대해 [XML 1.1]의 부록 E에 포함된 완전히 정규화된 문자의 정의에 따라 문자 정규화가 수행됩니다. 문자 정규화 프로세스는 기록되는 데이터에만 영향을 줍니다. 직렬화가 완료된 후 문서의 DOM 보기를 변경하지 않습니다.

모든 XML 파서에서 지원해야 하는 모든 인코딩에서 데이터를 직렬화할 수 있도록 하려면 "UTF-8", "UTF-16", "UTF-16BE" 및 "UTF-16LE" 인코딩을 지원하려면 구현이 필요합니다. 인코딩이 UTF-8인 경우 바이트 순서 표시가 직렬화되는지 여부 또는 출력이 big-endian 또는 little-endian인지 여부는 구현에 따라 달라집니다. 인코딩이 UTF-16인 경우 출력이 big-endian인지 아니면 little-endian인지는 구현에 따라 달라지지만 또는 LSOutput.systemId와 같은 LSOutput.byteStream 문자가 아닌 출력에 대해 바이트 순서 표시를 생성해야 합니다. 바이트 순서 표시가 생성되지 않으면 "byte-order-mark-needed" 경고가 보고됩니다. 인코딩이 UTF-16LE 또는 UTF-16BE인 경우 출력은 big-endian(UTF-16BE) 또는 little-endian(UTF-16LE)이고 바이트 순서 표시가 생성되지 않습니다. 모든 경우에 인코딩 선언이 생성되면 serialization 중에 사용된 인코딩에 해당합니다(예: encoding="UTF-16" UTF-16이 요청된 경우 표시됨).

네임스페이스는 serialization 중에 수정되며 serialization 프로세스는 네임스페이스 선언, 네임스페이스 접두사 및 요소 및 특성과 연결된 네임스페이스 URI가 일관된지 확인합니다. 불일치가 발견되면 문서의 직렬화된 형식이 변경되어 제거됩니다. 문서를 직렬화하는 동안 네임스페이스 수정을 수행하는 데 사용되는 메서드는 [DOM 수준 3 Core]의 부록 B.1, "네임스페이스 정규화"에 정의된 알고리즘입니다.

문서를 직렬화하는 동안 매개 변수 "discard-default-content"는 지정되지 않은 데이터가 직렬화되는지 여부를 제어합니다.

직렬화하는 동안 오류 및 경고는 오류 처리기(LSSerializer.domConfig'오류 처리기' 매개 변수)를 통해 애플리케이션에 보고됩니다. 이 사양은 DOM 노드를 직렬화하는 동안 발생할 수 있는 가능한 모든 오류와 경고를 정의하려고 시도하지 않지만 몇 가지 일반적인 오류 및 경고 사례가 정의됩니다. 이 사양에 정의된 오류 및 경고의 형식()은 에 출력이 지정LSOutput되지 않은 경우 에 쓸 LSOutput 때 dl<>dt<"no-output-specified" [fatal]>/dt<>dd> Raised입니다. <DOMError.type </dd><dt>"unbound-prefix-in-entity-reference" [fatal]</dt><dd> 구성 매개 변수 " 네임스페이스"가 로 설정 true 되고 대체 텍스트에 바인딩되지 않은 네임스페이스 접두사를 포함하는 엔터티가 네임스페이스 접두사에 대한 바인딩이 없는 위치에서 참조되는 경우 발생합니다. </dd><dt>"unsupported-encoding" [fatal]</dt><dd> 지원되지 않는 인코딩이 발견되면 발생합니다. </dd></dl>

정의된 오류 및 경고를 발생시키는 것 외에도 구현은 IO 오류(파일을 찾을 수 없음, 사용 권한 거부,...)와 같은 다른 오류 및 경고 사례에 대한 구현별 오류 및 경고를 발생시키는 것으로 예상됩니다.

DOM(문서 개체 모델) 수준 3 로드 및 저장 사양도 참조하세요.

에 대한 Java 설명서입니다 org.w3c.dom.ls.LSSerializer.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

DomConfig

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

래핑된 instance 값을 반환 java.lang.System.identityHashCode() 합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
NewLine

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Disposed()

instance 삭제될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Finalized()

instance 완료될 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)
Write(INode, ILSOutput)

인터페이스의 일반적인 설명에서 위에서 설명한 대로 지정된 노드를 직렬화합니다 LSSerializer .

WriteToString(INode)

인터페이스의 일반적인 설명에서 위에서 설명한 대로 지정된 노드를 직렬화합니다 LSSerializer .

WriteToURI(INode, String)

인코딩이 지정 LSOutput.systemId 되지 않은 를 LSOutput 사용하여 호출되고 인수로 설정된 uri 것처럼 LSSerializer.write 작동하는 편리한 메서드입니다.

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

GetJniTypeName(IJavaPeerable)

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

WriteAsync(ILSSerializer, INode, ILSOutput)

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

WriteToURIAsync(ILSSerializer, INode, String)

LSSerializer DOM 문서를 XML로 직렬화(쓰기)하는 API를 제공합니다.

적용 대상