// Signature format: 2.0
package simple.complex.content {

  @Deprecated public class Address {
    ctor @Deprecated public Address();
    method @Deprecated public String getCity();
    method @Deprecated public final String getName();
    method @Deprecated public String getStreet();
    method @Deprecated public boolean hasCity();
    method @Deprecated public boolean hasName();
    method @Deprecated public boolean hasStreet();
    method @Deprecated public void setCity(String);
    method @Deprecated public final void setName(String);
    method @Deprecated public void setStreet(String);
  }

  public class KRAddress extends simple.complex.content.Address {
    ctor public KRAddress();
  }

  public class Person {
    ctor public Person();
    method public simple.complex.content.KRAddress getKRAddress();
    method public String getName();
    method public simple.complex.content.SubAddress getSubAddress();
    method public simple.complex.content.USAddressP getUSAddressP();
    method public simple.complex.content.KRAddress getValue();
    method public boolean hasKRAddress();
    method public boolean hasName();
    method public boolean hasSubAddress();
    method public boolean hasUSAddressP();
    method public boolean hasValue();
    method public void setKRAddress(simple.complex.content.KRAddress);
    method public void setName(String);
    method public void setSubAddress(simple.complex.content.SubAddress);
    method public void setUSAddressP(simple.complex.content.USAddressP);
    method public void setValue(simple.complex.content.KRAddress);
  }

  public class Person2 {
    ctor public Person2();
    method public simple.complex.content.KRAddress getKRAddress();
    method public String getName();
    method @NonNull public simple.complex.content.SubAddress getSubAddress();
    method public simple.complex.content.USAddressP getUSAddressP();
    method public String getValue();
    method public boolean hasKRAddress();
    method public boolean hasName();
    method public boolean hasSubAddress();
    method public boolean hasUSAddressP();
    method public boolean hasValue();
    method public void setKRAddress(simple.complex.content.KRAddress);
    method public void setName(String);
    method public void setSubAddress(@NonNull simple.complex.content.SubAddress);
    method public void setUSAddressP(simple.complex.content.USAddressP);
    method public void setValue(String);
  }

  public class SubAddress {
    ctor public SubAddress();
    method @Nullable public final String getChoice1_optional();
    method @NonNull public final String getChoice2_optional();
    method public boolean hasChoice1_optional();
    method public boolean hasChoice2_optional();
    method public final void setChoice1_optional(@Nullable String);
    method public final void setChoice2_optional(@NonNull String);
  }

  public final class USAddressP extends simple.complex.content.Address {
    ctor public USAddressP();
    method public String getState();
    method public java.math.BigInteger getZipcode();
    method public boolean hasState();
    method public boolean hasZipcode();
    method public void setState(String);
    method public void setZipcode(java.math.BigInteger);
  }

  public class XmlParser {
    ctor public XmlParser();
    method public static simple.complex.content.Person readPerson(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    method public static simple.complex.content.Person2 readPerson2(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
    method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
  }

  public class XmlWriter implements java.io.Closeable {
    ctor public XmlWriter(java.io.PrintWriter);
    method public void close();
    method public static void write(simple.complex.content.XmlWriter, simple.complex.content.Person) throws java.io.IOException;
    method public static void write(simple.complex.content.XmlWriter, simple.complex.content.Person2) throws java.io.IOException;
  }

}

