Package nablarch.core.dataformat
Class XmlDataParser
java.lang.Object
nablarch.core.dataformat.StructuredDataEditorSupport
nablarch.core.dataformat.XmlDataParser
- All Implemented Interfaces:
StructuredDataParser
XMLパーサー。
この実装ではDOMを使用してXMLデータの解析を行います。 5u14より、DTDの使用を禁止するように修正を行った。これはXXE攻撃を防ぐためである。 後方互換性を維持するため、DTDの使用を許可するプロパティを設けている(
この実装ではDOMを使用してXMLデータの解析を行います。 5u14より、DTDの使用を禁止するように修正を行った。これはXXE攻撃を防ぐためである。 後方互換性を維持するため、DTDの使用を許可するプロパティを設けている(
setAllowDTD(boolean))。
読み込み対象となるXMLが信頼できるものであり、かつ、DTDを使用しなければならない場合のみ、
本プロパティを使用してDTDの使用を許可することができる。- Author:
- TIS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected DocumentBuilderFactorycreateDocumentBuilderFactory(LayoutDefinition layoutDef) 本クラスで使用するDocumentBuilderFactoryのインスタンスを生成する。parseData(InputStream xml, LayoutDefinition layoutDef) フラットマップを作成します。voidsetAllowDTD(boolean allowDTD) DTDの使用を許可する。 デフォルトは「許可しない」(false)。voidsetContentName(String contentName) 属性あり要素のコンテンツ名を設定する。Methods inherited from class nablarch.core.dataformat.StructuredDataEditorSupport
buildMapKey, checkArrayLength, checkIndispensable, checkRequired, convertToFieldOnRead, convertToFieldOnWrite, isObjectType
-
Constructor Details
-
XmlDataParser
public XmlDataParser()
-
-
Method Details
-
parseData
public Map<String,?> parseData(InputStream xml, LayoutDefinition layoutDef) throws IOException, InvalidDataFormatException フラットマップを作成します。- Specified by:
parseDatain interfaceStructuredDataParser- Parameters:
xml- XML文字列layoutDef- フォーマット定義- Returns:
- フラットマップ
- Throws:
IOException- 読み込みに伴うIO処理で問題が発生した場合InvalidDataFormatException- 読み込んだデータがフォーマット定義に違反している場合
-
createDocumentBuilderFactory
protected DocumentBuilderFactory createDocumentBuilderFactory(LayoutDefinition layoutDef) throws ParserConfigurationException 本クラスで使用するDocumentBuilderFactoryのインスタンスを生成する。- Parameters:
layoutDef- レイアウト定義 (本実装では使用しないがオーバーライド用に用意している。)- Returns:
DocumentBuilderFactoryのインスタンス- Throws:
ParserConfigurationException-DocumentBuilderFactory.setFeature(String, boolean)に失敗した場合
-
setContentName
属性あり要素のコンテンツ名を設定する。- Parameters:
contentName- 属性あり要素のコンテンツ名
-
setAllowDTD
public void setAllowDTD(boolean allowDTD) DTDの使用を許可する。 デフォルトは「許可しない」(false)。- Parameters:
allowDTD- 許可する場合、真
-