2009-01-27 38 views
5

Tôi đang tìm một công cụ cho bán tự động thế hệ XSLT. fileCách tạo XSLT từ các mẫu XML

Given 2 XML, nguồn:

<elm>XXX</elm> 

và mục tiêu:

<exx>XXX</exx> 

Công cụ này sẽ làm cho các tập tin XSLT, trong đó sản xuất các mục tiêu từ nguồn. Nhìn vào nội dung, cần xác định các thay đổi về cấp độ, vị trí, tên phần tử, v.v. Không có giải pháp chung cho số này, nhưng tôi chỉ cần chuyển đổi đơn giản.

có thể thực hiện:

1. scan the source, map XML data "XXX" to element path "elm" 
2. scan the target, map XML data "XXX" to element path "exx" 
3. output target XML structure, output XSLT mapping of "XXX", "elm" -> "exx" 

Trong trường hợp xung đột tay can thiệp là cần thiết. Xung đột có thể là "XXX" nhiều hơn tại chỗ trong nguồn.

Sẽ tốt hơn nếu công cụ này là XSD/DTD cũng biết, ví dụ như để thực hiện ánh xạ "trường" thủ công.

Chỉnh sửa: làm rõ.

+0

bạn cần phải làm rõ mức độ khác biệt mà bạn mong đợi để đối phó và dữ liệu duy nhất làm sao để có thể suy ra ánh xạ từ tệp này sang tệp khác - tôi nghĩ rằng có thể đạt được một số giới hạn. –

Trả lời

9

Tôi nghi ngờ rằng thậm chí các quy tắc chuyển đổi đơn giản cũng có thể được tạo tự động.

Ví dụ lấy XML

<family> 
    <father>Paul</father> 
    <mother>Maria</mother> 
    <child>Paul</child> 
</family> 

và mục tiêu

<person>Paul</person> 

mà phải là một sự kết hợp khá phổ biến. Tôi thậm chí không thể tự quyết định (không có sự giúp đỡ từ người muốn chuyển đổi) từ thẻ mục tiêu <person> đã được tạo, từ <father> hoặc <child> vì vậy tôi nghi ngờ rằng một ứng dụng sẽ tạo ra thứ gì đó lành mạnh ở đây.

Cập nhật: Nếu một số loại kéo & thả XSLT thế hệ mới sẽ là ok cho bạn, có một số sản phẩm thương mại có sẵn, nhưng họ không thể sản xuất XSLT từ một tập tin mục tiêu. Nhưng kéo & thả nên có ít nhất một giải pháp tốt hơn là viết nó hoàn toàn bằng tay:

+0

Làm rõ câu hỏi: trong trường hợp cần can thiệp thủ công xung đột. –

+0

Tôi đã tự mình viết bản XSLT, sử dụng Stylos Studio, như bạn đã gợi ý, cảm ơn. Stylus Studio có trình ánh xạ XSLT, nhưng trong trường hợp của tôi nó vô dụng vì nó chỉ là phần tử để ánh xạ phần tử và tôi cũng cần chọn các thuộc tính. Nhưng nó có một giao diện đẹp bao gồm gỡ lỗi. Nhưng bạn vẫn cần hiểu XSLT và XPath để thực sự sử dụng. –

+1

Liên kết tới Trình vẽ XSLT của Tiger hiện đã chết tại thời điểm viết nhận xét này Tháng 2 năm 2016 – Blackvault

4

Bạn đã kiểm tra Altova MapForce? Nó không phải là phần mềm miễn phí, nhưng tôi tin rằng nó xử lý những gì bạn đang tìm kiếm. http://www.altova.com/mapforce.html

+0

Trông giống như trình vẽ bản đồ Stylus Studio XSLT, nhưng trong trường hợp của tôi nó là vô ích, vì nó là phần tử chỉ ánh xạ phần tử và tôi cần chọn cũng như thuộc tính. Giống như: để ánh xạ tới: . Tôi đã không thử MapForce, vì vậy có lẽ tôi đã sai. Grafical field mappers trông khá khó hiểu quá khi áp dụng cho các trường +30. Tôi đoán không có giải pháp dễ dàng. –

+0

MapForce rất mạnh và tôi chắc chắn bạn có thể ánh xạ các thuộc tính cho các thẻ. Tôi chỉ thử bản demo một lần để cho phần mềm tạo ra một XSLT cho tôi. Đó là một công cụ rất mạnh (và đắt tiền), nhưng tôi chắc chắn 99% nó sẽ đáp ứng nhu cầu của bạn. Nó thậm chí có thể tạo ra XSLT chuyển đổi XML sang EDI. – Skaue

2

Tôi đã sử dụng Altova Map force để tạo XSLT cho XML kích thước lớn và hoạt động tốt. Bạn có thể làm hầu như tất cả các logic như logic, chức năng chuỗi, chức năng toán học và các chức năng được định nghĩa bởi người dùng, nhưng điều này là khi XML của bạn là một con nhện rất lớn như web đôi khi làm bạn bối rối và lộn xộn nhưng điều này chỉ được mong đợi. Và tôi đoán manintenance có thể hơi khó khăn trong altova.

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