Bất kỳ công cụ nào để tạo lược đồ XSD từ tài liệu cá thể XML? [đóng cửa]


146

Tôi đang tìm kiếm một công cụ sẽ lấy một tài liệu cá thể XML và đưa ra một lược đồ XSD tương ứng.

Tôi chắc chắn nhận ra rằng lược đồ XSD được tạo sẽ bị giới hạn khi so sánh với việc tạo lược đồ bằng tay (có thể nó sẽ không xử lý các phần tử tùy chọn hoặc lặp lại hoặc ràng buộc dữ liệu), nhưng ít nhất nó có thể đóng vai trò là điểm khởi đầu nhanh.

Câu trả lời:


65

các công cụ suy luận Microsoft XSD là một tốt, giải pháp miễn phí. Nhiều công cụ chỉnh sửa XML, chẳng hạn như XmlSpy (được đề cập bởi @Garth Gilmour) hoặc OxygenXML Editor cũng có tính năng đó. Chúng khá đắt, mặc dù. BizTalk Server cũng có một công cụ suy luận XSD.

chỉnh sửa: Tôi mới phát hiện ra lớp .net XmlSchemaInference , vì vậy nếu bạn đang sử dụng .net, bạn nên xem xét điều đó


1
wow, vài tháng sau bạn đã chỉ cho tôi một giải pháp tuyệt vời để thực hiện chuyển đổi XDR sang XSD nhanh chóng! Cảm ơn!
bethlakshmi

6
Thật khó để tôi tìm thấy bản tải xuống cho công cụ này (xsd.exe), nhưng nó đã có trên hệ thống của tôi trong C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin. Chỉ cần nghĩ rằng tôi sẽ chia sẻ trong trường hợp giúp đỡ bất cứ ai.
oob

2
Trong trường hợp ai đó không cài đặt Visual Studio, đây là một liên kết thay thế để tải xuống xsd: juliankay.com/development/doad-xsd-exe
MD

5
Thư mục dường như xsd.exeđã thay đổi trên Windows 7. Tôi có nó trong nhiều Microsoft SDKsthư mục (vì vậy nó dường như không nhất thiết phải phụ thuộc vào Visual Studio nữa?), Trong đó có thư mục này : C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools. Tôi đã phải chạy nó trong thư mục chứa xml, để ngăn lỗi về "các ký tự không hợp lệ trong đường dẫn", nhưng đó có thể là do tên tệp dài mà tôi có.
Yahoo Nghiêm túc

Bất cứ ai khác gặp khó khăn khi sử dụng công cụ suy luận MS XSD, nâng cao OutOfMemoryException cho tệp XML 200 MB vẫn còn hơn 8GB RAM miễn phí?
Felipe Sabino

54

Bạn có thể sử dụng tùy chọn mã nguồn mở và đa nền tảng: inst2xsd từ XMLBeans của Apache . Tôi thấy nó rất hữu ích và dễ dàng.

Chỉ cần tải xuống, giải nén và chơi (nó yêu cầu Java).


mẹo tuyệt vời, điều đó thực sự đã giúp tôi rất nhiều, thx!
IAd CHƯƠNG

2
OMG Điều này tốt hơn nhiều so với tất cả những điều nhảm nhí của Powershell! Đặc biệt là vì tôi không có tệp XSD!
Chloe

3
làm việc như một lá bùa :: cd <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-type smart -enumerations 4 <input_file.xml> -outDir <output_Directory>
nhật ký


3
Lưu ý rằng XMLBeans đã được chuyển đến attic.apache.org , ngôi nhà của các dự án Apache đã nghỉ hưu. Nói cách khác, nó đã không được cập nhật kể từ năm 2012.
Magnilex

51

Trang là lựa chọn tốt nhất ở đây. Nguồn mở và nền tảng chéo (mặc dù bắt buộc phải có Java)

Từ trang web của Trang:

Trang chuyển đổi giữa các ngôn ngữ lược đồ khác nhau cho XML. Nó hỗ trợ các ngôn ngữ sau

  • THƯ GIÃN NG (cú pháp XML)
  • Cú pháp tin cậy NG nhỏ gọn
  • DTD XML 1.0
  • Lược đồ XML của W3C

Một lược đồ được viết bằng bất kỳ ngôn ngữ lược đồ được hỗ trợ nào có thể được chuyển đổi thành bất kỳ ngôn ngữ lược đồ được hỗ trợ nào khác, ngoại trừ Lược đồ XML của W3C chỉ được hỗ trợ cho đầu ra, không phải cho đầu vào.

