{"id":22281814,"url":"https://github.com/membrane/soa-model","last_synced_at":"2025-05-15T06:07:36.132Z","repository":{"id":5555762,"uuid":"6760343","full_name":"membrane/soa-model","owner":"membrane","description":"Toolkit and Java API for WSDL, WADL and XML Schema.","archived":false,"fork":false,"pushed_at":"2025-02-06T09:21:41.000Z","size":22515,"stargazers_count":91,"open_issues_count":48,"forks_count":73,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-14T10:42:38.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.membrane-soa.org/soa-model/","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/membrane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-11-19T13:00:49.000Z","updated_at":"2025-02-06T09:21:45.000Z","dependencies_parsed_at":"2024-06-18T21:19:56.792Z","dependency_job_id":"ac34f31c-55ef-4cb3-818c-50fb90059416","html_url":"https://github.com/membrane/soa-model","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane%2Fsoa-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane%2Fsoa-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane%2Fsoa-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane%2Fsoa-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/membrane","download_url":"https://codeload.github.com/membrane/soa-model/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254283340,"owners_count":22045140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T16:22:21.103Z","updated_at":"2025-05-15T06:07:36.069Z","avatar_url":"https://github.com/membrane.png","language":"Groovy","funding_links":[],"categories":["开发框架"],"sub_categories":[],"readme":"Membrane SOA Model \n==================\nCheck the [Repository at GitHub](https://github.com/membrane/soa-model) for the latest source code.\nWhat is SOA Model?\n-\nMembrane SOA Model is an open-source toolkit and Java API for WSDL and XML Schema, licensed under ASF 2.0. that can:\n\n- Parse, create or modify a WSDL or XML Schema Document from Java\n- Compare two WSDL or XML Schema Documents\n- Create a SOAP Request or Template\n- Analyze a WSDL or Schema document and generate an HMTL report\n\nCommand Line Tools\n------------------\nMembrane SOA Model provides command line tools beside the java api for\n\n- Analyzing a WSDL document and generating a report\n- Creating a SOAP request or template out of WSDL\n- Comparing two WSDL or Schema documents\n\nAll you need is to download and run the batch with commands.\n\nCode Samples\n-----------\nHere are some examples of the tasks you can achive with SOA Model.\nFor more details see the [documentation](http://membrane-soa.org/soa-model-doc/).\n\nParsing a wsdl:\n\n    WSDLParser parser = new WSDLParser();\n    Definitions defs = parser.parse(\"http://ws.xwebservices.com/XWebBlog/V2/XWebBlog.wsdl\");\n\nCreating a new wsdl:\n\n    Definitions wsdl = new Definitions(\"http://predic8.com/wsdl/AddService/1/\", \"AddService\");\n    wsdl.add(schema);\n    PortType pt = wsdl.newPortType(\"AddPortType\");\n    Operation op = pt.newOperation(\"add\");\n    op.newInput(\"add\").newMessage(\"add\").newPart(\"parameters\", \"tns:add\");\n    op.newOutput(\"addResponse\").newMessage(\"addResponse\").newPart(\"parameters\", \"tns:addResponse\");\n    return wsdl;\nComparing two wsdls:\n\n    Definitions wsdl1 = parser.parse(\"resources/diff/1/article.wsdl\");\n    Definitions wsdl2 = parser.parse(\"resources/diff/2/article.wsdl\");\n    WsdlDiffGenerator diffGen = new WsdlDiffGenerator(wsdl1, wsdl2);\n    List\u003cDifference\u003e lst = diffGen.compare();\nComparing two schemas:\n\n    Schema schema1 = parser.parse(\"resources/diff/1/common.xsd\"); \n    Schema schema2 = parser.parse(\"resources/diff/2/common.xsd\");\n    SchemaDiffGenerator diffGen = new SchemaDiffGenerator(schema1, schema2);\n    List\u003cDifference\u003e lst = diffGen.compare();\nCreating a soap request:\n\n    Definitions wsdl = parser.parse(\"resources/article/article.wsdl\");\n    StringWriter writer = new StringWriter();\n    SOARequestCreator creator = new SOARequestCreator(wsdl, new RequestTemplateCreator(), new MarkupBuilder(writer));\n    //creator.createRequest(PortType name, Operation name, Binding name);\n    creator.createRequest(\"ArticleServicePT\", \"create\", \"ArticleServicePTBinding\");\n    System.out.println(writer);\n\nIntegration Testing\n-------------------\n\nTo run \"mvn integration-test\" in an isolated environment, you may run\n\n    docker build .\n\nif you have a Docker Engine available.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembrane%2Fsoa-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmembrane%2Fsoa-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembrane%2Fsoa-model/lists"}