diff --git a/pkg/template/pkged.go b/pkg/template/pkged.go index 66e1e84..943c866 100644 --- a/pkg/template/pkged.go +++ b/pkg/template/pkged.go @@ -9,4 +9,4 @@ import ( "github.com/markbates/pkger/pkging/mem" ) -var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffec585b73e23a12fe2ba7f4ba9ef80286e0aa7d082421cc24d9134880909a4ac9b26ceb204b5e494e70a6f2dfb7241b63985ca6e6bcedee03717fad4fadbea8db901f80b0984b10fc00fa734a0408809df20cdb92166b28c9fa4bdcf1ec082a680b1ca550d90951765a8476c211cf725ada1b197909071698643917ea4fa852100060816b9861108066fd94a36ae1168a04ab4a9e725e4b5750a11404aca0d40233052906410ca9c4359a622839abb8637e4e28965b767572034f71dec8b758aa03b6561decb8e251a1cffb016af713a2d2223c423c7b23d02b4818089428b0f5777336e6573cfa6d0376c28f321e193b732c2431f9718fdc0e787d7db5405c85fde38370023b5f27b6c2594ea1c2b62a732c8f549653bd4ddf0efd8cb082841a4bac2a6a8b6701495e30087abd630b643cc220e8767a467c54c4b03dc773be38fe17cfbff5dca0eb049dfe91e30dfc4e67d03dfe87e3058e032c40e463a4b359175d96e6c053fc04825eb7df772d30611c04fd8e33f0bc8e05ae29616b10b8a67c18049d8ee7742d70472210b88ee35860bc13978f8f398c1c1038169846daa66381d9cef1215d5761749d414f438ed61204c716385124d38ecc300281eb0f9c6ec7ef753d0b5c4ba339eef8c78eeff55f2d70f516b5d3df52b711bf5a60f4cbcce5e363c10a8923103c38966339df4d69532cfe6ecbee55feb07fdfbf3187dbea366f693e6af4dfee947a3c3c8023f0bd990f550fee8f07a9d11f11ce318b304365f0c727b16c64d41e290f4d284709d76735b3e20184a5c21258000bc18516e24c01ebb3645507b4481914eb102a2cf532167a91db311719d4d608b7092f14d1adc5f5213954a9ad7b590bc0020a6fd4ae02dfb703ef0184454c74aeb66e6a570496d28eebca348ae485e406330509c3c2a644aa5a8137461265ae7823d8b0b2580144f2d4f85de3a8bd1849b80318edc3c8f37d77f093c2264c61c120b571f40c45240f6994925c11b4d3a4196ca166bb802caa7377b8248b5051bc5bc8227f07f4be1642dd1668072053e8ee21cfefed61dff55af8e048455b79daf8ce601fd9f99a6cf4f562884784252dd18692b96d1c42897bdd3d0d6150946d4d8adbd6ecbf7483b4708eb336dc64f493ab1d16710c29b7532cf06f5c7b0219e2146790d952090425feb42dde5d7cc387434653f80ce6f2636abe4eaa747fcab1a58a4c5326dc86a665daadab2387426e5b3a17c6870a480419db02c5d758d7228532ad1f3612a8a3ef4ee3b76e634893b60ae5451bc699925ca8b68a61a50444b8ade3d254b5adca39a56d7cb845e09862a428517b6a495842714c4992ee9d2a4b8920a536de6084d9d35b4b053377bbd12b2c15e5263a7e30f52a75564d3bfdb04392ec4425b772ddb599fe9a513decaca08ae4d024c528fe5d708523530a189a666458557fed54a9bc259a3fdbec35caadc7b54ecfc75c70331b352e4433a8b93409a847f61b93bbceaa9112bcc91bc196255350e747144c55e1d4928dccfb6f8b9afc41c53333107f5aa913f7935e7fa3b2407d617407725329a9046189592a19aa1f3bf375fd9af70e0c9f05a96ef5fe8be800579da0b555380523487f4f6b24bb50b1dbdbc7c7064a186bde1366111776c22964c9111789bdb1b72fa014a2147aceafb1724e4bb7e3f89fb0cd4337ddaff2b643f92372219ef0f665f6012f5d47f1c78c9fdf631f903f8958dfdb8849fdc9b0943079cfdc5e672485e9bc4f79b9e09bf213a267a73944eb0f582462f09d6559ca7a12beb56a6ea1c4a810d80e494444f16eb6aa0b2b20937a847f44dade516df057784cdbfbfebffcfbb31e823aa675f25948f58f88777f8cbe5a40fb030270591e2737de60bd9a0dd96ae153949d3babc54d72cfd609bc983ae8e2aa77590e185c4e79b49814f7de405d7ad1937ea2f1c6bfeca42fabd3af2c7c91c9f4ec38b95d0fee2667f3b3d9fca61891e3a7c999fbb41acf252a8759d89924b823934b3a4d5116d1e8cc4fc3c5fc058dcfff5acd8683f826efe372fa7cbfb816f78b88de66e76a353be9fd393b29a6dee0e640afe2a5f34def85de395bcd867d5c9eac1b7ca76ddf259a33caa842e341198d4ef8889c249391e60ecbfb85cf5695edafe172f884d8f4e5369bd3d578bed6fb2623cd351f62fc26c3413c9b54fa0bd59f8ce7c56aa4fde6f928c9fbb8f3350db3884e46fe79389eabd5c2775069d693c948e7622e570b9786ece6db643474f072488d9d917f113a8dbf09ea4ccb6871ed4c2e6475d6797a7d7b56ade3b12b2fd7957c7f91aaf054e7ccffd7fdc2a5f1d24dde8aef663975504649b49cd29d3f756cef9c0f173e9b8c87dd70f1dc9b30d5afce9c0fe2d9268d2ea6e5243b69f2b05af8ebc9853b1825955d9d2b949d172bef2eb95c6f639ebe180e79eb5c6d57fbacf1ea0965f37ce5f9d7a13775c3f17c102f6bae3bf5d1786e62d5b6f6fca3a90acfb6b6beb6f340c3ec26a9ea391c983a79f36255f9fb4ddfffc5f9f5d9e4ecfa295c0ee56a99de99ba8ca7f4dedba4ba1fe06250a0e7bdfa9e869efb1c8ee7ddf9057d5e2dafb6f63faca9cee98855f98a97ce3fcd371a8199da75f5ae77c1f6ff12f8ffff4bfc6f9be5afff010000ffff010000ffffe4aa82a72a160000`))) +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffec585b73e238f6ff2a537afd7be20b1882df024980ee24ff092440e8ea4ac9b26c6b9025af2427385df9ee5b928d31742e5d3d6fbbfb407c2e3f1d9dbb213f0061319720f801f4e79c0810003be519b6252d365092cd9f71c7b323a8a02d709442652744d96911da09473ccb69696f65e4251c58609ae55ca8bfa04a410080056e608641001afd394795e20e8a04ab8a9e715e53d750a11404aca0d40273052906410ca9c43537c350725661c7fc92502c77e8eae6863dc77943df61a98ed05a7474e29a4785beef07a8dd4f884a8bf004f1ec8d40af21612050a2c0d63fcdd9985ff3e8b70dd8093fc97864ec2cb090c4e4c73d713be0f5f5d5027115f68f0fc209ec7c93d80a6739850adbaaccb13c51594ef531dd1dfa1961050935965855d416ce0292bc6010f4faa716c8788441d0edf40cf9a888417b8ee7fce9f87f7aa777ee20e8f602a773e2f6bb5eafdf75bbffe77881e3000b10f918e96cd64597a5b9f01c3f81a0d7edf75d0b4c190741bfe30c3caf63811b4ad80604ae291f0641a7e3395d0bdc930804aee3381618efc9d5e3630e2307048e056691b6e95860be777c483755185d67d0d32c471b0982530b9c29926947e61881c0f5074eefb43fe8f52d70238de474d071ba7eb7fb6a81eb37a19d06ba0bf9d502a35f87ae1e1f0b56481c81e09b633996f3dd1437c5e29f0eed41ed8f27f8fd9e393e560f7a4bf2d1a8fff6acd40be21b3801df9b0d514de1e182909afb23c239661166a80cfef82496ad8cda4be55b13ca49c2f55dcdb6f806c25261092c8085e0421371a680f559b2aa0b5aa00c8a4d0815965a8d8556723be62283da1ae136e185227ab8b8be24872ab5f5346b025840e1adda57e0fb6ee57d036111139dab9d9bda1581a5b4e3ba328d207921b9e199828461615322552dc05b43893257bc216c5859ac1844f2d4f85df3515b1949b867303a6423cff7ddc14f029b30850583d4c6d13314913c86514a7245d05e9266b0c535c70564519dbb63952c4245f15e9145fe9ed1e75a1ceab69876003285ee01e7f9bd03de77bd167f74a5a2ad3c6d7d6770c8d9f9866c757b31c423c292166943c9dc361f42897bdd03096150946d498adbd6ecbff580b4f81c676d769bd14f5a3b2ce218526ea758e0df687b0219e2146790d952090425fe742cde55bee1c331a2297c0673f93134df2455ba3fc5d852456628136e433332edd1d591432177239d0be343c5480419db318a6fb0ae450a655a3f6c245047f74ee3b71e634893b608e5459b8d3325b9506d11c34a0988705bc6a5a96a5b94734adbfcf11181638a91a2441d88256109c53125497a70ab2c258294da788b11664f6fa90a667abb912b2c15e5263a7eb4f52a71566d3bfdb04392ec492577743db599fea2513decaca08ae4d024c508fe55708523530a189a616458557fed54a9bc459a3fbbec35c29dc7b54cefc75c70b31b355f88665173691250afec3736779d554325789b37842d4ba6a0ce8f2898aac2a9291b99f7df8e6bf20715cfcc42fc495327ee27b9fe4e6581ba61f404725329a904618951950cd58fbdf9ba7ecd7b0786cf82545d7df8223ae2ab49d0d22a9c8211a4bfa935945da8d8ed1df2a7869530d6b827cc222eec8453c892132e127b6bef5e40294429f49c5f43e59c966ec7f13f419b871eba5fc5ed96f247e0423ce1ddcbec035cba89e28f113fbfc73e007f12b1eedb8849fdc9b0943079cfdcc164248599bc4f71b9e0dbf213a067a739449b0f502462f01db52c65bd09dfd29a2e94181502db21898828decd56d5b00232a957f847a05d8f6a83bf8263dadef7ffe65fa0f512d4316d92cf42aa7f44bcfb73f4d502da1f1080abf234b9f5069bf57cc8d64b9fa2ecd2592f6f9307b649e064e6a0c975efaa1c30b89af168392d1ebc81baf2a227fd44e3ad7fd5495fd6e75f58f82293d9c56972b719dc4f2f1617f3c56d3122a74fd30bf7693d5e48540eb3b0334d704726577496a22ca2d1859f86cbc50b1a5ffebd9e0f07f16ddec7e5ecf96179231e9611bdcb2ed57a7ed6fb6b7e56ccbcc1ed915cc52be7ab3e0bbd4bb69e0ffbb83cdb34fcbdb67d9f68cc28a30a8d0765343ae32372964c471a3b2c1f963e5b57b6bf84abe11362b397bb6c41d7e3c5469f9b8e34d67c88f19b0c07f17c5ac927aa3f1d2f8af548fbcdf35192f771e74b1a66119d8efccb70bc50eba5efa0d2e893e948e76221d74b9786ecf6eb743474f06a488d9d913f099dc6df04756665b4bc71a61359dd7599dedc5d547a3c76e5d5a6a21f26a90acf75cefcff7f58ba345eb9c95bf1ddae660eca28895633baf7a78eed9dfbe1d267d3f1b01b2e9f7b53a6fad59d8b413cdfa6d164564eb3b3260feba5bf994edcc128a9ecea5ca1ecb2587bf7c9d56617f3ecc560c85bf76abbda67cdaf9f50b6c8d79e7f137a33371c2f06f1aac6ba331f8d1726566debc03f9aaaf06267eb4b3b0f34cc6e93aa9ec381a993b728d695bf5f75ff2f2f6f2ea617374fe16a28d7abf4ded4653ca30fde36d5f3009783023d1fd6174f4cbfa40fd996de56b340f1a5f1af89339ad0e7ba2f758fedfd9edce87a14ebe7bd2fe6db8dc04ced277c3fc760f73f0afcbfff2cfea7edf5d77f030000ffff010000ffffed136df638160000`))) diff --git a/pkg/template/types.tmpl b/pkg/template/types.tmpl index 8fb211c..3fde174 100644 --- a/pkg/template/types.tmpl +++ b/pkg/template/types.tmpl @@ -26,6 +26,6 @@ import ( // XSD ComplexType declarations -{{range .ComplexTypes }} +{{range .ExportableComplexTypes }} type {{ .GoName }} string {{end}} \ No newline at end of file diff --git a/pkg/xsd/schema.go b/pkg/xsd/schema.go index 06add2f..9902446 100644 --- a/pkg/xsd/schema.go +++ b/pkg/xsd/schema.go @@ -125,6 +125,22 @@ func (sch *Schema) Empty() bool { return len(sch.Elements) == 0 && len(sch.ComplexTypes) == 0 } +func (sch *Schema) ExportableComplexTypes() []ComplexType { + elCache := map[string]bool{} + for _, el := range sch.Elements { + elCache[el.GoName()] = true + } + + var res []ComplexType + for _, typ := range sch.ComplexTypes { + _, found := elCache[typ.GoName()] + if !found { + res = append(res, typ) + } + } + return res +} + func (sch *Schema) GetAttribute(name string) *Attribute { for idx, attr := range sch.Attributes { if attr.Name == name {