XML簡介

来源:http://www.cnblogs.com/zhlziliaoku/archive/2016/02/25/5216285.html
-Advertisement-
Play Games

第一章什麼是xml 電腦里的數據文件分為倆大類,二進位文件和文本文件。 二進位文件是一個比特流(1或0系列),只有創建二進位的應用程式才會理解這個比特流的實際含義。 文本文件也是比特流,文本文件里的比特流是以一種標準格式組織起來的,因此他們總是組成一個個數,每個數再映射為字元。 標記語言的簡史 探


第一章什麼是xml

電腦里的數據文件分為倆大類,二進位文件和文本文件。

二進位文件是一個比特流(1或0系列),只有創建二進位的應用程式才會理解這個比特流的實際含義。

文本文件也是比特流,文本文件里的比特流是以一種標準格式組織起來的,因此他們總是組成一個個數,每個數再映射為字元。

標記語言的簡史

探索一種在各個不同電腦程式間可以交換數據的方法,最早的標記語言為SGML.==>其後出現了HTML.

XML是SGML的一個子集,XML語言和SGML完全相容。

對於相同數據,XML 文檔遠大於純文本文件。用XML標記數據回增加文件的大小,有事這種增加是巨大的,生成小文件不是xml的目標,它的唯一目標是把數據結構化,是的開發人員很容易根據數據的結構訪問數據。

XML本身對數據不能完成任何操作,必須使用一宗叫做解析器導入軟體來處理數據。XML的中點是如何表示數據。

1.2使用XML 的好處

易攜帶傳輸,XML不依賴特殊軟體、易於共用和跨平臺,xml本身是文本文件,而且是結構化數據,很容易被各個系統讀取。XML樹狀結構,易於查詢。

 1.3XML語法 

每個開始標記必須有結束標記

一個xml文檔只能只有一個根元素

xml元素必須正確嵌套

屬性值必須加引號

一個元素不能有相同的屬性

----------------------

xml元素是xml文檔的基本單位。

在起始標記和結束標記之間的內容,稱為xml元素的內容,比如woyouxian就是元素<site>woyouxian</site>的內容

如果xml元素沒有內容,稱為空元素。空元素有一種特殊寫法,比如<site/>

xml文檔是區分大小寫的。xml文檔是樹狀結構,只有一個根元素,其他元素是根元素的後代。

xml元素之間的關係有:子節點,父節點,併列節點又稱為兄弟姐妹節點。

通常來說,xml屬性採用雙引號,也可以使用單引號。如果屬性值中包含雙引號,就用單引號。如果屬性值中包含單引號,就用雙引號。

xml中沒有硬性規定哪些數據應該使用元素或者是屬性,倆種寫法都會正確的。

通常來說,元數據(描述數據的數據)應該使用屬性,數據本身應該使用元素。

1.3xml名稱命名規則

不能以數字或標點符號開頭

不能以xml開頭

xml名稱不能含有空格

xml開頭不能用連接符。句號。冒號。這是xml命名空間的保留符號。

xml實體引用

在 XML 中,有 5 個預定義的實體引用:

註釋:在 XML 中,只有字元 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。

如果你要輸入的文檔中含有很多的字元“<”或者是&,要將所有的都替換很麻煩,可以使用CDATA區(CDATAsection)。在此區域內,xml解析器不會解析CDATA曲內的內容。

CDATA區以<![CDATA[開始,以]]>結束

註意:在CDATA區域內,不能出現]]>.

xml註釋以<!--開頭,和以-->結束。

XML聲明

xml文檔應該以xml聲明開始,不過不會必須的。如果要寫聲明,必須放在第一行。

xml文檔聲明主要有三個參數:

版本(version)

版本表示遵循的是W3C的xml1.0的標準

字元編碼(encoding)

字元編碼表示xml文檔使用的字元的編碼方式。一些英文文檔的xml文檔,你會看到他們使用的hi單位元組的ISO-8859-1編碼,不過對於中文文檔來說,應該使用雙位元組的UTF-8或者Unicode

如果是含有非英語字元的xml文檔,你學要將xml文檔村委UTF-8或者Unicode()

獨立(standalone)

如果xml standalone的值是no,表示它需要DTD

不需要DTD的xml文檔,standalone值應該寫為yes。

xml命名空間

xml命名空間標準的原先目的是為瞭解決xml文檔中命名衝突的問題。由於xml文中的命名是預定義的,當倆個不同的文檔中 使用相同的元素名稱時,就會發生 衝突。

命名空間通過給標識名稱添加一個(URL)定位的方法來區別這些名稱相同的標識、

命名空間是使用xmlns:屬性在元素上聲明的,此屬性的值就是標識該命名空間的URL....命名空間語法:xmlns:<name>=<"uri">,NAME是命名空間首碼的名稱,uri是說明命名空間URi的字元串。

一旦聲明後首碼就可以用限定xml文檔中的元素和屬性並將它們與明敏空間URI關聯。

<mybook:BOOK xmlns:mybook="http:........">
<bb:BOOK  xmlns:bb="urn:blue....">

如果文檔中存在Publisher元素,並且已經為該元素聲明瞭命名空間,則在Pbulisher元素需要用冒號將命名空間別名添加到該元素前面、

如果要聲明並使用預設命名空間,請從元素的聲明中省略別名和分號。

<BOOK xmlns="http:......">

