2011-10-13 39 views
19

Có ai biết về một công cụ hoặc cách tiếp cận mà từ đó chúng ta có thể tạo một lược đồ JSON từ lược đồ XML hoặc lược đồ XML từ lược đồ JSON bằng Java không?Có một công cụ để tạo một lược đồ JSON từ một lược đồ XML thông qua Java không?

+0

bản sao có thể có của [Tạo lược đồ Json từ lược đồ XML (XSD)] (http://stackoverflow.com/questions/3922026/generate-json-schema-from-xml-schema-xsd) – lexicore

+0

Xem: http://stackoverflow.com/a/30006975/303810 – lexicore

Trả lời

4

Tôi hy vọng bạn có thể viết tập lệnh XSLT để tạo cấu trúc JSON từ lược đồ XML khá dễ dàng. Điều này làm việc vì XSLT rất sẵn lòng đọc và chuyển đổi XML, và một lược đồ XML chỉ là XML.

Đi theo một cách khác sẽ khó hơn một chút. Bạn cần somthing có thể đọc một lược đồ JSON và nhổ ra XML. Đối với điều này, bạn cần một trình phân tích cú pháp, và có khả năng một cái gì đó xây dựng một AST của phân tích cú pháp. Với điều đó và việc đi bộ trên cây, bạn có khả năng có thể tạo một lược đồ XML khá dễ dàng.

ANTLR sẽ cho phép bạn xác định ngữ pháp, tạo trình phân tích cú pháp và AST khá dễ dàng. Nó có một số loại máy phát "Cấu trúc văn bản" có thể hoạt động để đi bộ AST.

DMS Software Reengineering Toolkit của chúng tôi giống như ANTLR nhưng có nhiều máy móc hơn. Với DMS, bạn có thể định nghĩa cú pháp JSON, xây dựng các AST và sau đó viết các tranformatinos nguồn-tới-source để ánh xạ tới XML biểu diễn lược đồ của bạn.

+1

lược đồ json là json, vì vậy bạn chỉ cần một trình phân tích cú pháp json – sbridges

+0

Câu hỏi ban đầu của OP là làm thế nào để tạo ra json từ XML. –

2

ví dụ CXF có thể phân phối yêu cầu trong Json hoặc XML để nó phải có cách để chuyển đổi hai.

+0

Không, điều này không nhất thiết có nghĩa là chuyển đổi đi qua các lược đồ hoặc thậm chí là chuyển đổi giữa XML và JSON. Nhiều khung công tác thay vì tạo riêng XML và JSON, như là các biểu diễn riêng biệt. Chuyển đổi giữa các POJO và JSON dễ dàng hơn giữa XML và JSON. – StaxMan

2

Chuyển đổi XML thành JSON là khá dễ dàng và có thể được thực hiện nhiều cách khác nhau:

http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java
http://www.json.org/javadoc/org/json/XML.html#toJSONObject%28java.lang.String%29

Để chuyển đổi từ XML để JSON cái nhìn lúc này có lẽ, có vẻ là rất đơn giản:

http://www.bramstein.com/projects/xsltjson/
http://code.google.com/p/xml2json-xslt/
http://json-lib.sourceforge.net/index.html

Ngoài ra còn có thư viện http://x-stream.github.io/ cho phép bạn thực hiện chuyển đổi ở cả hai bên (cũng như POJO). Đơn giản ví dụ sử dụng, bạn có thể tìm thấy ở đây: Convert XML to JSON format

/chỉnh sửa: up, hình như tôi đã không hiểu câu hỏi một cách chính xác: P

+3

vâng, XML thành JSON dễ dàng nhưng tôi cần XSD thành JSON Schema –

+2

Và XML thành JSON cũng không có giá trị, vì nó có xu hướng tạo ra "franken-JSON" chứa các công cụ không JSON không cần thiết (để giữ lại thông tin không gian tên XML, phân biệt thuộc tính/phần tử, v.v.) Chuyển đổi tự động có thể xem xét một mùi chống mẫu hoặc mã. – StaxMan

5

Nếu bạn có thể nhận được các POJO phù hợp với lược đồ (sử dụng XJC chẳng hạn), bạn sau đó có thể sử dụng Jackson để tạo lược đồ JSON (xem ObjectMapper.generateSchema(...)).

Các vấn đề liên quan