Будь-які інструменти для створення схеми XSD з документа екземпляра XML? [зачинено]


146

Я шукаю інструмент, який візьме документ із екземпляром XML і виведе відповідну схему XSD.

Я, безумовно, усвідомлюю, що створена XSD схема буде обмежена в порівнянні зі створенням схеми вручну (вона, ймовірно, не обробляє необов'язкові або повторювані елементи або обмеження даних), але, принаймні, вона може слугувати швидкою відправною точкою.

Відповіді:


65

інструмент виведення Microsoft XSD є хорошим, вільним рішенням. Багато інструментів редагування XML, таких як XmlSpy (згаданий @Garth Gilmour) або OxygenXML Editor, також мають цю функцію. Вони досить дорогі, хоча. BizTalk Server також має інструмент виведення XSD.

редагувати: Я щойно відкрив клас .net XmlSchemaInference , тому якщо ви використовуєте .net, ви повинні це врахувати


1
Нічого, місяці пізніше ти вказав мені на чудове рішення зробити швидке перетворення XDR в XSD! Дякую!
bethlakshmi

6
Мені було важко знайти завантаження цього інструменту (xsd.exe), але він уже був у моїй системі в C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin. Просто думав, що поділюсь у випадку, якщо хтось допоможе.
oob

2
Якщо у когось не встановлено Visual Studio, ось альтернативна посилання для завантаження xsd: juliankay.com/development/download-xsd-exe
MD

5
Каталог здається xsd.exe, змінилися в Windows 7. У мене є це в багатьох Microsoft SDKsкаталогах, серед яких цей один (так , здається, не обов'язково залежить від Visual Studio більше?): C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools. Мені довелося запустити його в каталозі, що містить xml, щоб запобігти помилці щодо "незаконних символів на шляху", але це може бути пов'язано з довгим ім'ям файлу, яке я маю.
Yahoo Serious

Хто-небудь ще має проблеми з використанням інструменту виводу MS XSD, піднявши OutOfMemoryException для файлу XML розміром 200 МБ із ще більш ніж 8 ГБ вільної оперативної пам’яті?
Феліпе Сабіно

54

Ви можете використовувати опцію з відкритим кодом та крос-платформу: inst2xsd з XMLBeans Apache . Я вважаю це дуже корисним і простим.

Просто завантажте, розпакуйте та відтворіть (для цього потрібна Java).


чудова порада, що мені дуже допомогло, THX!
IAdapter

2
OMG Це набагато краще, ніж усі, що фігня Powershell! Тим більше, що у мене не було файлу XSD!
Хлоя

3
працював як шарм :: cd <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-types smart -enumerations 4 <input_file.xml> -outDir <output_Directory>
щоденник


3
Зауважте, що XMLBeans було переміщено до attic.apache.org , будинку проектів Apache у відставці. Іншими словами, він не оновлювався з 2012 року.
Magnilex,

51

Транг - найкращий варіант тут. Відкритий код і кросова платформа (хоча потрібна Java)

З веб-сайту Trang:

Trang перетворює різні мови схем для XML. Він підтримує наступні мови

  • RELAX NG (синтаксис XML)
  • Компактний синтаксис RELAX NG
  • XML 1.0 DTD
  • XML-схема W3C

Схема, написана на будь-якій з підтримуваних мов схеми, може бути перетворена в будь-яку з інших підтримуваних мов схеми, за винятком того, що W3C XML-схема підтримується лише для виводу, а не для введення.

Trang також може зробити висновок про схему з одного або кількох прикладів XML-документів.

Посилання для завантаження


Trang - це також інструмент, інтегрований в OxygenXML, щоб робити свої висновки XSD з одного або декількох документів XMl. З першої спроби тут, здається, працює добре.
redcalx

4
Якщо все, що вам потрібно, це генерувати xsd з файлу xml, trang - найкращий, найшвидший та найпростіший IMHO.
kriver

2
Документація на trang трохи тонка. Щоб створити схему, запустіть $ trang file.xml schema.xsd.
Джо Морнін

у Windows запускається: java -jar trang.jar file.xml schema.xsd
Олексій Обухов

Якщо в моєму зразку XML з’явились підструктури, які з’являються в однаковій формі в різних місцях, Trang зробив ідеальну роботу з виявлення повторення та створення мінімального XSD, що саме мені і потрібно. Дуже хороша!
Томіслав Накіч-Альфіревич


12

Є також те, XML schema learnerщо доступне на Github .

Це може приймати кілька файлів xml та витягувати загальний XSD з усіх цих файлів .


1
Пам’ятайте, що цей інструмент написаний на php, тому налаштування не тривіально.
79E09796

5
@ 79E09796 Встановлення php clipa із sudo apt-get install php5-cliзапуском ./learn --help--- я не бачу різниці між цим інструментом, написаним на Java, python чи ruby ​​:)
edorian

1
просто спробував під Windows - відмінно працював із php 5.4 без будь-якої інсталяції. Обидва PHP і XML - схема якого навчають просто розпакували і виконуються з використанням повного шляху;)
ВАК

невеликий коментар до цього localityполя: якщо назва поля використовується в декількох місцях у XML, що посилаються на різні елементи, потрібно більше localityзначення, ніж 1, наприклад, root/itemі root/something/itemстосується різних типів, тоді --locality 2потрібно як мінімум
shadi

10

Якщо у вас встановлено .Net, за замовчуванням вже включений інструмент для генерації XSD-схем та класів.
Для мене інструмент XSD встановлений під наступною структурою. Це може відрізнятися залежно від каталогу установки.

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:]

Зазвичай класи та схеми, які цей інструмент генерує, працюють досить добре, особливо якщо ви збираєтесь споживати їх мовою .Net

Зазвичай я беру документ XML, який я шукаю, просуваю його через інструмент XSD з /o:<your path>прапором, щоб створити схему (xsd), а потім натискаю файл xsd назад через інструмент, використовуючи /classes /L:VB (or CS) /o:<your path>прапори, щоб отримати класи, які я можу імпортувати та використовувати у мій день у день. Чисті проекти


6

Якщо все, що вам потрібно, це XSD, LiquidXML має безкоштовну версію, яка робить XSD, і в неї є графічний інтерфейс, щоб ви могли налаштувати XSD, якщо хочете. У будь-якому разі в даний час я пишу власні XSD вручну, але все завдяки цьому додатку.

http://www.liquid-technologies.com/


4

якщо ви працюєте в Java світі - IntelliJ ідея має також розширену підтримку XML, включаючи генерацію XSD і вибіркове XML з XSD покоління, а також з допомогою плагін ви можете отримати XSLT отладчики. - особливо приємно, якщо ви плануєте згодом використовувати такі інструменти, як jaxb.


2
І це також доступне у безкоштовній спільноті видання Idea.
lbalazscs


3

Це стара тема, але я подумав, що це може бути корисно опублікувати це посилання: якраз знайшов цей інструмент: xsd-gen Створити XML-схему з XML

і він просто робив те, що мені потрібно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.