2011-11-08 15 views
0

C#で自分のXMLでオンラインまたは外部DTDを参照するにはどうすればよいですか?C#で自分のXML解析用のオンラインDTDを参照する方法

string fileName = @"C:\\temp\H2009.xml"; 

    XmlDocument xDoc = new XmlDocument(); 

    xDoc.Load(fileName); 

マイDTDファイルは、あるftp.myPartnerCompany.com/Name.ent

この.entファイルで、彼らは私が今その

<!ENTITY Acaron "&#258;"> <!-- latin capital letter A with caron (breve),         
            U+0102 Latin Extended-A --> 


<!ENTITY acaron "&#259;"> <!-- latin small letter a with caron (breve),         
            U+0103 Latin Extended-A --> 
<!ENTITY Acedil "&#260;"> <!-- latin capital letter A with cedilla, 
            U+0104 Latin Extended-A --> 

のようなエンティティを定義しますxmlと.entファイルをリンクする方法がわからないので、下の行のような問題が発生しました。

宣言されていないエンティティ 'Acaron'への参照。行4971、位置21。

ありがとうございます。

は私のXMLファイルを言及するのを忘れEDIT、その下のようになります。

<?xml version='1.0' encoding='iso-8859-1'?> 
<MA> 
<Y07 CLID='C737467' KW='BIRANT' KW2='ESINOGLU'> 
     <Y0747>B&acaron;RANT ES&acaron;NO&Gcaron;LU</Y0747> 
     <Y0748>MARK KO KYI Sok Kuulu&scedil; Sit 
      KA&Gcaron;ITHASDNE/&Idot;THAILAND 
     </Y0748> 
<Y07> 
<MA> 
+0

以下を確認してください:http://stackoverflow.com/questions/470313/net-how-to-validate-xml-file-with-dtd-without-doctype-declaration – Polity

答えて

1

質問の例に基づいて、あなたが指している.entファイルはDTDではありません。 ELEMENT/ATTLIST宣言はありませんので、構造体は定義されていません。 DTDがなければ、あなたのXMLはうまく成立します(ただし、そうではありません)。

すべてのENTITY宣言を含むファイルを参照するには、DOCTYPE宣言でパラメータエンティティを使用する必要があります。私はC#を知らないので、私はあなたが出力が正確であるので、これをコーディングとまったく同じ方法を知りませんが、ここではあなたのXML出力がどのように見えるかの例です。このことができます

<!DOCTYPE MA [ 
<!ENTITY % ents SYSTEM "name.ent"> 
%ents; 
]> 
<MA> 
    <Y07 CLID="C737467" KW="BIRANT" KW2="ESINOGLU"> 
    <Y0747>B&acaron;RANT ES&acaron;NO&Gcaron;LU</Y0747> 
    <Y0748>MARK KO KYI Sok Kuulu&scedil; Sit KA&Gcaron;ITHASDNE/&Idot;THAILAND </Y0748> 
    </Y07> 
</MA> 

希望。

関連する問題