From 3e587835be6d66993f1470c2fb788aea83966053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Wed, 20 May 2020 14:55:28 +0200 Subject: [PATCH] Process xsd:element tags --- pkg/template/pkged.go | 2 +- pkg/template/types.tmpl | 8 +++++++- pkg/xsd/element.go | 11 +++++++++++ pkg/xsd/schema.go | 5 +++-- 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 pkg/xsd/element.go diff --git a/pkg/template/pkged.go b/pkg/template/pkged.go index 3473c07..175cc73 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(`1f8b08000000000000ffec585f73dbb811ff2a37782d2390d47fbed57612ebc64ecfb213c7f6643c10b1245182000b808e988cbf7b072045518a2d79eefad4f6c1c2fe767f04b08bdd05e99f8889446a14fd44f6ef8c2914219cc902b0e6554e34cbdf25c3105362085640336270ca0cceaa154e652c8b92d778ad69984ae4a145514a65fe20264311421efa440a4011eaec67326e0c3744a5601a7929652b5d121367281215e71eba3684038a12c235b46809444bd1703fca0f8c83deb09b953b78066527df80367b6cabda7be252d2caaef713b5db4f99c9aad52096c50b8e5e122650645405de5f8dd9477929e99f9e00a7725048eae6f9024a33179f60100cd1f3f3b38792c6ed9f07dc897099a7d840517262009bba043d3045c9ed63363bec48c110c6dd4ca239d41ecf439afd001405a3c04385a480a2d170e2c447c31c3bf443ff9d3f7e17fa37c1280a47d16838188e66e3603a9a0cffe68791ef230f31fd486d34db43d7b55bf00c9e5034194da781871642a2683af4e76138f4d027ce448ea2c01d1fa068380cfd91873e338aa2c0f77d0f7ddc8a5f1f1f4b427d14f91e5a523ba7efa1ebedc64f78deb831f2e7130b659c6b14cd3cf477c30abb916b8851148c67f3f9743a1e4d3df4495bcd7c64f73399cd9f3d74f90275341b6ea89dcbcf1e3a7d3bf5ebe363252a0d14450fbee77bfe3777b819a8bf5ab43b67bf5fc1afe7ccfe636da1f734874afd4fd74adb201ed0007deb3a445385bb0d425bf41b8512040511d7d16f477c596bda6f2a0f9d2b8354dab5ba6ef18056b5018d3c044a496585a430c83b16ac66811ea9202a5f1103da9a4159a3c4895405b1b3318999ac0cb3c525ed22253119b6d56c05e421036bb33d816f9b96f7805655c26cac36dbb45b51a0354eda93e914e90f563a2c0c610214e64c9b56016b27a9ba34b2133069666c40cccaccedbbc5b46fa49a6c01c4bb9086e37130ff45819930a004e118e877a2a8dea771ce4ac3e2ad262b480f758f2b22681bbb7d93ae5686c3d650d0f116d8e77a281ef540df019d91600785e3c90e1e07610fef2d69782f4eebb13fdf45b8ccd9daa69788256522ed89986811f4f18a68988c76344c1055f73519f467c3ffb405d2c325147db82ef891d45e554942b8c41928f8cfa4fdabc617d6d86774075b90521fa69679da84f328076b435dd1a512135712fdd2b49e11a537255b2ab78706e89808b10146e660639d119db5038e553cb4b9d1eddb9629e1695f1597551f2685d15299be4a80318ac4d0d749ed4eadaf2a25e77dbcff888284436c38333b6acd44ca21e12ccd7656d5b58e09e718d61083787ac9540997bb9dde80365c3aefe45e576bd445d3cdec80572cdd8a466fe4b62a0bfb22d10cb8a8b861257141718a7f55d20075474156aed80498e61767c6943dd1fd6ca2d729373b6e75b6ff954abade6771a5ba462cb50b40db925fe8cc6d549d94c2baec04ac6b61888d8faa8469dc69251cbbfb6d83baf811230bd7f07eb1b481fb456fdf993cd4268c362a96eea4b4514ca4ce548bb81db6d3b7e7d7dd2b64f55db126ab772f9a3ddc5482d536ee5482c5f64dac9370659260b28b670e6a9258de13082a154e2527221d4895e235de5c3019893312fa6f639592d7c1d01f1f61bbc116dd5b799ba67b885ca927d85c560778594e93c38c5fefa903e4231edbbca542dbbf02b426e96bd3ed54465ab9ca3bca2b955cd7478821ce4a12e707588c0af28a59d7baed842f595d166a882b0578c52853d5abd16a125611a16d0b3f44dae4a89df02d3c61e7fbf6bffc85d93641eb539e1e73a9fd4878f573f3d943763f284217f52cbd0ae7f9fdf589b8bf1df3b8f8e0dfdf5ea577224fc9f9d28fcf2f2717f55c90af4b496f17d55d383717217db263fc713dbe18663feecf7e17ab1f3a5dbe9fa537f9fcf3e2fd97f7d75faeaa5361a6bf9f9f6477a1c9eec32fffb8bb0df8e24cce17a7e3f355b0a73f0de6c955f9fdeef693babba57c716ea68bd365876f8a0fe6fefa649e5cc9a78bfae4f38dbffcc3dd080a84d94665eb3bda7cb7c1ffffdbf2df560bcfff060000ffff010000ffff545a3c884c130000`))) +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffec585153e33812fe2b5b7a3d0fb29d38c1aeba870166486660ee202c8150539462c9b6ceb2e493648899e2bf5f49761c2703c9d4ee3ddded03517fdd9f2575abbb65f303509e0805a21fc0fc9d51092200335110a858952345f30fc9c08718690425c119d230a51a66d512a6221645c96ab852d84f0570c0b42885d4ff443a0311000ef8860a0222d0d9cf44dc186e904c896ee46b215ae912e9380311af1873c04c2346409420a6488bae09528237dc73f19932a2d6ec66e50e9e91b2936f88d23b6ca3da79e252e0caacf703b4db4fa9ceaae5512c8a371cbd44948348cb8a387f3666e7e252e03f3c014cc55121b09de79648456d7cbc236f005e5f5f1d90346effd8e34e04cb3c859a1425439a405d97441de9a264e631931d66c44423caec4cbc39d41ecf018abe1010f96ee880426002a2e16064c5474d2ddb777df7831b7cf0dd1b6f1805c368383c3af606a370300e067f73fdc8758103a87ac4269aeda1abda2e78469e40341a8ec79e03a65c80683c7043df1f38e01ba33c0791678f8f806830f0dda1037ea718449eebba0e38df88778f8f25c22e885c075c6333a7eb80d966e3272c6fdc18bae1c84011e70a44c70ef8a869613632233188bce0380cc7a17f3c72c0376534e16038f6fc70387a75c0e59bd4e19adab9fcea80d35fa7de3d3e56bc520483e8c1755cc7fd6e0f3723f2cf16edd6d9ef56f0fb39b3fb585be83dcdbe52ffc3b5d23688077004be771da2a9c2ed06a10cfa0d9392704c785c47bf1df065a570bfa93c74ae1ca5c2acd5758b07b0ac3551c001444a218d90141a388782d52cd0231548e64ba4893266228d51c044c80299d9a88054549a9ae212669112e90c9a6a36027080262bbd3981efeb96f7009655424dacd6db345b91442998b427d329d2175a5acc35a29c48c8a8d2ad82acac24eb528b4e80a899b101312d33bbef16e3be112bb40124de86d80f022ffc490129d74472c420c1cf4862b54b638c969ac61b4d56a01eea1e9788e33676bb26552d35231b4381830d30cff5503cec81be032a43de16f283d1160e3cbf877796d4ac17a755e086db0896395d99f4e2b1c094a73d1122c5bd3e5e224546c32d0de548d67d4d46fab3c17f9902e9e192147db82ad881d45e56498298801991e4bf93f6ef1adf586397d11d6c814ab59f5ae66913ce831ca834b645970a886c49f44bd37886a45a976c29ed1e1aa062c4f91a68911313eb0ca9ac1d602ce381c98d6edfa64c114bfbaab8acfa3029b41252f7559c682d514cfa3aa1eca9f555a560ac8f771f91246124d68cea2db5a23c65246134cdb65655b58a116390ac484cf8d35ba68adbdcedf49a28cd84f54eec74b5465d34ddcc0c7049d38da8d55a6eabb2302f12cd008b8a695a221b14abf8772534c1f628d0d2161b27baf98599d6654fb43febe875caf58e5b9de97fa514b6f7195cc9ae110b6503d0b6e4373a731b552ba5645576025435d7c8c447565c37eeb4128cedfdb6465dfc9016856d783f59dac0fda437ef4c0e68134669190b7b524a4bca536baa79dc0e9be9dbf3ebee15b47c96b4c9eaed8b6607379560b48d3b15a7b17913eb2458e9c41b6de3630b154a0cef89702c244c05433c3d1232852bb8be60321467c8777f8d550a567b033738c0b68329ba5fe5ad9bee3e72259fc8fab2dac3cb729cec67fc7c4fed211ff0d8e42de6cafc15442994be37dd5665a495adbc83bc528a557d80e8c3ac4471be87453147ef9855adda4ef896d566a1227125095c524c65f56eb49a8495882bd3c2f791d6396a26fc151e37f37dff7ffec26c9ba0f1294f0fb9d47e24bcfbb9f9ea00b31f10818bfa38bdf2c37c313be18b79c0e2e2b3bb985fa5f73c4fd1e4da8d2797a38b3ae4e8ee5ae0f9b4baf7437de1e32733c6e7abe06290bd2ccebef0e58b4aaf3f1da73779f8fbf4d3eda7d9ed5575caf5f8cbe424bbf775b6f06fff713ff7d8f44c84d3d360b2f476f4a75e985c95cff7f36ff27e8ed974a2c7d3d3eb0edf149ff56276122657e22b19e8fa7e1ef0c5ec63753d5fb1e5fcb6c293cb34b973bf4e4f3f3e5dd4279f97e7b77a310fdc53fa31c513f6bc989d8c49fdb1eae6999dbce0c917ef7e70959267914e27ee57b3dfc53cc8933bf7eff6b69184eb4dc4377105eb6f42f2d77f72fed7eaecf53f000000ffff010000ffff01f0899ba8130000`))) diff --git a/pkg/template/types.tmpl b/pkg/template/types.tmpl index cbea154..903d53d 100644 --- a/pkg/template/types.tmpl +++ b/pkg/template/types.tmpl @@ -1,4 +1,10 @@ // Code generated by https://github.com/gocomply/xsd2go; DO NOT EDIT. {{$packageName := .GoPackageName -}} package {{ $packageName }} -// TODO \ No newline at end of file + +{{range .Elements }} + // Element + type {{ .Name }} struct { + } + +{{end}} \ No newline at end of file diff --git a/pkg/xsd/element.go b/pkg/xsd/element.go new file mode 100644 index 0000000..10b5043 --- /dev/null +++ b/pkg/xsd/element.go @@ -0,0 +1,11 @@ +package xsd + +import ( + "encoding/xml" +) + +// Element defines single XML element +type Element struct { + XMLName xml.Name `xml:"http://www.w3.org/2001/XMLSchema element"` + Name string `xml:"name,attr"` +} diff --git a/pkg/xsd/schema.go b/pkg/xsd/schema.go index db162b9..a010f64 100644 --- a/pkg/xsd/schema.go +++ b/pkg/xsd/schema.go @@ -8,8 +8,9 @@ import ( // Schema is the root XSD element type Schema struct { - XMLName xml.Name `xml:"http://www.w3.org/2001/XMLSchema schema"` - TargetNamespace string `xml:"targetNamespace,attr"` + XMLName xml.Name `xml:"http://www.w3.org/2001/XMLSchema schema"` + TargetNamespace string `xml:"targetNamespace,attr"` + Elements []Element `xml:"element"` } func Parse(r io.Reader) (*Schema, error) {