[發明專利]將XML Schema文檔轉換為XSL文檔的方法有效
| 申請號: | 201811208124.3 | 申請日: | 2018-10-17 |
| 公開(公告)號: | CN109597917B | 公開(公告)日: | 2022-03-01 |
| 發明(設計)人: | 馬永起;張民;彭小靜;蒙立榮;謝家俊;程錚;吳家菊;朱行林;劉振吉;成勛 | 申請(專利權)人: | 中國工程物理研究院計算機應用研究所;四川中銳信息技術有限公司 |
| 主分類號: | G06F16/84 | 分類號: | G06F16/84;G06F16/11 |
| 代理公司: | 北京天奇智新知識產權代理有限公司 11340 | 代理人: | 楊春 |
| 地址: | 621908*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | xml schema 文檔 轉換 xsl 方法 | ||
1.一種將XML Schema文檔轉換為XSL文檔的方法,其特征在于:包括以下步驟:
步驟1:先確定XML Schema標準定義中需要關注的元素,然后確定XML Schema標準定義的元素和XSL標準定義的元素之間的映射關系;
步驟2:對XML Schema文檔進行解析,獲取schema標準中需要關注的第一個元素,并添加到XSL文檔中;
步驟3:按照深度優先原則依次對XML Schema文檔中的schema的子節點中的element元素進行解析,查找XML Schema中需要關注的元素并添加到XSL文檔中,直到完成整個XML Schema文檔的轉換;
所述步驟1具體包括以下步驟:
步驟(1.1):確定XML Schema標準定義中需要關注的元素包括以下元素:xs:elment元素及其name、type和ref屬性;xs:group元素;xs:attribute元素及其ref屬性;xs:complexType元素;
步驟(1.2):確定XML Schema標準定義的元素和XSL標準定義的元素之間的映射關系,具體為:xs:elment映射為xsl:template,并使用match屬性關聯XML元素和模板;/element/element之間的父子關系映射為template/apply-templates,并使用apply-templates的select屬性,表示僅處理匹配該屬性的值的子元素;xs:attribute映射為xsl:value-of,用于提取某個選定節點的值;/element/attribute映射為/template/value-of;
所述步驟2具體包括以下步驟:
步驟(2.1):創建XSL文檔,并添加域名和版本信息;
步驟(2.2):讀取XML Schema文檔,獲取document對象和根節點;
步驟(2.3):對根節點的子節點進行遍歷,獲取當前的子節點;
步驟(2.4):如果子節點的名稱是element,那么解析節點的type、name和ref屬性;
步驟(2.5):根據type、name和ref的值,確定需要關注的第一個元素的名稱,并將該元素添加到XSL文檔中;
所述步驟3具體包括以下步驟:
步驟(3.1):根據子節點的name、type、Ref屬性值,確定新的要解析的element元素、element元素的路徑Xpath、以及element元素節點名稱;
步驟(3.2):獲取該element元素節點迭代器;
步驟(3.3):根據element元素節點的名稱參數,設置當前正在解析的element元素elementTemplate、以及正在解析的element元素節點的名稱;
步驟(3.4):判斷該element元素是否是葉子節點,如果是,則轉到步驟(3.5);如果不是葉子節點,則轉到步驟(3.8);
步驟(3.5):判斷element元素節點的名稱是否是element,如果是,則轉到步驟(3.6);如果不是element,則轉到步驟(3.7);
步驟(3.6):獲取element元素節點的name、type屬性值,并根據name和type的值是否為空,判斷是否給elementTemplate元素添加子節點value-of;
步驟(3.7):對節點的ref屬性值不為空的元素進行處理,確定新的要解析的element元素、element元素的路徑Xpath、以及element元素節點名稱;轉到步驟(3.2);
步驟(3.8):對該元素的子節點進行遍歷,獲取元素節點element、元素節點名稱、設置節點的Xpath,如果子節點名稱是element,則轉到步驟(3.9);如果子節點名稱是attribute,則轉到步驟(3.10);
步驟(3.9):對子節點名稱為element的元素進行處理,根據子節點的name、type、ref屬性值,確定新的要解析的element元素、element元素的路徑Xpath、以及element元素節點名稱;將當前的element元素添加到XSL文檔中,節點的標簽是apply-templates,父節點是elementTemplate;轉到步驟(3.2);
步驟(3.10):對子節點名稱為attributet的元素進行處理,并添加到XSL文檔中,節點的標簽是value-of,父節點是elementTemplate;轉到步驟(3.2)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國工程物理研究院計算機應用研究所;四川中銳信息技術有限公司,未經中國工程物理研究院計算機應用研究所;四川中銳信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811208124.3/1.html,轉載請聲明來源鉆瓜專利網。





