我有一個代表網絡圖的數據模型。所以我得到了主機實體(以及它們的地址和許多其他屬性/元素),並且我需要以某種方式建模Link實體(表示源節點和目標節點之間的網絡鏈路,具有延遲和吞吐量屬性)。如何使用XML Schema來表示網絡圖?
問題是,我無法想象使用XML Schema設計網絡的正確方法。我應該如何以適當的方式設計它? (在XML設計之後,我將使用這個模式和Java應用程序)。
我想我應該創建一個網絡元素作爲模式的根元素,但我如何管理主機之間的鏈接?不知道是否必須將Link元素放入根元素Network中,以便Host元素旁邊,或者必須將Link元素放入Host元素中。
這裏是一個指導例如
<xsd:element name="network" type="NetworkType"/>
<xsd:complexType name="NetworkType">
<xsd:sequence>
<xsd:element name="host" type="HostType"/>
<!-- don't know if put Link element here or inside HostType-->
</xsd:sequence>
</complexType>
請忽略模式的聲明中缺少等問題,我需要的只是一個造型建議,如果可以,如何使用「主機」的例子或主機的屬性「hostName」(在上面的例子中沒有顯示)作爲關鍵字,以及如何使「鏈接」的元素/屬性sourceHost和destHost引用前一個。
編輯:我會告訴你更多關於建模問題,我注意到我的問題不是很準確。 由於我建模的網絡基礎設施,我甚至不關心頂點(主機)沒有「連接」到其他頂點(主機)。說,我想通過僅鏈接的方式來建模圖形,並且由於我不關心源頂點和目標頂點(對於我的用例),我可以建模它只爲每對連接的頂點插入一個鏈接。 但事實是,我必須從一個Java通用接口開始建模一個XML應用程序(和一個XML模式),並表示所有涉及它的信息。讓我們假設界面
public interface NetworkReader {
public Set<Host> getHosts();
public Host getHost(String hostName);
public Connection getConnectionPerformance(Host h1, Host h2);
}
鑑於這樣的接口,我選用也包括在我的根元素網絡主機元素(它可以使接口需要的第一和第二種方法更容易主機的訪問),這是爲什麼上述關於僅鏈接網元的考慮失敗(在我看來)。
正如你可以注意到的,第三種方法需要關於給定兩個主機的鏈接狀態的信息,這就是爲什麼我還需要我的XSD中的Link元素。
非常準確的答案。你能檢查我的編輯嗎?這就是爲什麼我會避免第二種和第三種方法的原因(我認爲檢索我需要的信息會非常複雜)。對於我的建模問題也存在一些疑問。 – Serusar