DataBaseInfo:資料庫容器,含 Tables 集合。TableInfo:表資訊,含 Fields 集合、Tag 儲存型別標記。FieldInfo:欄位資訊(名稱、型別、長度、可空、主鍵、索引等)。三者形成「資料庫→表→欄位」三層物件樹,支援 XML 序列化。
XmlNamespaceManager 註冊 a/c/o 前綴。/Model/o:RootObject/c:Children/o:Model 為根。c:Tables/o:Table 取得表代碼、名稱、主鍵參考 ID。c:Keys/o:Key[@Id=...]/c:Key.Columns/o:Column/@Ref 取得主鍵欄位 ID 集合。c:Columns/o:Column 取得欄位代碼、名稱、註解、資料型別(去除長度括號)、長度、主鍵標記。
private string ReadXMLValue(XmlNode node, string path, XmlNamespaceManager nsm)
{
XmlNode n = node.SelectSingleNode(path, nsm);
if (n == null) return null;
return (n is XmlElement) ? ((XmlElement)n).InnerText : n.Value;
}
統一處理元素文字與屬性值讀取。