2009-12-03 51 views
0

我試圖用delphi中的XMLMapper導入一些有效的Schema(對於xmlspy和oxygen),並且我有這個錯誤在Delphi中使用XMLmapper導入模式?

「Error Flux if:InfofileType unknown」。

我使用命名空間,這種類型是在另一個文件中定義的。

有沒有辦法解決這個問題?

(我也用Delphi嘗試2010的演示,它仍然無法正常工作)

<?xml version="1.0" encoding="UTF-8" ?> 
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:if="http://www.gtest.fr/Apps/InfoFile" xmlns:ca="http://www.gtest.fr/Apps/CommandAnswer" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
    <xs:import namespace="http://www.gtest.fr/Apps/InfoFile" schemaLocation="InfoFile.xsd" /> 
    <xs:import namespace="http://www.gtest.fr/Apps/CommandAnswer" schemaLocation="CommandAnswer.xsd" /> 
- <xs:element name="ServerAnswer"> 
- <xs:annotation> 
    <xs:documentation>Reponse serveur socket</xs:documentation> 
    </xs:annotation> 
- <xs:complexType> 
- <xs:sequence> 
    <xs:element name="InfoFile" type="if:InfoFileType" /> 
    <xs:element name="Command" type="ca:CommandAnswerType" /> 
    </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    </xs:schema> 

報道QC:http://qc.embarcadero.com/wc/qcmain.aspx?d=80124

+1

「(我不使用德爾福2010)」那麼你使用什麼版本的**? –

+0

它與Delphi 2010相同 –

+0

Ist XSD文件InfoFile.xsd在那裏嗎? - 見http://www.w3。org/TR/xmlschema-0 /#import – mjn

回答

1

我仍然試圖抓住一個Delphi 2010(試用版),看看它是否在那裏工作。
我知道在D2009和D2010中已經完成了重要的工作。它在進口和包括進口方面出了名的糟糕。
現在好多了......
如果你不能解決這個問題,我會建議手動編輯模式以刪除包含/導入,並在沒有外部文件的情況下構建一個胖胖的XSD。它應該更好地工作。
這就是我如何處理一組相當複雜的模式,即使.Net庫會窒息。

更新:你可以嘗試替換if:InfoFile的另一個符號,以避免與if保留字的任何衝突;即搜索'N',如果在模式中被_if_或其他任何東西替換... XML映射器應該關心這個,但是,你知道...

+0

我將安裝2010版本的演示程序,並希望它能正常工作。 –

+0

已安裝,並且它是一樣的:( –

+0

請提交QC附帶的模式文件的錯誤報告 在此期間,您可以嘗試查看它是否與Delphi Prism(.net導入程序)一起導入並手動編輯代碼爲德爾福,或調整模式到1大XSD。 我知道這可能是令人沮喪!在那裏,做到了:-( –

0

Eric Thorniley終於給我走的路here

看來XML Mapper並沒有 正確理解名稱空間。 然而,您可以通過 將額外的名稱空間定義 添加到導入的文件中,從而將它變爲生活。這是,我是 肯定,不對。

所以,舉例來說,在你 Insurance.xsd聲明 的xmlns:utils的= 「http://www.gtest.fr/Apps/Utils」

如果添加一模一樣的定義 成Utils.xsd,XML映射器進口它 正確的(我想!)

療法是一個公平的機會,XML間諜 會去掉我的修改 - 肯定企業架構師完全忽略他們 。

0

我希望看到Eric Thorniley指出您的消息,但它不再存在。如果我有消息主題,我可能可以在某個檔案的某個位置找到它。我嘗試了谷歌搜索,但我發現所有這些都是在不同網站上發佈的這篇文章的副本。

謝謝