XmlWriterSettings.ConformanceLevel プロパティ

定義

XML ライターが XML 出力をチェックする準拠のレベルを取得または設定します。Gets or sets the level of conformance that the XML writer checks the XML output for.

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

プロパティ値

準拠のレベル (ドキュメント、フラグメント、自動検出) を指定する列挙値のいずれか。One of the enumeration values that specifies the level of conformance (document, fragment, or automatic detection). 既定値は、Document です。The default is Document.

次の例では、XML フラグメントをメモリストリームに書き込みます。The following example writes an XML fragment to a memory stream.

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 additonal 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 additonal processing on the stream.

注釈

プロパティXmlWriterSettings.ConformanceLevelは、記述されているストリームが特定の規則のセットに準拠していることを確認し、それを保証するように XML ライターを構成します。The XmlWriterSettings.ConformanceLevel property configures the XML writer to check and guarantee that the stream being written complies with a certain set of rules. XML データは、整形式の XML 1.0 ドキュメントまたはドキュメントフラグメントのルールに準拠しているかどうかを確認できます。The XML data can be checked to see that it conforms to the rules for a well-formed XML 1.0 document or a document fragment. 次の表では、3つの設定について説明します。The following table describes the three settings. 既定値はドキュメントレベルの準拠です。The default is document-level conformance.

設定Setting 説明Description
Document XML 出力が整形式の xml 1.0 ドキュメントの規則に準拠していること、および準拠しているプロセッサで処理できることを確認します。Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document and can be processed by any conforming processor.

ドキュメントの一致チェックには、ほとんどのフラグメントレベルのチェックが含まれ、次のことも確認します。The document conformance checks include most of the fragment-level checks and also ensure the following:

-最上位レベルの項目に、XML 宣言、DTD、要素、コメント、空白、または処理命令以外のノードがありません。- The top-level item doesn't have any nodes other than XML Declaration, DTD, element, comment, white space, or processing instruction.
-XML データには、最上位レベルの要素ノードが1つだけあります。- The XML data has one and only one top-level element node.

XML ライターは、書き込まれた DTD 情報を解析しません。The XML writer doesn't parse DTD information that is written. ユーザーは、DTD が整形式であることを確認する必要があります。The user is responsible for ensuring that the DTD is well-formed.
Fragment XML 出力が、整形式の xml 1.0 ドキュメントフラグメントの規則に準拠していることを確認します。Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document fragment.

この設定は、最上位レベルに複数のルート要素またはテキストノードを含む XML データを受け入れます。This setting accepts XML data that has multiple root elements or text nodes at the top level. このレベルのチェックでは、すべてのプロセッサで、読み込むストリームが XML 1.0 の外部解析対象エンティティとして処理できることが保証されます。This level of checking ensures that any processor can consume the stream being read as an XML 1.0 external parsed entity.

ドキュメントフラグメントで DTD 情報を使用することはできません。DTD information isn't allowed in document fragments.
Auto XML ライターが、受信データに基づいた一致チェックのレベルを決定する必要があることを指定します。Specifies that the XML writer should determine the level of conformance checking based on the incoming data. この設定は、生成された XML が整形式の XML ドキュメントであるかフラグメントであるかがわからない場合に便利です。This setting can be useful when you don't know whether the generated XML will be a well-formed XML document or a fragment.

ドキュメントの一致チェックは、次の場合に適用されます。Document conformance checking is applied in the following cases:

- WriteStartDocumentメソッドが呼び出された場合。- If the WriteStartDocument method is called.
-DTD 情報が記述されている場合。- If DTD information is written.

XML データに次のいずれかが含まれている場合、フラグメント一致チェックが適用されます。Fragment conformance checking is applied if the XML data contains one of these:

-ルートレベルのテキスト、CDATA、または EntityReference ノード。- Text, CDATA, or EntityReference node at the root level.
-ルートレベルに複数の要素があります。- More than one element at the root level.
-ルートレベルに要素がありません。- No element at the root level.

テキスト ノードを書き出そうとしてルート レベルに DTD があるなどの矛盾がある場合には XmlException がスローされます。An XmlException is thrown if there is a conflict, such as when you try to write a text node and a DTD at the root level.

XmlWriterのオブジェクトをラップしている場合、外側のオブジェクトは追加の準拠チェックを実行しません。これは、基になるオブジェクトに残されます。If you are wrapping another XmlWriter object, the outer object doesn't do any additional conformance checking; this is left to the underlying object.

指定した準拠レベルに違反する情報が XML ライターによって検出されると、例外がスローされます。If the XML writer detects any information that would violate the specified level of conformance, it throws an exception. 場合によっては、XML ライターが準拠エラーを自動的に修正します。In some cases, the XML writer automatically corrects the conformance error. たとえば、ライターは、例外をスローせずに、閉じられていない属性を閉じます。For example, the writer closes an unclosed attribute without throwing an exception. 次の表は、各設定でさまざまな準拠違反がどのように処理されるかを示しています。The following table shows how various conformance violations are handled in each setting.

