XmlWriterSettings.ConformanceLevel Właściwość

Definicja

Pobiera lub ustawia poziom zgodności, dla którego moduł zapisywania XML sprawdza dane wyjściowe XML.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Wartość właściwości

Jedna z wartości wyliczenia, która określa poziom zgodności (dokument, fragment lub automatyczne wykrywanie). Wartość domyślna to Document.

Przykłady

Poniższy przykład zapisuje fragment XML w strumieniu pamięci.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

Uwagi

Właściwość konfiguruje składnik zapisywania XmlWriterSettings.ConformanceLevel XML w celu sprawdzenia i zagwarantowania, że zapisywany strumień jest zgodny z określonym zestawem reguł. Dane XML można sprawdzić, aby sprawdzić, czy są zgodne z regułami dobrze sformułowanego dokumentu XML 1.0 lub fragmentu dokumentu. W poniższej tabeli opisano trzy ustawienia. Wartość domyślna to zgodność na poziomie dokumentu.

Ustawienie Opis
Document Zapewnia, że dane wyjściowe XML są zgodne z regułami dobrze sformułowanego dokumentu XML 1.0 i może być przetwarzany przez dowolny zgodny procesor.

Testy zgodności dokumentu obejmują większość kontroli na poziomie fragmentu, a także upewnij się, że:

— Element najwyższego poziomu nie ma żadnych węzłów innych niż deklaracja XML, DTD, element, komentarz, biały znak lub instrukcja przetwarzania.
— Dane XML mają jeden i tylko jeden węzeł elementu najwyższego poziomu.

Składnik zapisywania XML nie analizuje zapisanych informacji DTD. Użytkownik jest odpowiedzialny za zapewnienie, że dtD jest prawidłowo sformułowany.
Fragment Gwarantuje, że dane wyjściowe XML są zgodne z regułami fragmentu dobrze sformułowanego dokumentu XML 1.0.

To ustawienie akceptuje dane XML, które mają wiele elementów głównych lub węzłów tekstowych na najwyższym poziomie. Ten poziom sprawdzania gwarantuje, że każdy procesor może korzystać ze strumienia odczytywanego jako zewnętrzna jednostka analizy XML 1.0.

Informacje DTD nie są dozwolone w fragmentach dokumentów.
Auto Określa, że moduł zapisywania XML powinien określać poziom sprawdzania zgodności na podstawie danych przychodzących. To ustawienie może być przydatne, gdy nie wiadomo, czy wygenerowany kod XML będzie dobrze sformułowanym dokumentem XML, czy fragmentem.

Sprawdzanie zgodności dokumentów jest stosowane w następujących przypadkach:

- Jeśli metoda jest wywoływana WriteStartDocument .
- Jeśli informacje DTD są zapisywane.

Sprawdzanie zgodności fragmentów jest stosowane, jeśli dane XML zawierają jedną z następujących wartości:

— Węzeł Tekst, CDATA lub EntityReference na poziomie głównym.
— Więcej niż jeden element na poziomie głównym.
- Brak elementu na poziomie głównym.

Element XmlException jest zgłaszany, jeśli występuje konflikt, na przykład podczas próby zapisania węzła tekstowego i dtD na poziomie głównym.

Jeśli opakowujesz inny XmlWriter obiekt, obiekt zewnętrzny nie wykonuje dodatkowego sprawdzania zgodności; pozostaje to obiekt źródłowy.

Jeśli składnik zapisywania XML wykryje jakiekolwiek informacje, które naruszają określony poziom zgodności, zgłasza wyjątek. W niektórych przypadkach składnik zapisywania XML automatycznie poprawia błąd zgodności. Na przykład składnik zapisywania zamyka nieujawiony atrybut bez zgłaszania wyjątku. W poniższej tabeli przedstawiono sposób obsługi różnych naruszeń zgodności w każdym ustawieniu.