Trang cũng có thể suy ra một lược đồ từ một hoặc nhiều tài liệu XML mẫu.

Liên kết tải xuống


Trang cũng là công cụ được tích hợp vào OxygenXML để thực hiện suy luận XSD từ một hoặc nhiều tài liệu XMl. Ở lần thử đầu tiên ở đây có vẻ như hoạt động tốt.
redcalx

4
Nếu tất cả những gì bạn cần là tạo xsd từ tệp xml, trang là IMHO tốt nhất, nhanh nhất và dễ nhất.
kriver

2
Các tài liệu trang là một chút mỏng. Để tạo một lược đồ, hãy chạy $ trang file.xml schema.xsd.
Joe Mornin

trên windows chạy: java -jar trang.jar file.xml lược đồ.xsd
Alexey Obukhov

Có các cấu trúc con xuất hiện ở cùng một dạng ở nhiều nơi trong mẫu XML của tôi, Trang đã thực hiện một công việc hoàn hảo trong việc phát hiện sự lặp lại và tạo ra một XSD tối thiểu, đó là điều tôi cần. Rất đẹp!
Tomislav Nakic-Alfirevic

17

Trong VS2010 nếu bạn tải tệp XML vào trình chỉnh sửa, hãy nhấp vào menu XML >> Tạo lược đồ.


3
Và trong các phiên bản cao hơn
Jay Jay Jay

12

Ngoài ra còn XML schema learnercó sẵn trên Github .

Nó có thể lấy nhiều tệp xmltrích xuất một XSD chung từ tất cả các tệp đó .


1
Hãy lưu ý rằng công cụ này được viết bằng php, vì vậy nó không tầm thường để thiết lập.
79E09796

5
@ 79E09796 Cài đặt một cli php với sudo apt-get install php5-clivà chạy ./learn --help--- Tôi thực sự không thấy sự khác biệt giữa công cụ đó và một công cụ được viết bằng java, python hoặc ruby ​​:)
edorian

1
chỉ cần thử dưới windows - hoạt động tuyệt vời với php 5.4 mà không cần cài đặt. Cả người học lược đồ php và XML chỉ giải nén và thực thi bằng cách sử dụng các đường dẫn đầy đủ;)
vak

nhận xét nhỏ về localitytrường: nếu một tên trường được sử dụng ở nhiều nơi trong XML đề cập đến các yếu tố khác nhau , thì localitygiá trị lớn hơn 1 là bắt buộc, ví dụ root/itemroot/something/itemtham khảo các loại khác nhau, sau đó --locality 2được yêu cầu ở mức tối thiểu
shadi

10

Nếu bạn đã cài đặt .Net, một công cụ để tạo các lược đồ và các lớp XSD đã được bao gồm theo mặc định.
Đối với tôi, công cụ XSD được cài đặt theo cấu trúc sau. Điều này có thể khác nhau tùy thuộc vào thư mục cài đặt của bạn.

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Thông thường các lớp và lược đồ mà công cụ này tạo ra hoạt động khá tốt, đặc biệt là nếu bạn sẽ sử dụng chúng bằng ngôn ngữ .Net

Tôi thường lấy tài liệu XML mà tôi theo sau, đẩy nó qua công cụ XSD có /o:<your path>cờ để tạo lược đồ (xsd) và sau đó đẩy tệp xsd trở lại qua công cụ bằng cách sử dụng các /classes /L:VB (or CS) /o:<your path>cờ mà tôi có thể nhập và sử dụng các lớp trong ngày của tôi ngày. Dự án Net


6

Nếu tất cả những gì bạn muốn là XSD, LiquidXML có phiên bản miễn phí là XSD và nó có GUI cho nó để bạn có thể điều chỉnh XSD nếu muốn. Dù sao thì ngày nay tôi cũng tự viết XSD, nhưng tất cả là nhờ ứng dụng này.

http://www.l Liquid-technology.com/


4

nếu bạn đang làm việc trong thế giới java - ý tưởng intelliJ cũng hỗ trợ xml rộng rãi, bao gồm thế hệ xsd và samle xml từ thế hệ xsd và với các plugin bạn có thể nhận được trình gỡ lỗi xslt. - đặc biệt tốt nếu bạn có kế hoạch sử dụng các công cụ như jaxb sau đó.


2
Và điều này cũng có sẵn trong phiên bản cộng đồng miễn phí của Idea.
lbalazscs


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.