2011-11-18 52 views
2

SQL:2008以及之前的標準中,INFORMATION_SCHEMA被描述爲標準元架構。原則上,可以將元數據卸載到XML中,以便使用XSLT和其他XML工具對模式元數據進行進一步處理和逆向工程。是否有SQL information_schema XSD定義?

  • 一直這樣做過?
  • 有幾分完整的XSD可用,描述INFORMATION_SCHEMA

注:我問這個,因爲我想實現一個數據庫模式卸載到一個SQL標準INFORMATION_SCHEMA XML結構jooq-meta,然後在第二個進程再次裝入該模式,生成Java源代碼代碼artefact在JOOQ。對於這一點,我寧願不推出自己的XSD,但使用預先存在的,貼近的標準-AS-可能XSD

+0

通過SQL:2008你的意思是SQL Server的? – Diego

+0

@Diego:不,我的意思是['SQL:2008'](http://en.wikipedia.org/wiki/SQL:2008)標準。就「INFORMATION_SCHEMA」而言,SQL Server恰好部分地實現了該標準 –

+0

這是您需要生成的XML模式?它有什麼必要條件?我一直無法找到哪個是您需要餵養jooq-meta的最終模式。 – JotaBe

回答

1

ANSI/ISO沒有定義代表數據庫的特定方式使用XML的模式。

最新的標準是SQL:2011。

在這裏你可以看到正式的標準清單。但是,正如你所看到的,他們沒有自由:

35.060: Languages used in information technology

查找列表中的ISO/IEC 9075-X。正如你所看到的,仍然只有舊的信息模式。

所以,你唯一的選擇就是尋找一些廣泛使用。 Altova有自己的做法(一個名爲「從數據庫結構創建XML模式」的函數)。看看這個鏈接: How to Convert a Database to an XML Schema

此應用程序還具有從導出的架構中創建數據庫的選項。

我覺得這是最接近的一個標準,你可以找到(Altova公司是一家領先的XML的軟件公司之一。如果有某種標準,他們應該知道它和使用它)。

氧XML也有它自己這樣做的方式,它lloks好像有某種 「IOS草案」 的:

Extract XML Schema From a Database Structure

+0

感謝提示。好主意,使用Altova的產品。不過,它可能不是免費且開源的。但也許我可以得到一些想法... –

+0

我已經添加了選項在氧氣中執行相同的操作。你也可以看看ORM使用的模式,比如Hibernate,Entity Framework ...來捕捉一些想法。如果你看看Embarcadero ER/Studio,你還會發現,沒有一種穩定的標準交換架構信息的方式:http://www.embarcadero.com/products/er-studio/metawizard – JotaBe

+0

不幸的是,Hibernate doesn走得很遠。它不支持存儲過程,多列外鍵,檢查約束,用戶定義類型,數組等等。我真的需要完整的標準(或我的專有解決方案)... –