C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: C# ASP.NET [必要なDTDマークアップが...]


(過去ログ 35 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■17848 / inTopicNo.1)  C# ASP.NET [必要なDTDマークアップが...]
  
□投稿者/ いよかん (1回)-(2008/05/02(Fri) 13:00:52)

分類:[ASP.NET (C#)] 

皆様、はじめまして。
エラー原因を探っているうちにこちらに辿り着きました。
ご助力をお願いしたいと思います。

開発環境ですが
Visual Studio 2005
ASP.NET C#
を使っています。

エラー:必要な DTD マークアップが見つかりませんでした。 行 6、位置 35 です。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Main[
<!ELEMENT Main (Title+)>
<!ELEMENT Title (#PCDATA|SubTitle)*>
<!ELEMENT SubTitle (#PCDATA|Name)*>
<!ELEMENT Name (#PCDATA|Child)*>//←6行目
<!ELEMENT Child (#PCDATA)*>
<!ATTLIST Main ファイル名 ID #REQUIRED>
<!ATTLIST Title 行 ID #REQUIRED>
<!ATTLIST SubTitle 行名 ID #REQUIRED>
<!ATTLIST Name MainTitle ID #REQUIRED>
<!ATTLIST Child MainTitle ID #REQUIRED>
]>

何が原因なのか、回避方法
教えてください。
引用返信 編集キー/
■17871 / inTopicNo.2)  Re[1]: C# ASP.NET [必要なDTDマークアップが...]
□投稿者/ 魔界の仮面弁士 (713回)-(2008/05/02(Fri) 18:25:01)
No17848 (いよかん さん) に返信
> エラー:必要な DTD マークアップが見つかりませんでした。 行 6、位置 35 です。 

その DTD を、どのように使った時に問題が起きたのでしょうか?

なお当方で、下記の XML ファイルを作成・保存し、パーサに
食べさせてみたところ、問題無く valid な xml として判定されました。


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Main[
  <!ELEMENT Main (Title+)>
  <!ELEMENT Title (#PCDATA|SubTitle)*>
  <!ELEMENT SubTitle (#PCDATA|Name)*>
  <!ELEMENT Name (#PCDATA|Child)*>
  <!ELEMENT Child (#PCDATA)*>
  <!ATTLIST Main ファイル名 ID #REQUIRED>
  <!ATTLIST Title 行 ID #REQUIRED>
  <!ATTLIST SubTitle 行名 ID #REQUIRED>
  <!ATTLIST Name MainTitle ID #REQUIRED>
  <!ATTLIST Child MainTitle ID #REQUIRED>
]>
<Main ファイル名="a">
  <Title 行="b">
    <SubTitle 行名="c">
      <Name MainTitle="d">
        <Child MainTitle="e">f</Child>
      </Name>
    </SubTitle>
  </Title>
</Main>


> 何が原因なのか、回避方法
位置 35 とありますよね。もしかして、
   <!ELEMENT Name (#PCDATA|Child)*>
と書くつもりで、
   <!ELEMENT Name (#PCDATA|Child)*> 
と書いていた…という事はありませんか?

引用返信 編集キー/
■17890 / inTopicNo.3)  Re[2]: C# ASP.NET [必要なDTDマークアップが...]
□投稿者/ 出水 (45回)-(2008/05/03(Sat) 04:42:24)
<!ELEMENT Name (#PCDATA|Child)*>
上と下の違いがわからなかった…
下は行末に全角スペースが入っているんですね
引用返信 編集キー/
■17897 / inTopicNo.4)  Re[3]: C# ASP.NET [必要なDTDマークアップが...]
□投稿者/ いよかん (2回)-(2008/05/03(Sat) 09:55:11)
No17890 (出水 さん) に返信
> <!ELEMENT Name (#PCDATA|Child)*>
> 上と下の違いがわからなかった…
> 下は行末に全角スペースが入っているんですね
私も分かりませんでしたw
出水さん、説明ありがとうございます。

魔界の仮面弁士さんのご指摘にありましたスペース部分ですが、注意して書き直してみましたが同じエラーが発生いたしました。

Wikiをイメージした辞書機能のあるWebアプリを作っているのですが、そのデータベースとしてXMLファイルを使用しています。
学校で実習として作成しているので、各XMLを教科毎に分けているのですが、全てのXMLファイルで同じDTDを使用しています。
下記のとおり、ルート要素だけを記述し、Title要素等は編集時に加わるようなプログラムになっています。が、
編集し、保存し、トップページに戻る際にエラーが発生しています。


<Main ファイル名="Java">
</Main>



<Main ファイル名="Java">
<Title 行="アルファベット">
<SubTitle 行名="S">
<Name MainTitle="System.out.print">
実行例:System.out.print("表示する文字列を入力"); //文字列を表示する
</Name>
</SubTitle>
</Title>
</Main>


加えるプログラム部分はだいぶ省略して書きますが、XMLファイルを開いてforeach (XmlNode child_node in terminal_node)で挿入する箇所を調べた後に挿入しています。

XmlElement xml = doc.CreateElement("Name"); //Name要素
XmlAttribute att = doc.CreateAttribute("MainTitle");  //属性名
att.Value = ItemTB.Text;                //属性値
xml.Attributes.Append(att);              //Name要素に属性追加
string[] separator = { "\\" };
string readID = Request.ServerVariables["LOGON_USER"].Split(separator, StringSplitOptions.RemoveEmptyEntries)[1]; //ユーザ名取得
XmlCharacterData text = doc.CreateTextNode("\r\n" + ValueTB.Text + "\r\n更新者ID:" + readID + "\r\n更新日時:" + DateTime.Now.ToString("yyyy年MM月dd日 (dddd) tt hh時mm分ss秒")); //#PCDATA作成
xml.AppendChild(text);                //Name要素に#PCDATA追加
terminal_node.InsertBefore(xml, child_node);     //Name要素をSubTitle要素の該当部分に追加


保存はされていますが、「必要な・・・」とエラーが発生して強制終了してしまいます。
当方でも試行錯誤いたしておりますが、XMLは知識が少ないので。。。

ご教授お願いいたします。
引用返信 編集キー/
■17951 / inTopicNo.5)  Re[4]: C# ASP.NET [必要なDTDマークアップが...]
□投稿者/ いよかん (3回)-(2008/05/05(Mon) 15:28:44)
出水さん
魔界の仮面弁士さん

ご協力ありがとうございました。
何とか自力で解決いたしました。(汗

いろいろと試してみたところ、XMLファイルを操作していない時にもエラーが起こり、マスターページやDefaultページも調べてみたところ、
各教科のXMLを読み込むときにエラーが発生していたようなので、各教科のXMLをもう一度調べなおしたところ、
<!ELEMENT Name (#PCDATA|Child)*>>
となっていました。
ただのチェック不足でした。。。お騒がせして申し訳ありませんでした。

解決に協力してくださった方、エラー原因を調べてくださった方々もありがとうございました。
また、何かありました時は、よろしくお願いいたします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -