我在三個文件(Database.xml,Participants.xml和ConditionTokens.xml)中包含一些xml數據。我試圖用外部實體的參與者和條件標記放到數據庫文件,但是當我運行此代碼...在Visual Studio 2008中使用外部實體合併XML文件
string xmlPath = Environment.CurrentDirectory + @"\Data\Database.xml";
XElement database = XElement.Load(xmlPath);
...有我的XML沒有參與者或條件的令牌(在「數據庫」的HasElements屬性爲false)。應該有兩個子元素。我在Visual Studio(2008)中沒有得到任何錯誤/警告,並且實時模式驗證似乎很高興,但是當我運行我的代碼時,某些事情並不完全正確。
有人能告訴我我做錯了什麼嗎?
我粘貼了下面的三個xml文件。
非常感謝!
-Dan
Database.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE database [
<!ENTITY conditionTokens SYSTEM "ConditionTokens.xml">
<!ENTITY participants SYSTEM "Participants.xml">]>
<database
xmlns="experimentManager"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="experimentManager Database.xsd">
&conditionTokens;
&participants;
</database>
ConditionTokens.xml
<?xml version="1.0" encoding="utf-8" ?>
<conditionTokens>
<conditionToken>
<id>1</id>
<token>LargeToSmall</token>
</conditionToken>
<conditionToken>
<id>2</id>
<token>SmallToLarge</token>
</conditionToken>
</conditionTokens>
Participants.xml
<?xml version="1.0" encoding="utf-8" ?>
<participants>
<participant>
<id>1</id>
<conditionTokenId>1</conditionTokenId>
</participant>
<participant>
<id>2</id>
<conditionTokenId>2</conditionTokenId>
</participant>
</participants>
是否有一個原因,你加載到XElement而不是XDocument?這會改變什麼嗎? – 2009-06-26 02:47:34
我實際上首先嚐試了XDocument,但後來我想我會看到XElement是否工作得更好。不幸的是,它沒有區別:( -Dan – devuxer 2009-06-26 04:57:11