条件Condition Document Fragment Auto
DTD 情報が見つかりました。DTD information is found. この設定の違反ではありません。Not a violation for this setting. ただし、XML ライターは DTD をチェックしません。ユーザーは、DTD が整形式であることを確認する必要があります。However, the XML writer doesn't check the DTD; the user must ensure that the DTD is well-formed. XmlExceptionがスローされます。XmlException is thrown. ドキュメントの一致チェックが適用されます。Document conformance checking is applied.
WriteStartDocument が呼び出されます。WriteStartDocument is called. この設定の違反とは見なされません。Not considered a violation for this setting. XmlExceptionがスローされます。XmlException is thrown. ドキュメントの一致チェックが適用されます。Document conformance checking is applied.
WriteStartDocument は複数回呼び出されます。WriteStartDocument is called multiple times. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
テキスト値が最上位レベルに表示されます (要素ノードまたは属性ノードの下にはありません)。A text value appears at the top level (not below an element or attribute node). XmlExceptionがスローされます。XmlException is thrown. 違反とは見なされません。Not considered a violation. フラグメント一致チェックが適用されます。Fragment conformance checking is applied.
最上位レベルに複数の要素または要素は表示されません。Multiple elements or no elements appear at the top level. XmlExceptionがスローされます。XmlException is thrown. 違反とは見なされません。Not considered a violation. フラグメント一致チェックが適用されます。Fragment conformance checking is applied.
最上位の項目は空白です。Top-level item is white space. 違反とは見なされません。Not considered a violation. 違反とは見なされません。Not considered a violation. 違反とは見なされません。Not considered a violation.
WriteEndAttributeは、属性ノードを終了するために呼び出されません。WriteEndAttribute isn't called to end an attribute node. XML ライターによって修正されます。Fixed by XML writer. XML ライターによって修正されます。Fixed by XML writer. XML ライターによって修正されます。Fixed by XML writer.
XML ライターが不適切に入れ子にされた状態にありますWriteStartElement (たとえば、呼び出しのWriteEndAttribute後にが続きます)。The XML writer is in an improperly nested state (for example, a WriteStartElement call is followed by a WriteEndAttribute). XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
最上位レベルの項目は属性です。Top-level item is an attribute. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
複数の連続したテキスト ノードがある。Multiple, contiguous text nodes are found. 違反とは見なされませんが、テキストノードを連結するのはユーザーの責任です。Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. 違反とは見なされませんが、テキストノードを連結するのはユーザーの責任です。Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. 違反とは見なされませんが、テキストノードを連結するのはユーザーの責任です。Not considered a violation, but it's the responsibility of the user to concatenate the text nodes.
同じ名前空間プレフィックスが要素内で 2 回宣言されている。The same namespace prefix is declared twice in an element. XML ライターは、2番目の名前空間の新しいプレフィックスを生成します。The XML writer generates a new prefix for the second namespace. XML ライターは、2番目の名前空間の新しいプレフィックスを生成します。The XML writer generates a new prefix for the second namespace. XML ライターは、2番目の名前空間の新しいプレフィックスを生成します。The XML writer generates a new prefix for the second namespace.
WriteStartElementは、そのスコープ内で宣言されていないプレフィックスと名前空間を指定します。または、プレフィックスが別の名前空間に関連付けられています。WriteStartElement specifies a prefix and a namespace that isn't declared within that scope, or the prefix is associated with a different namespace. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node.
WriteStartAttributeプレフィックスと、そのスコープ内で宣言されていない名前空間を指定します。WriteStartAttribute specifies a prefix and a namespace that isn't declared within that scope. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node. XML ライターは、必要な名前空間ノードを書き込みます。The XML writer writes the necessary namespace node.
WriteStartAttributeプレフィックスと名前空間を指定しますが、プレフィックスは別のスコープ内の名前空間に関連付けられています。WriteStartAttribute specifies a prefix and a namespace, but the prefix is associated with a different in-scope namespace. XML ライターは、指定されたプレフィックスを無視し、正しいプレフィックスを検索するか、新しいプレフィックスを生成します。The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. XML ライターは、指定されたプレフィックスを無視し、正しいプレフィックスを検索するか、新しいプレフィックスを生成します。The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. XML ライターは、指定されたプレフィックスを無視し、正しいプレフィックスを検索するか、新しいプレフィックスを生成します。The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix.
WriteQualifiedNameは、スコープ内に存在しない名前空間を使用して要素の内容を書き込むために使用されます。WriteQualifiedName is used to write element content by using a namespace that doesn't exist within the scope. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
WriteQualifiedNameは、スコープ内に存在しない名前空間を使用して属性の内容を書き込むために使用されます。WriteQualifiedName is used to write attribute content by using a namespace that doesn't exist within the scope. XML ライターは、必要な名前空間宣言を書き込みます。The XML writer writes the necessary namespace declaration. XML ライターは、必要な名前空間宣言を書き込みます。The XML writer writes the necessary namespace declaration. XML ライターは、必要な名前空間宣言を書き込みます。The XML writer writes the necessary namespace declaration.
属性xml:spaceに有効な値が含まれていません。The xml:space attribute doesn't contain a valid value. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
無効な名前が検出される。An invalid name is encountered. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
プレフィックスxmlが URI と一致しません。The xml prefix isn't matched to a URI. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation.
プレフィックスxmlが URI とhttp://www.w3.org/XML/1998/namespace一致しません。The xml prefix isn't matched to the http://www.w3.org/XML/1998/namespace URI. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.
プレフィックスxmlnsまたはローカル名が URI と一致しません。The xmlns prefix or local name isn't matched to a URI. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation. XML ライターは、この種類の違反を確認しません。The XML writer doesn't check for this type of violation.
プレフィックスxmlnsまたはローカル名がhttp://www.w3.org/2000/xmlns URI と一致しません。The xmlns prefix or local name isn't matched to the http://www.w3.org/2000/xmlns URI. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown. XmlExceptionがスローされます。XmlException is thrown.

適用対象