XHTMLとは何か:
インターネット抜粋ワード、XHTMLはHTMLをXMLの役割を果たしていると似ています。
しかし、ときXHTMLテンプレートエンジン用途:
CYQ.DataフレームワークはQBlogオープンソースのブログで使用される、XHtmlActionテンプレートエンジンを設定します。
HTMLのXMLがロードするためにロードを実行するときだけで、入れて、そのようなテンプレートとしてCRUD操作することができ、従来のXML構文を使用します。
なぜHTML、XHTMLけど?
HTMLはラベル、またはラベルの混乱を閉じないよう、厳格な構文に拘束されていないと、ブラウザは、解析されたり、無視、または紛失、またはXXすることができます。
もし直接分析の使用HTML、決してルールをバインドされていない、場合の動作を考慮あまり複雑または因子である、コストが非常に高くなっている可能性があります。
家庭用XML構文は、XmlDocumentオブジェクトの操作がダイレクトで便利な、直接使用することができるので、XHTMLは、使用していました。
XHTML注:
私たちはしばしばあり、HTML形式を記述します。
<メタ名= " ロボット" コンテンツ=" すべて">或者:<IMG SRC = 'のhttp://xx.gif'国境= '0'>
そして、XHTML XML構文によって結合された場合:
1:個々のラベルは「/>」が閉じている必要があります。
2:のみ閉鎖に二重引用符ではなく一重引用符で同じラベルを属性。
テンプレートの場合は、この問題に注意を払う、人々はHTMLテンプレートの生成を作ってみよう、制御可能なささいなことです。
XmlDocumentの運用上の課題とHTMLが必然的に発生します:
DTD(文書型定義)?
私は人気のワークフローを使用このHTML&NSBであればI XmlDocument.Load(HTML)は、HTMLテンプレートをロードする場合は、言う;シンボルのようなエンティティは、その負荷は次のように例外をスロー失敗します。
DTDあなたはただ見て見ぬふりをする、あなたの前に残ります。
私たちは、新しいHTMLを作成するとき、我々は最初の行にDTDタグリファレンスを参照してくださいすることができます:
< HTML のxmlns = "のhttp:/ /www.w3.org/1999/xhtml」 > < 頭> < タイトル>无标题页 </ タイトル> </ ヘッド> < 身体> </ ボディ> </ HTML >
あなたは、デフォルトでは、アドレスは、ブラウザのために、それは実体に解決するだけでなく、DTDへの参照、リモートアドレスがW3団体である、見ることができます。
DTDのブラウザは、通常はローカルの統合では、常にリモートダウンロードに行くことはありませんでしょう。
私たちは、HTMLを操作する必要がある場合も同様に、私たちは、このDTDファイルを導入する必要があります。
どのように常にXmlDocument参照DTD:
ただ、常にXmlDocumentプロパティを設定し、新しいXmlUrlResolverを= XmlResolverの()にします。
我々は(HTML)を読み込み、デフォルトのDTDアドレス(リモートサーバへのW3ポイント)場合、サーバから毎回読んでいる場合、望ましくないとバインドされて、読み込み速度のネットワークカードになるにも起因するカードに。
DTD参照の最適化、ローカルDTDに同じダウンロード:
解析速度を向上させるために、ローカルDTDにダウンロードしたファイルがベストプラクティスですので、あなたがQBlogソースプロジェクトを見れば、そのようなディレクトリが存在します。
また、ローカルパスへのリモートパスを変更するために、我々は彼らのXmlUrlResolverクラスを実現:ここCYQ.Dataは、実装コードであります:
実際には、ローカルファイルへのURIパスを書き換えられ、継承されました。
QBlog歴史的タスクでは、DTDの捕獲はかなり重い話題です
問題は重く持っていたような質問DTD、非常に少し関連する情報、およびHTMLをロードするために使用するXmlDocumentは、DTDの参照が発生したために、それはほとんど、それらの年と相まって答え、限られた知識を発見されていません。
さらに驚くべき方法をDTDについての関連情報については、その教育や.NETの本を教えの全体フィールド、有名ではありません。
HTML形式の先生があなたを教えるために、どのような物事の最初の行為から話しませんか?
XMLはあなたに教える先生は、名前空間とDTDから話しませんか?
だから、DTDは、それは何ですか?
独自の検索キーワード「DTD」の公式長い説明を参照してください。
個人的な理解は簡単に言えば:XMLの文法的な制約は(あなたがプレイできるようにあなたにゲームのルールを投げる)です。
HTMLはまた、XMLの拡張に基づいているので、HTMLにも等しく適用可能です。
DTDの下に理解表要素例のHTML:
テーブルのHTML、通常の場合、我々はすべてそれがTRた共通子ノード、TBODY知っています。
あなたはTXX、tmdxxまたはtmdxxxを持つことができないということ?
答案是你可以乱加,但那是无效的,浏览器是会忽略的,因为dtd里没有定义。
如果你下载DTD到本地,可以搜到对table的语法有这么一行:
大语就是元素table的子级只能有"caption,(col、colgroup)、 thread、tfoot、(tbody,tr)“
而?*+ |就是正则里的0或1次;0或N次,1或N次,x或Y。
那么Table表格都能有什么属性呢?
%attrs;
summary %Text; #IMPLIED
width %Length; #IMPLIED
border %Pixels; #IMPLIED
frame %TFrame; #IMPLIED
rules %TRules; #IMPLIED
cellspacing %Length; #IMPLIED
cellpadding %Length; #IMPLIED
align %TAlign; #IMPLIED
bgcolor %Color; #IMPLIED
>
语法读起来,基本就是:
summary 文字 默认(可选的)
width 长度 默认(可选的)
%Text,这里的%是个变量,往上可找一个定义:
语法基本上就是:CData是指字符串数据,然后把它定义为 % Text,然后其它地方引用就用%Text表示CData就是字符串了。
Html之所以为Html,那是因为有一个w3标准,用dtd给定义了所有的Html标签的元素及属性,所以A元素才有的href,Img元素有了src。
我们再回望:
意思是引入DTD文档,html指文档对html根元素开始生效,然后Public按字面意思理解,接着双引号的内容是一个随意起的名称,之后是一个DTD的路径。
以上说了这么多,大伙对DTD应该有一些了解了。
XSD(XML Schemas Definition)又出来了
上面刚说完,怎么又扯上XSD了,话说某组织觉的DTD在数据类型的约束上不够细腻,只有字符类型,而没有int,float,bool,date等,于是整出了另一个约束规范,就叫XSD了。
在哪可见XSD:
1: VS新建项时,可见:
2:Web.config的约束文件: DotNetConfig.xsd
对于web.config,一开始我以为采用dtd约束,找了三分钟才发现,微软就采用了xsd来约束,而不是dtd。
ただ、パス:C:\プログラムファイル(インストールディレクトリ)\マイクロソフトのVisual Studio 8のXML \スキーマ\ \ DotNetConfig.xsd
開いている場合は、XMLや文法の束であります:
制約構文のxsdアーキテクチャ、理解するために読んでいる場合、Web.configファイルに最も権威のあるガイド:どのようなweb.configファイルの詳細な記事、雲です、あなたが読んで、または便利な雲を行くことができない場合。
もちろん、私はその後、学ぶキーワードを検索したい「XSD文法。」
要約:
これは百科事典ではありませんので、ちょうどその時点に私の頭の知識アーカイブを書き、その、文法のより包括的な知識が、また、関連するキーワードのための独自の検索越えて行くために努力しています。
ます。https://my.oschina.net/secyaher/blog/274159で再現