首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

XML 在 .NET 平台下的自訂控件應用(2):Schema 定義與驗證

     編輯:關於.NET

XML 驗證方式

XML 處理前需驗證,主要兩途徑:DTD(文件類型定義)與 Schema。Schema 同為 XML 文件,表現優於 DTD。本文採用 XDR Schema(menu.xdr)。

Menu.xdr 結構

<?xml version="1.0" encoding="UTF-8"?>
<Schema name="menus" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <description>menus schema used to validate menu.xml</description>
  <ElementType name="menu" model="closed" content="empty">
    <AttributeType name="id" dt:type="string" required="yes"/>
    <attribute type="id"/>
    <element name="topmenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>
  </ElementType>
  <ElementType name="topmenu" model="closed" content="empty">
    <AttributeType name="id" dt:type="string" required="yes"/>
    <AttributeType name="text" dt:type="string" required="yes"/>
    <AttributeType name="linkurl" dt:type="string" required="yes"/>
    <AttributeType name="isparent" dt:type="string" required="yes"/>
    <attribute type="id"/>
    <attribute type="text"/>
    <attribute type="linkurl"/>
    <attribute type="isparent"/>
    <element name="submenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>
  </ElementType>
  <ElementType name="submenu" model="closed" content="empty">
    <AttributeType name="id" dt:type="string" required="yes"/>
    <AttributeType name="text" dt:type="string" required="yes"/>
    <AttributeType name="linkurl" dt:type="string" required="yes"/>
    <AttributeType name="isparent" dt:type="string" required="yes"/>
    <attribute type="id"/>
    <attribute type="text"/>
    <attribute type="linkurl"/>
    <attribute type="isparent"/>
    <element name="childrenmenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>
  </ElementType>
  <ElementType name="childrenmenu" model="closed" content="empty">
    <AttributeType name="id" dt:type="string" required="yes"/>
    <AttributeType name="text" dt:type="string" required="yes"/>
    <AttributeType name="linkurl" dt:type="string" required="yes"/>
    <AttributeType name="isparent" dt:type="string" required="yes"/>
    <attribute type="id"/>
    <attribute type="text"/>
    <attribute type="linkurl"/>
    <attribute type="isparent"/>
    <element name="menuitem" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>
  </ElementType>
  <ElementType name="menuitem" model="closed" content="empty">
    <AttributeType name="id" dt:type="string" required="yes"/>
    <AttributeType name="text" dt:type="string" required="yes"/>
    <attribute type="id"/>
    <attribute type="text"/>
  </ElementType>
</Schema>

XDR 語法說明

  • ElementType 定義元素,AttributeType 定義屬性。
  • model="closed" 表示不允許額外屬性/子元素;content="empty" 表示無文字內容。
  • minOccurs/maxOccurs 控制出現次數。
  • 定義後以 element、attribute 實例化引用,使用方式類似 HTML 標籤。

熟悉 HTML 的讀者應能快速理解上述結構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved