2012-08-05 64 views
0

我正在嘗試使用System.IO.Packaging命名空間來存儲一些自定義文件,然後再將它們讀出回代碼。C#包關係Id

我很難找到關於如何使用/設置PackagePartRelationship的ID屬性的權威性示例。

例如,如果我有以下幾點:

var relationship = packagePart.CreateRelationship(documentPart.Uri, TargetMode.Internal, relationshipType, relationshipId); 

應參數 'relationshipId' 有什麼格式?在MSDN文檔中聲明的所有內容都應該遵守XML方案數據類型定義中有效的xsd:Id值的規則。但是通過搜索,我也找不到答案。

另外,如果有人問,我想指定Id而不是讓它自動生成的原因是因爲包中只有關於「child」或「relationship」關係的一些關係鏈它。因此,而不是遍歷

packagePart.GetRelationships() 

或者

packagePart.GetRelationshipByType(relationshipType) 

我希望能夠做

packagePart.GetRelationship(relationshipId) 

非常感謝。

回答

2

xsd:id是一個具有唯一約束的xsd:NCName。

所以沒有冒號,沒有逗號,不能以數字開頭。

+0

謝謝。完美的答案! – 2012-08-05 12:10:20

+0

NCName由w3在這裏定義:http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName。 NCName \t :: = \t(Letter |'_')(NCNameChar)表示它可以以字母或下劃線開頭。 – Wes 2015-04-22 19:24:55