任何沒有用命名空間首碼完全限定的元素均屬於預設命名空間。預設命名空間只實用與元素,不適用屬性。命名空間聲明有範圍,命名空間只在相應的範圍內有效,有倆種範圍:預設範圍和限定範圍。

預設命名空間是在根元素中聲明的命名空間。它應用於文檔中所有未限定的元素。

限定命名空間在一個更具體的命名空間在文檔中某一位置重寫時聲明的。

命名空間聲明後才可以使用,但並不一定要在文檔的開頭。

1.4DTD 和XML Schema

DTD(Document Type Definition)文檔類型定義,是一套關於標記符的語法規則。它是xml1.0 的一部分,是xml文件的驗證機制,屬於文件組成的一部分。

DTD 是保證xml文檔格式正確地有效方法。

DTD 文檔包括:元素的定義規則,元素間關係的定義規則,元素可使用的屬性,可使用的實體或符號規則、

xml文檔提供應用程式一個數據交換的格式,而DTD正好是讓XML文件能能夠稱為數據交換的標準、因為不同的公司只需要定義好標準的DTD,各公司都能夠依照DTD建立xml文件並且進行驗證,如此就可以輕易的建立標準和交換數據,這樣便滿足了網路共用和

數據交互。

DTD是一個ASCII 的文本文件,尾碼名為.dtd。每一個xml文檔都可以攜帶一個DTD.用來對該文檔格式進行描述。測試該文檔是否為有效的xml文檔。

xml Schema已經成為w3c的正式推薦標準,有替代xml DTD趨勢。xml Schema功能和DTD相似,但其本身是一個xml文檔,符合xml語法結構,可以通過xml解析器解析。

xml Schema就好像database中對錶的定義一樣,,而關聯的這個xml Schema的xml就好像資料庫中的數據。它必須滿足表所定義的規則、

1.5解析xml文檔

xml除了保存信息外本身不能做任何事情,你需要處理xml數據,用於處理xml文檔的軟體稱之為解析器。xml解析器可以讓你讀寫操作xml文檔。

取決於他們如何處理xml文檔,在程式中範文並咋偶哦xml文件一般有倆種模型:流模型和DOM 模型(文檔對象模型)。

流模型中有倆種辯題-推模型和拉模型,推模型也就是常說的SAX(簡單的XML API),SAX是一種靠事件驅動的模型。

1DOM

2SAX

 

1.6XPath介紹

xml是從xml中派生出來的技術,專門用於快速檢索和查詢xml文檔、XPah是XSLT技術的基礎、支持跨平臺、XPath理解時可以參考目錄結構FilePath()

1.7XSLT介紹

是一種將xml溫江轉換為其他文本文檔的語言。是建立在xml和xpath之上的國際標準。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇:設置窗體透明C#代碼 如果要實現MDI窗體的右鍵菜單,可以添加一個contextMenuStrip(ID設置為:contextMenuStrip_hewenqi),然後設置窗體的ContextMenuStrip屬性為contextMenuStrip_hewenqi效果如下圖: 轉自:http
  • Winform混合式開發框架,是一種支持分散式部署的應用模式,支持直接連接資料庫,訪問遠程WCF服務,訪問遠程Web API服務等服務的綜合性框架,根據不同的需求採用不同的數據介面,是一個適應性很廣的應用框架。 混合式開發框架它本身是一個完整的業務系統外,它外圍的所有輔助性模塊(如通用許可權、通用字...
  • 哦別誤會……我真的很喜歡 Node,而且我覺得它提出的概念和模式將在很長一段時間內,對服務端 Web 編程產生深遠的影響。即使隨著時間的推移 Node 過氣了,我們肯定可以從下一個牛逼玩意身上或多或少的感覺到它的影響(不管好的和/或壞的)。而在這期間,我們中很多人都會選擇它,幸福的在一起,生產。 不
  • 使用Entity Framework (v6.1.3)突然遇到這個問題了,之前一直好好的,怎麼破? 此處省略了多次在“好”與“壞"的項目中試驗的過程(苦啊),直接給出答案。答案是:沒有按DbContext的機制來進行DbSet的實例化導致的。(我遇到的情況) 我們一般在自己的DbContext里這樣
  • 上個示例是C#調用windows api在原來代碼上加入窗體透明,控制項不透明代碼: 1 using System; 2 using System.Runtime.InteropServices; 3 using System.Windows.Forms; 4 5 namespace HoverTre
  • 展示層由Ninesky.Web項目實現,負責網站內容的顯示,項目包含Member和Control兩個區域。 Member區域實現網站內容的管理,Control區域實現網站系統管理。結構、功能圖如下: 一、Member區域 1、添加Member區域 Ninesky.Web【右鍵】-> 添加->區域 。...
  • 閱讀目錄基本用法高級用法 本文主要是我在項目中對C#枚舉的使用心得,如有不足的地方歡迎您指出。一、基本介紹  枚舉是由一組特定常量構成的一組數據結構,是值類型的一種特殊形式,當需要一個由指定常量集合組成的數據類型時,使用枚舉類型。枚舉聲明可以顯式地聲明 byte、sbyte、short、us
  • 有文檔,但是,寫文檔的人明白,看文檔的人很有難度。 沒有SDK,要自已寫。 然後,錢的流入流出都必須經過虛擬錢包,提現還要綁取現卡,這個我也能理解,不能理解的是,訂單退款,為什麼要退到虛擬錢包,這個時候要程式來幫用戶綁取現卡,可是這不是用戶主動操作呀。要有密碼呀。可是我們沒有存用戶的密碼呀。 就接了
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...