Warunek Document Fragment Auto
Znaleziono informacje o dtD. To ustawienie nie jest naruszeniem. Jednak moduł zapisujący XML nie sprawdza wartości DTD; użytkownik musi upewnić się, że jednostka DTD jest prawidłowo sformułowana. XmlException jest zgłaszany. Zastosowano sprawdzanie zgodności dokumentów.
Wywołano metodę WriteStartDocument. To ustawienie nie jest uznawane za naruszenie. XmlException jest zgłaszany. Zastosowano sprawdzanie zgodności dokumentów.
WriteStartDocument jest wywoływana wiele razy. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Wartość tekstowa jest wyświetlana na najwyższym poziomie (nie poniżej elementu lub węzła atrybutu). XmlException jest zgłaszany. Nie brane pod uwagę naruszenia. Zastosowano sprawdzanie zgodności fragmentów.
Na najwyższym poziomie jest wyświetlanych wiele elementów lub brak elementów. XmlException jest zgłaszany. Nie brane pod uwagę naruszenia. Zastosowano sprawdzanie zgodności fragmentów.
Element najwyższego poziomu to biały znak. Nie brane pod uwagę naruszenia. Nie brane pod uwagę naruszenia. Nie brane pod uwagę naruszenia.
WriteEndAttribute nie jest wywoływana w celu zakończenia węzła atrybutu. Naprawiono przez moduł zapisujący XML. Naprawiono przez moduł zapisujący XML. Naprawiono przez moduł zapisujący XML.
Składnik zapisywania XML jest nieprawidłowo zagnieżdżony (na przykład WriteStartElement wywołanie następuje ).WriteEndAttribute XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Element najwyższego poziomu jest atrybutem. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Znaleziono wiele ciągłych węzłów tekstowych. Nie uważa się za naruszenie, ale jest to odpowiedzialność użytkownika za łączenie węzłów tekstowych. Nie uważa się za naruszenie, ale jest to odpowiedzialność użytkownika za łączenie węzłów tekstowych. Nie uważa się za naruszenie, ale jest to odpowiedzialność użytkownika za łączenie węzłów tekstowych.
Ten sam prefiks przestrzeni nazw jest zadeklarowany dwukrotnie w elemecie . Składnik zapisywania XML generuje nowy prefiks dla drugiej przestrzeni nazw. Składnik zapisywania XML generuje nowy prefiks dla drugiej przestrzeni nazw. Składnik zapisywania XML generuje nowy prefiks dla drugiej przestrzeni nazw.
WriteStartElement określa prefiks i przestrzeń nazw, która nie jest zadeklarowana w tym zakresie, lub prefiks jest skojarzony z inną przestrzenią nazw. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw.
WriteStartAttribute określa prefiks i przestrzeń nazw, która nie jest zadeklarowana w tym zakresie. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw. Składnik zapisywania XML zapisuje niezbędny węzeł przestrzeni nazw.
WriteStartAttribute określa prefiks i przestrzeń nazw, ale prefiks jest skojarzony z inną przestrzenią nazw w zakresie. Składnik zapisywania XML ignoruje określony prefiks i wyszukuje poprawny prefiks lub generuje nowy prefiks. Składnik zapisywania XML ignoruje określony prefiks i wyszukuje poprawny prefiks lub generuje nowy prefiks. Składnik zapisywania XML ignoruje określony prefiks i wyszukuje poprawny prefiks lub generuje nowy prefiks.
WriteQualifiedName Służy do zapisywania zawartości elementu przy użyciu przestrzeni nazw, która nie istnieje w zakresie. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
WriteQualifiedName służy do zapisywania zawartości atrybutów przy użyciu przestrzeni nazw, która nie istnieje w zakresie. Składnik zapisywania XML zapisuje wymaganą deklarację przestrzeni nazw. Składnik zapisywania XML zapisuje wymaganą deklarację przestrzeni nazw. Składnik zapisywania XML zapisuje wymaganą deklarację przestrzeni nazw.
Atrybut xml:space nie zawiera prawidłowej wartości. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Napotkano nieprawidłową nazwę. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Prefiks xml nie jest dopasowywany do identyfikatora URI. Składnik zapisywania XML nie sprawdza tego typu naruszenia. Składnik zapisywania XML nie sprawdza tego typu naruszenia. Składnik zapisywania XML nie sprawdza tego typu naruszenia.
Prefiks xml nie jest dopasowywany do identyfikatora http://www.w3.org/XML/1998/namespace URI. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.
Prefiks xmlns lub nazwa lokalna nie jest dopasowywana do identyfikatora URI. Składnik zapisywania XML nie sprawdza tego typu naruszenia. Składnik zapisywania XML nie sprawdza tego typu naruszenia. Składnik zapisywania XML nie sprawdza tego typu naruszenia.
Prefiks xmlns lub nazwa lokalna nie jest dopasowywana do identyfikatora http://www.w3.org/2000/xmlns URI. XmlException jest zgłaszany. XmlException jest zgłaszany. XmlException jest zgłaszany.

Dotyczy