Po prostu chcę wiedzieć, czy istnieje program, który może konwertować plik XSD do klasy Python jako JAXB robi dla Java?Jak przekonwertować XSD na Python Class
Odpowiedz
generateDS: Myślę, że jest to dobre narzędzie muszę
Edit: Właściwie generateDS robi bardzo dobrze zadanie !! Generuje klasę Python wszystkimi metodami (setter i getters, eksport do XML, import z XML). Pracuje bardzo dobrze !
Po przetestowaniu generDSDS i PyXB zdecydowałem się na użycie PyXB, ponieważ ma on lepszą obsługę sprawdzania poprawności (wzory) i możliwe jest wywołanie generatora z poziomu modułu pythonowego (setup.py) bez użycia czegoś podobnego do system(). –
@ EnnoGröper Powinieneś prawdopodobnie generować klasy przed czasem. Jeden z moich XSD-ów daje plik Pythona o rozmiarze 29k (35k z PyXB). Jeśli nie masz dostępu do wymaganego XSD do czasu instalacji/środowiska wykonawczego, nie generuj klas podczas instalacji/runtime. –
Eksportowanie XML jest bardzo powolne w generDSDS .... Czy jest jakaś inna alternatywa? Które mogą być szybkie i wydajne. – Nilesh
Spójrz na http://pypi.python.org/pypi/rsl.xsd/0.2.3
Również warto http://pyxsd.org/ działa bardzo ładnie.
Widzę, że pyxsd nigdy nie przekroczył limitu 0.1. Jakieś istotne ograniczenia? – Marcin
@Marcin: "Wszelkie istotne ograniczenia" nie są możliwe. XSD pozwala pisać rzeczy, które nie są * łatwe * do przetłumaczenia na język Python. Czy to jest "ograniczenie"? A jeśli tak, czy nie jest to ograniczenie w samym Pythonie? Jedyne, co możesz zrobić, to użyć PyXSD do swoich określonych XSD i sprawdzić, czy to działa. Jeśli to nie działa, oznacza to znaczne ograniczenie. Dany zbiór XSD może być dość złożony lub całkiem prosty. –
Proszę pokazać przykład tej biblioteki w użyciu. –
Błędy PyXB na XSD I utworzonym przy użyciu dtd2xsd.pl (generateDS nie ma problemu z tym XSD). PyXB wydaje się również generować większe pliki (29k linii vs 35k dla jednego z moich XSD). Jeśli chodzi o szybkość, czas kompilacji będzie taki sam dla obu (prawdopodobnie pełna sekunda - ogromne pliki), a w czasie działania generateDS jest dość szybki, więc nie przejmowałem się testowaniem wyników PyXB - nie może to być naprawdę znacznie szybsze. –
Spędziłem większą część dwóch dni próbując użyć PyXB. Dokumentacja jest straszna, generuje błędy składniowe podczas generowania z tego XSD http://www.companieshouse.gov.uk/ef/xbrl/uk/fr/gaap/ae/2009-06-21/uk-gaap-ae- 2009-06-21.xsd, ze względu na to, że identyfikatory nie mogą zawierać myślników. –
Kiedy naprawiłem te błędy, po prostu chcę zacząć uzyskiwać dostęp do elementów po przeczytaniu w XML .... nie, wszystkie przykłady używają trywialnego XML bez przestrzeni nazw i prawie nie ma dokumentacji API dla obiektów poza garść niezrozumiałych wykresów –
- 1. Jak przekonwertować plik XSD na C# Class
- 2. Jak przedłużyć Python class Init
- 3. jak przekonwertować plik .java do pliku .class
- 4. Python Class Decorator
- 5. Python Recursion within Class
- 6. Python Class Variable Initialization
- 7. python, jak przekonwertować obiekt string.template na ciąg
- 8. python: jak przekonwertować walutę na dziesiętną?
- 9. Python Class vs. Module Attributes
- 10. Python Class Inheritance AttributeError - dlaczego? jak naprawić?
- 11. Jak przekonwertować xsd do czytelnej dla ludzi dokumentacji?
- 12. Jak przekonwertować Float (Wrapper class) do klasy opakowującej Integer?
- 13. Jak przekonwertować kod Unicode na ciąg znaków na poziomie Python?
- 14. Jak przekonwertować niestandardowy obiekt klasy na krotkę w języku Python?
- 15. Python przekonwertować długo aktualne
- 16. python 3.3 dict: jak przekonwertować strukturę PyDictKeysObject na Pythona?
- 17. Python OpenCV przekonwertować obraz na ciąg bajtów?
- 18. przekonwertować ciąg bajtów na int (python)
- 19. python xlrd przekonwertować xlsx na csv
- 20. przekonwertować ahk do python
- 21. Python przekonwertować args do kwargs
- 22. Python, Sqlite3 - Jak przekonwertować listę na komórkę BLOB
- 23. Jak przekonwertować ciąg znaków na prawidłową nazwę zmiennej w python?
- 24. Jak przekonwertować z tablicy boolean na int tablicy w python
- 25. Python: Jak przekonwertować ciąg zawierający bajty szesnastkowe na łańcuch szesnastkowy?
- 26. Jak mogę przekonwertować python urandom na ciąg znaków?
- 27. Jak przekonwertować typ danych: obiekt na float64 w python?
- 28. Jak przekonwertować obiekt python time.struct_time na ciąg znaków ISO?
- 29. Jak przekonwertować ciąg python .isoformat() na obiekt datetime
- 30. Jak przekonwertować `ctime` na` datetime` w języku Python?
Od dynamiki pytony oznacza, że można ustawić niezależnie od atrybutów chcesz w klasie, to naprawdę nie ma definicji pól w taki sam sposób, więc nie jestem pewien, jak to sprawia, że wiele sensu . Ale oczywiście można użyć modułów pobierających i ustawiających do wykonywania kontroli typów i innych. Co ciekawsze, byłoby to coś, co tworzy definicje schematów dla różnych schematów schematów Pythona, takich jak schematy Zope, Zręczność lub SQLAlchemy. Byłoby naprawdę fajnie, gdyby to istniało. –