XML规范化(二)
上一篇文章通过一个例子介绍了如何规范化XML文件,这一篇文章主要讲述XML文件子集规范化遇到的一些问题。
我们从一个XML文件提取其中一部分内容时,一般是将一个子节点从它的父节点分离出来,我们称这个子节点为孤儿节点,提取出来的文件称为文档子集。如果孤儿节点的名字空间上下文在其父节点中声明,文档子集原来的名字空间上下文就可能丢失。下面用一个例子说明这一点。
文件1
<?xml version="1.0"?>
<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2001/12/soap-envelope">
<SOAP:Header>
<!--Protocol specific information, such as signature etc.-->
</SOAP:Header>
<SOAP:Body >
<bs:PackageBooking
xmlns:bs="http://www.FictitiousTourismInterface/BookingService"
xmlns:hs="http://www.FictitiousTourismInterface/HotelService"
xmlns:cs="http://www.FictitiousTourismInterface/CarRentalService"
xml:lang="en" Id='VacationTours/Packages[@id=435]/booking[(@date="2002-09-23T09:06:00Z")and(@number="786")]'
issueDate="2002-09-23T09:06:00Z">
<bs:booking unitCharge="50"
unitDescription="per night"
units="2"
currency="USD"
status="confirmed" >
<item>
<hs:room hotelName="White Palace"
type="suite"