public void update() { String[] namespaces = InferredSchemaManager.getInferredSchema(service).getNamespaces(); for (int i = 0; i < namespaces.length; i++) if (namespaces[i].equals("")) namespaces[i] = NO_NAMESPACE; schemaList.setListData(namespaces); if (schemaList.isSelectionEmpty()) { xsd.setText(""); } else { xsd.setText( XmlUtils.prettyPrintXml( InferredSchemaManager.getInferredSchema(service) .getXsdForNamespace((String) schemaList.getSelectedValue()))); xsd.scrollTo(0, 0); } }
public void afterSubmit(Submit submit, SubmitContext context) { if (submit.getResponse() == null) return; HttpResponse httpResponse = (HttpResponse) submit.getResponse(); String content = httpResponse.getContentAsXml(); if (content == null || content.equals("<xml/>")) return; XmlObject xml; try { URL url = httpResponse.getURL(); String defaultNamespace = url.getProtocol() + "://" + url.getHost(); XmlOptions options = new XmlOptions() .setLoadSubstituteNamespaces(Collections.singletonMap("", defaultNamespace)); xml = XmlObject.Factory.parse(content, options); } catch (XmlException e) { e.printStackTrace(); return; } if (!submit.getStatus().equals(Status.CANCELED) && !InferredSchemaManager.getInferredSchema(service).validate(xml)) { setTitle("Schema (conflicts)"); if (thread != null && thread.isAlive()) { handler.kill(); try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } handler = new Handler(tabs, xml); thread = new Thread(handler); thread.start(); } }
public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { if (!schemaList.isSelectionEmpty()) { String namespace = (String) schemaList.getSelectedValue(); if (namespace.equals(NO_NAMESPACE)) namespace = ""; xsd.setText( XmlUtils.prettyPrintXml( InferredSchemaManager.getInferredSchema(service).getXsdForNamespace(namespace))); xsd.scrollTo(0, 0); } } }
public SchemaTabs() { super(); conflicts = new JPanel(); conflicts.setLayout(new BorderLayout()); auto = new JCheckBox("Auto-Resolve"); auto.setToolTipText("Automatically modify inferred schema from received Responses"); auto.setOpaque(false); UISupport.setFixedSize(auto, 120, 20); XmlBeansSettingsImpl settings = getRequest().getSettings(); if (settings.isSet(AUTO_INFER_SCHEMAS)) { auto.setSelected(settings.getBoolean(AUTO_INFER_SCHEMAS)); } auto.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { getRequest().getSettings().setBoolean(AUTO_INFER_SCHEMAS, auto.isSelected()); } }); resolveButton = new JButton("Resolve conflicts"); resolveButton.setEnabled(false); resolveButton.setActionCommand("resolve"); resolveButton.addActionListener(this); JXToolBar toolbar = UISupport.createToolbar(); toolbar.addFixed(auto); toolbar.addFixed(resolveButton); log = new JLogList("Schema log"); conflicts.add(toolbar, BorderLayout.NORTH); conflicts.add(log, BorderLayout.CENTER); addTab("Conflicts", conflicts); schemaList = new JList(InferredSchemaManager.getInferredSchema(service).getNamespaces()); schemaList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); schemaList.addListSelectionListener(this); toolbar = UISupport.createToolbar(); toolbar.addFixed(UISupport.createToolbarButton(new RemoveNamespaceAction())); JPanel listPanel = new JPanel(); listPanel.setLayout(new BorderLayout()); listPanel.add(toolbar, BorderLayout.NORTH); listPanel.add(new JScrollPane(schemaList), BorderLayout.CENTER); xsd = JXEditTextArea.createXmlEditor(false); xsd.setEditable(false); update(); addTab( "Schemas", new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listPanel, new JScrollPane(xsd))); }
public synchronized void run() { try { if (panel.awaitButton(this)) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } else yesToAll = true; if (kill) return; InferredSchemaManager.getInferredSchema(service).learningValidate(xml, this); panel.update(); setTitle("Schema"); InferredSchemaManager.save(service); } catch (XmlException e) { setTitle("Schema (invalid)"); } }