/* */ private void writeTo(Result result, Map<XmlSchemaGenerator<T, C, F, M>.Namespace, String> systemIds)
/* */ throws IOException
/* */ {
/* */ try
/* */ {
/* 572 */ Schema schema = (Schema)TXW.create(Schema.class, ResultFactory.createSerializer(result));
/* */
/* 575 */ Map xmlNs = XmlSchemaGenerator.this.types.getXmlNs(this.uri);
/* */
/* 577 */ for (Map.Entry e : xmlNs.entrySet()) {
/* 578 */ schema._namespace((String)e.getValue(), (String)e.getKey());
/* */ }
/* */
/* 581 */ if (this.useSwaRef) {
/* 582 */ schema._namespace("http://ws-i.org/profiles/basic/1.1/xsd", "swaRef");
/* */ }
/* 584 */ this.attributeFormDefault = Form.get(XmlSchemaGenerator.this.types.getAttributeFormDefault(this.uri));
/* 585 */ this.attributeFormDefault.declare("attributeFormDefault", schema);
/* */
/* 587 */ this.elementFormDefault = Form.get(XmlSchemaGenerator.this.types.getElementFormDefault(this.uri));
/* */
/* 589 */ this.elementFormDefault.declare("elementFormDefault", schema);
/* */
/* 594 */ if ((!xmlNs.containsValue("http://www.w3.org/2001/XMLSchema")) && (!xmlNs.containsKey("xs")))
/* */ {
/* 596 */ schema._namespace("http://www.w3.org/2001/XMLSchema", "xs");
/* 597 */ }schema.version("1.0");
/* */
/* 599 */ if (this.uri.length() != 0) {
/* 600 */ schema.targetNamespace(this.uri);
/* */ }
/* */
/* 604 */ for (Namespace ns : this.depends) {
/* 605 */ schema._namespace(ns.uri);
/* */ }
/* */
/* 608 */ if ((this.selfReference) && (this.uri.length() != 0))
/* */ {
/* 611 */ schema._namespace(this.uri, "tns");
/* */ }
/* */
/* 614 */ schema._pcdata("\n");
/* */
/* 617 */ for (Namespace n : this.depends) {
/* 618 */ Import imp = schema._import();
/* 619 */ if (n.uri.length() != 0)
/* 620 */ imp.namespace(n.uri);
/* 621 */ String refSystemId = (String)systemIds.get(n);
/* 622 */ if ((refSystemId != null) && (!refSystemId.equals("")))
/* */ {
/* 624 */ imp.schemaLocation(XmlSchemaGenerator.relativize(refSystemId, result.getSystemId()));
/* */ }
/* 626 */ schema._pcdata("\n");
/* */ }
/* 628 */ if (this.useSwaRef) {
/* 629 */ schema._import().namespace("http://ws-i.org/profiles/basic/1.1/xsd").schemaLocation("http://ws-i.org/profiles/basic/1.1/swaref.xsd");
/* */ }
/* */
/* 633 */ for (Map.Entry e : this.elementDecls.entrySet()) {
/* 634 */ ((ElementDeclaration)e.getValue()).writeTo((String)e.getKey(), schema);
/* 635 */ schema._pcdata("\n");
/* */ }
/* 637 */ for (ClassInfo c : this.classes) {
/* 638 */ if (c.getTypeName() == null)
/* */ {
/* */ continue;
/* */ }
/* 642 */ if (this.uri.equals(c.getTypeName().getNamespaceURI()))
/* 643 */ writeClass(c, schema);
/* 644 */ schema._pcdata("\n");
/* */ }
/* 646 */ for (EnumLeafInfo e : this.enums) {
/* 647 */ if (e.getTypeName() == null)
/* */ {
/* */ continue;
/* */ }
/* 651 */ if (this.uri.equals(e.getTypeName().getNamespaceURI()))
/* 652 */ writeEnum(e, schema);
/* 653 */ schema._pcdata("\n");
/* */ }
/* 655 */ for (ArrayInfo a : this.arrays) {
/* 656 */ writeArray(a, schema);
/* 657 */ schema._pcdata("\n");
/* */ }
/* 659 */ for (Map.Entry e : this.attributeDecls.entrySet()) {
/* 660 */ TopLevelAttribute a = schema.attribute();
/* 661 */ a.name((String)e.getKey());
/* 662 */ if (e.getValue() == null)
/* 663 */ writeTypeRef(a, XmlSchemaGenerator.this.stringType, "type");
/* */ else
/* 665 */ writeAttributeTypeRef((AttributePropertyInfo)e.getValue(), a);
/* 666 */ schema._pcdata("\n");
/* */ }
/* */
/* 670 */ schema.commit();
/* */ } catch (TxwException e) {
/* 672 */ XmlSchemaGenerator.logger.log(Level.INFO, e.getMessage(), e);
/* 673 */ throw new IOException(e.getMessage());
/* */ }
/* */ }