ILSSerializer Интерфейс

Определение

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

[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 API для сериализации (записи) документа DOM в XML. Xml-данные записываются в строку или выходной поток. Любые изменения или исправления, внесенные во время сериализации, влияют только на сериализованные данные. Объект Document и его дочерние элементы никогда не изменяются операцией сериализации.

Во время сериализации XML-данных исправление пространства имен выполняется в соответствии с определением в разделе [DOM Level 3 Core] , Приложение Б. [DOM Level 2 Core] разрешает пустые строки в качестве реального URI пространства имен. namespaceURI Если свойство объекта является пустой Node строкой, сериализация будет обрабатывать их как null, игнорируя префикс , если он имеется.

LSSerializer принимает любой тип узла для сериализации. Для узлов с типом Document или Entityпо возможности будет создан xml с правильным форматом (правильность формата гарантируется, если документ или сущность поступают в результате операции синтаксического анализа и не изменяются с момента создания). Сериализованные выходные данные для этих типов узлов являются xml-документом или внешней сущностью XML соответственно и являются допустимыми входными данными для средства синтаксического анализа XML. Для всех остальных типов узлов сериализованная форма зависит от реализации.

В сериализуемом объекте или Entity обрабатываются следующим образом<, как записываются узлы ul<>liDocument>, включая xml-объявление (если параметру xml-declaration не присвоено значение false) и подмножество DTD, если оно существует в модели DOM.DocumentDocumentFragmentNodes При написании Document узла выполняется сериализация всего документа. </li><li nodes>Entity при записи напрямую с помощью LSSerializer.writeвыводит расширение сущности, но исправление пространства имен не выполняется. Полученные выходные данные будут допустимы в качестве внешней сущности. </li><li Если> параметр " entities" имеет значение true, EntityReference узлы сериализуются как ссылка на сущности в виде " &amp;entityName;" в выходных данных. Дочерние узлы (расширение) ссылки на сущность игнорируются. Если параметр " сущности" имеет значение false, сериализуются только дочерние элементы ссылки на сущность. EntityReference Узлы без дочерних узлов (нет соответствующего Entity узла или у соответствующих Entity узлов нет дочерних узлов) всегда сериализуются. </li><li li,>CDATAsections содержащие символы содержимого, которые не могут быть представлены в указанной кодировке выходных данных, обрабатываются в соответствии с параметром " split-cdata-sections". Если для параметра задано значение true, CDATAsections разделяются, а непредставимые символы сериализуются как ссылки на числовые символы в обычном содержимом. Точное положение и количество разделений не указано. Если параметр имеет значение false, непредставимые символы в CDATAsection отображаются как "wf-invalid-character" ошибки, если параметру " правильный формат" присвоено значение true. Ошибка не может быть восстановлена— отсутствует механизм для предоставления альтернативных символов и продолжения сериализации. <Узлы /li><li>DocumentFragment сериализуются путем сериализации дочерних элементов фрагмента документа в порядке их отображения во фрагменте документа. </li><li> . Все остальные типы узлов (Element, Text и т. д.) сериализуются в соответствующую форму источника XML. </li></ul<>p ><b>Примечание.</b> Сериализация Node не всегда создает XML-документ правильного формата, т. е. LSParser может вызвать неустранимые ошибки при анализе результирующей сериализации.

В символьных данных документа (за пределами разметки) все символы, которые не могут быть представлены напрямую, заменяются ссылками на символы. Вхождения "<" и "&" заменяются предопределенными сущностями & Lt; и &усилие; Amp;. Другие предопределенные сущности (& gt;, &усилие; apos;, и &усилие; quot;) может не использоваться, за исключением случаев, когда это необходимо (например, с помощью & Gt; в таких случаях, как ']]>'). Все символы, которые не могут быть представлены непосредственно в кодировке выходных символов, сериализуются как ссылки на числовые символы (и поскольку стандарты кодировки символов обычно используют шестнадцатеричные представления символов, при сериализации ссылок на символы рекомендуется использовать шестнадцатеричное представление).

Чтобы значения атрибутов содержали как одиночные, так и двойные кавычки, апостроф или одинарные кавычки (') можно представить как "& apos;", и символ в двойных кавычках (") в виде "& quot;". Новые символы строки и другие символы, которые не могут быть представлены непосредственно в значениях атрибутов в кодировке выходных символов, сериализуются как ссылка на числовой символ.

В разметке, но за пределами атрибутов любое вхождение символа, которое не может быть представлено в кодировке выходных символов, сообщается как DOMError неустранимая ошибка. Примером может быть сериализация элемента < LaCa\u00f1ada/> с encoding="us-ascii". Это приведет к созданию DOMError "wf-invalid-character-in-node-name" (как предлагается в разделе " well-formed").

При запросе, задав для параметра " normalize-characters" значение LSSerializer true, нормализация символов выполняется в соответствии с определением полностью нормализованных символов, включенным в приложение E к [XML 1.1] для всех сериализуемых данных, как разметки, так и символьных данных. Процесс нормализации символов влияет только на данные по мере их записи; он не изменяет представление документа модели DOM после завершения сериализации.

Реализации требуются для поддержки кодировок UTF-8, UTF-16, UTF-16BE и UTF-16LE, чтобы гарантировать сериализацию данных во всех кодировках, которые должны поддерживаться всеми средствами синтаксического анализа XML. Если кодировка имеет кодировку UTF-8, зависит ли сериализация метки порядка байтов или выходные данные с большим или маленьким эндианом, зависит от реализации. Если кодировка имеет кодировку UTF-16, независимо от того, является ли вывод большим или маленьким эндианом, зависит от реализации, но для выходных данных, не являющихся символами, таких как LSOutput.byteStream или LSOutput.systemId, должна быть создана метка порядка байтов. Если метка порядка байтов не создана, отображается предупреждение "байт-порядок-метка-требуется". Если используется кодировка UTF-16LE или UTF-16BE, выходные данные являются большими (UTF-16BE) или малоиндскими (UTF-16LE), и метка порядка байтов не создается. Во всех случаях объявление кодировки, если оно создано, будет соответствовать кодировке, используемой во время сериализации (например encoding="UTF-16" , будет отображаться при запросе UTF-16).

Пространства имен фиксируются во время сериализации. Процесс сериализации проверяет согласованность объявлений пространств имен, префиксов пространств имен и универсального кода ресурса (URI) пространства имен, связанного с элементами и атрибутами. При обнаружении несоответствий сериализованная форма документа будет изменена, чтобы удалить их. Метод, используемый для исправления пространства имен при сериализации документа, — это алгоритм, определенный в приложении B.1 "Нормализация пространства имен" [DOM Уровня 3 Ядра] .

При сериализации документа параметр "discard-default-content" определяет, сериализуются ли не указанные данные.

При сериализации сообщения об ошибках и предупреждениях передаются приложению через обработчик ошибок (LSSerializer.domConfigпараметр error-handler). Эта спецификация никоим образом не пытается определить все возможные ошибки и предупреждения, которые могут возникнуть при сериализации узла DOM, но определены некоторые распространенные случаи ошибок и предупреждений. Типы ( DOMError.type) ошибок и предупреждений, определенных в этой спецификации: <dl><dt><"no-output-specified" [fatal]/dt><dd> вызывается при записи в , LSOutput если выходные данные не указаны в .LSOutput </dd><dt>"unbound-prefix-in-entity-reference" [fatal]</dt><dd> вызывается, если параметр конфигурации " пространства имен" имеет значение true , а сущность, замещающий текст которой содержит несвязанные префиксы пространства имен, ссылается в расположении, где отсутствуют привязки для префиксов пространства имен. </dd><dt>"unsupported-encoding" [fatal]</dt><dd> вызывается при обнаружении неподдерживаемой кодировки. </dd></dl>

В дополнение к возникновению определенных ошибок и предупреждений реализация, как ожидается, вызовет ошибки конкретной реализации и предупреждения для любых других ошибок и предупреждений, таких как ошибки ввода-вывода (файл не найден, отказано в разрешении,...) и т. д.

См. также спецификацию загрузки и сохранения модели DOM 3.

Документация по Java для org.w3c.dom.ls.LSSerializer.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Свойства

DomConfig

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение для упаковаемого java.lang.System.identityHashCode() экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа и вызова участников.

(Унаследовано от IJavaPeerable)
NewLine

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

PeerReference

JniObjectReference Возвращает экземпляр объекта Java, заключенный в оболочку.

(Унаследовано от IJavaPeerable)

Методы

Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если отсутствуют незадающиеся ссылки на этот экземпляр, вызывает Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Finalized()

Вызывается после завершения работы экземпляра.

(Унаследовано от IJavaPeerable)
SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое .JniIdentityHashCode

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое .PeerReference

(Унаследовано от IJavaPeerable)
UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала его из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)
Write(INode, ILSOutput)

Сериализуйте указанный узел, как описано выше в общем описании LSSerializer интерфейса.

WriteToString(INode)

Сериализуйте указанный узел, как описано выше в общем описании LSSerializer интерфейса.

WriteToURI(INode, String)

Удобный метод, который действует так, как если бы LSSerializer.write был вызван с без указанной LSOutput кодировки и LSOutput.systemId задан uri аргумент .

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

GetJniTypeName(IJavaPeerable)

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

WriteAsync(ILSSerializer, INode, ILSOutput)

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

WriteToURIAsync(ILSSerializer, INode, String)

Предоставляет LSSerializer API для сериализации (записи) документа DOM в XML.

Применяется к