Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查XML是否包含额外的标记?_Java_Xml_Api_Post_Jaxb - Fatal编程技术网

Java 如何检查XML是否包含额外的标记?

Java 如何检查XML是否包含额外的标记?,java,xml,api,post,jaxb,Java,Xml,Api,Post,Jaxb,您好,我有一个API,我已经建立了一个POST方法来发送和xml,如果一切正常,它会将数据保存在数据库中。我有一个xsd模式和一个jaxb类。有人能给我一个一步一步的例子,如何检查xml是否有我不想要的额外标记 下面是代码(这是jaxb类): 包mfp.anaf.dgti.spv.reqformularcontact.v1; 导入java.math.biginger; 导入javax.xml.bind.annotation.XmlAccessType; 导入javax.xml.bind.anno

您好,我有一个API,我已经建立了一个POST方法来发送和xml,如果一切正常,它会将数据保存在数据库中。我有一个xsd模式和一个jaxb类。有人能给我一个一步一步的例子,如何检查xml是否有我不想要的额外标记

下面是代码(这是jaxb类):

包mfp.anaf.dgti.spv.reqformularcontact.v1;
导入java.math.biginger;
导入javax.xml.bind.annotation.XmlAccessType;
导入javax.xml.bind.annotation.XmlAccessorType;
导入javax.xml.bind.annotation.xmlement;
导入javax.xml.bind.annotation.XmlRootElement;
导入javax.xml.bind.annotation.XmlType;
/**
*匿名复杂类型的Java类。
* 
*以下架构片段指定此类中包含的预期内容。
* 
* 
*complexType>
*complexContent>
*限制基数=”{http://www.w3.org/2001/XMLSchema}任何类型“>
*序列>
*元素名称=“cui”类型=”{http://www.w3.org/2001/XMLSchema}整数“/>
*元素名称=“mesaj”类型=”{http://www.w3.org/2001/XMLSchema}字符串“/>
*/顺序>
*/限制>
*/complexContent>
*/complexType>
* 
* 
* 
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name=),比例={
"崔",,
“mesaj”,
“cateSoli”,
“副特苏利”,
“b64”
})
@XmlRootElement(name=“resp”)
公共类Resp{
@XmlElement(必需=true)
受保护的大整数;
@XmlElement(必需=true)
受保护字符串mesaj;
@XmlElement(必需=true)
保护串串;
@XmlElement(必需=true)
受保护的字符串子串;
@XmlElement(必需=true)
受保护字符串b64;
/**
*获取cui属性的值。
* 
*@返回
*可能的对象是
*{@link biginger}
*     
*/
公共BigInteger getCui(){
返回崔;
}
/**
*设置cui特性的值。
* 
*@param值
*允许的对象是
*{@link biginger}
*     
*/
公共void setCui(BigInteger值){
this.cui=值;
}
/**
*获取mesaj属性的值。
* 
*@返回
*可能的对象是
*{@link String}
*     
*/
公共字符串getMesaj(){
返回mesaj;
}
/**
*设置mesaj特性的值。
* 
*@param值
*允许的对象是
*{@link String}
*     
*/
公共void setMesaj(字符串值){
这.mesaj=值;
}
公共字符串getCateSoli(){
返回cateSoli;
}
公共void setCateSoli(字符串cateSoli){
this.cateSoli=cateSoli;
}
公共字符串getSubCateSoli(){
返回次特苏利;
}
公共void setSubCateSoli(字符串subCateSoli){
this.subCateSoli=subCateSoli;
}
公共字符串getB64(){
返回b64;
}
public void setB64(字符串b64){
这是b64=b64;
}
}
这是xsd:

@javax.ws.rs.Path("/formularContact")
public class SPVFormularContact extends SPVMaster {

Connection con2 = null;

String nume = "NUME";
String cnpcui = "CNPCUI";
String localitatea = "LOCALITATEA";
String strada = "STRADA";
String numar = "NUMAR";
String bloc = "BLOC";
String scara = "SCARA";
String apartament = "APARTAMENT";
String judet = "JUDET";
String email = "EMAIL";
String textIntrebare = "TEXTINTREBARE";
String categContrib = "CATEGCONTRIB";
String secventa = "SECVENTA";
String dataEmail = "DATA_EMAIL";
String categSolicit = "CATEGSOLICIT";
String numeFisier = "NUMEFISIER";
String arondare = "ARONDARE";
String domFiscal = "DOMFISCAL";
String subCategSolicit = "SUBCATEGSOLICIT";
String tipIntrare = "TIPINTRARE";
String stare = "STARE";
String host = "HOST";

String sql = "INSERT INTO ASIST_EMAIL_V ("+nume+", "+cnpcui+", "+localitatea+", "+strada+",    "+numar+", "+bloc+", "+scara+", "+apartament+", "+judet+", "+email+", "+textIntrebare+", "+categContrib+", "+secventa+", "+dataEmail+", "+categSolicit+", "+numeFisier+", "+arondare+", "+domFiscal+", "+subCategSolicit+", "+tipIntrare+", "+stare+", "+host+") VALUES  (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
 long secventaOriginala;
 String domF;
 String codA;

 //String cateSoli = "1";
 //String subCateSoli = "1";
 //String categSoli = "1";
 boolean counterCateg = false;
 String cui = "";
 String cuiNou = "";
 boolean b64bol = false;
 String b = "";
 boolean mesajBol = false;
 String mesaj = "";
 boolean categSubCategBol = false;



 @POST
 @Produces(MediaType.APPLICATION_XML)
 public Response response(mfp.anaf.dgti.spv.reqformularcontact.v1.Resp x) {
    mfp.anaf.dgti.spv.reqformularcontact.v1.Resp rsp = new  mfp.anaf.dgti.spv.reqformularcontact.v1.Resp();


    try {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("jdbc/portal");
        con2 = ds.getConnection();



        Statement st = con2.createStatement();
        ResultSet rs = st.executeQuery("select emailasist_seq.nextval||to_char(sysdate, 'YYYY') from dual");
        while(rs.next()) {
            secventaOriginala = rs.getLong(1);
        }

        Statement st2 = con2.createStatement();
        ResultSet rs2 = st2.executeQuery("select codfisc.cod_domfiscal(1880622420093) from dual");
        while(rs2.next()) {
            domF = rs2.getString(1);
        }

        Statement st3 = con2.createStatement();
        ResultSet rs3 = st3.executeQuery("select codfisc.cod_arondare_adm(1880622420093) from dual");
        while(rs3.next()) {
            codA = rs3.getString(1);
        }
        /*
        Statement st4 = con2.createStatement();
        ResultSet rs4 = st4.executeQuery("select categsolicit from nom_categorii where codcateg=1");
        while(rs4.next()) {
            categS = rs4.getString(1);
        }
        */

        spv.ws.caf.ApeluriBaza ap = new spv.ws.caf.ApeluriBaza();

        String serial = "2005062450015C39C6849EAD49A019A5";
        String numeCertif = ap.getNumeCertificat(con2, serial);
        String arr[] = numeCertif.split("###");

        String arondareNou = ap.getArondare(con2, x.getCui().longValue());
        String domFiscalNou = ap.getDomFiscal(con2, x.getCui().longValue());

        String xcui = x.getCui()+"";
        int lungimeCui = xcui.length();
        String categContrib = "";

        if(lungimeCui < 10) {
            categContrib = "Persoană fizică";
        } else {
            categContrib = "Persoană juridică";
        }
        /*
        String adrBz = "C:\\Users\\26225654\\Desktop\\eth.txt";
        String fisier2 = "C:\\Users\\26225654\\Desktop\\nou2.txt";

        Base bz = new Base();
        System.out.println("Base64: " + bz.citeste(adrBz));
        */
        String fisier2 = "C:\\Users\\26225654\\Desktop\\nou3.txt";
        Base bz = new Base();

       JAXBContext jaxbContext = JAXBContext.newInstance(Resp.class);
       Unmarshaller jaxbu = jaxbContext.createUnmarshaller();

       System.out.println(jaxbu.getSchema());


        if(x.getB64().length() <= 10000000 ) {
        bz.write(fisier2, x.getB64());
        } else {
            b = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
                    "<resp>\r\n" + 
                    "<cui>"+x.getCui()+"</cui>\r\n" + 
                    "<titlu>Formular Cerere</titlu>\r\n" + 
                    "<mesaj>CUI Valid</mesaj>\r\n" + 
                    "<b64>Fisierul depaseste limita maxima de 10 MB</b64>\r\n" + 
                    "</resp>";
            b64bol = true;
        }

      if(x.getMesaj() == null) {
          mesajBol = true;
      }



      if(x.getCateSoli() == null || x.getSubCateSoli() == null) {
          categSubCategBol = true;
      }


        Date xx = new Date(System.currentTimeMillis()); 

       PreparedStatement ps = con2.prepareStatement(sql);

       ps.setString(1, numeCertif);
       rsp.setCui(x.getCui());
       ps.setInt(2, x.getCui().intValue());
       ps.setString(3, "bistrita");
       ps.setString(4, "xxxx");
       ps.setString(5, "xxx");
       ps.setString(6, "xxx");
       ps.setString(7, "xxx");
       ps.setString(8, "xxxx");
       ps.setString(9, "xxx");

       ps.setString(10, arr[1]);

       rsp.setMesaj(x.getMesaj());
       ps.setString(11, x.getMesaj());
       ps.setString(12, categContrib);
       ps.setLong(13, secventaOriginala);
       ps.setDate(14, xx);
       ps.setString(15, rsp.getCateSoli());
       ps.setString(16, "xxx.pdf");
       ps.setString(17, arondareNou);
       ps.setString(18, domFiscalNou);
       ps.setString(19, rsp.getSubCateSoli());
       ps.setInt(20, 2);
       ps.setInt(21, 99);
       ps.setString(22, "xxx");

       if((x.getCateSoli().equals("1") && x.getSubCateSoli().equals("1")) || (x.getCateSoli().equals("1") && x.getSubCateSoli().equals("2"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("3"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("4"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("5"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("6"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("7"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("8"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("9"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("10"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("11"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("12"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("13"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("14"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("15"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("10"))||(x.getCateSoli().equals("16") && x.getSubCateSoli().equals("17"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("18"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("19"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("20"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("21"))||(x.getCateSoli().equals("4") && x.getSubCateSoli().equals("23"))||(x.getCateSoli().equals("4") && x.getSubCateSoli().equals("22"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("30"))||(x.getCateSoli().equals("1") && x.getCateSoli().equals("31"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("32"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("33"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("34"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("40"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("41"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("42"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("43"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("44"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("45"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("50"))) {
        if(rsp.getCui().intValue()!=0) {
           counterCateg = true;
        }
    }


//           SPVMaster spvm = new SPVMaster();
//           SPVCerere spvc = new SPVCerere();
           String eroare1 = "Nu am identificat certificatul:" + serial;
           String f = "";
           cui = getCui(serial);
            if (cui == null || cui.length() == 0) {
            String eroare_log = "Nu aveti drept in SPV pentru niciun CUI sau CNP";
            f = writeJsonEroare(eroare1);
        } else {
            if (cui.startsWith("e")) {
                String eroare_log = cui;
                f = writeJsonEroare(eroare_log, "Cerere");

            }
        }
        cuiNou = Integer.toString(x.getCui().intValue());

        if(verificareCui(cui, cuiNou) == true) {


       if(counterCateg == true) {
       ps.executeUpdate();
       }

        }



    }catch(Exception e) {System.out.println(e);}
    finally {
        try {
            con2.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    //Master mas = new Master();



    /*
    String output;
    if(counterCateg==true ) {
     output = x.toString();
    } else {
        output = "CUI sau Categorie si subcategorie completate gresit";
    }
    return Response.status(200).entity(output).build();
    */
    //String negativ = writeJsonEroare("Nu aveti dreptul sa faceti validare pentru CUI-ul: "  +cuiNou, "Formular cerere");
    //String pozitiv = writeJsonEroare("CUI: " +cuiNou+" valid", "Formular cerere");




    String xmlStr = "";
    if(verificareCui(cui, cuiNou)==true && b64bol == false && mesajBol == false && categSubCategBol == false ) {
    xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
            "<resp>\r\n" + 
            "<cui>"+x.getCui()+"</cui>\r\n" + 
            "<titlu>Formular Cerere</titlu>\r\n" + 
            "<mesaj>CUI Valid</mesaj>\r\n" + 
            "</resp>";

    } else {
        xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
                "<resp>\r\n" + 
                "<cui>"+x.getCui()+"</cui>\r\n" + 
                "<titlu>Formular Cerere</titlu>\r\n" + 
                "<mesaj>CUI Invalid / Lipseste tagul mesaj / categ / subCateg / mesaj invalid</mesaj>\r\n" + 
                "<b64>Fisier Invalid (depaseste limita de 10 MB) sau lipseste tagul b64</b64>\r\n" + 
                "</resp>";
    }




        return Response.status(200).entity(xmlStr).build();

}

}

这是博士后课程:

@javax.ws.rs.Path(“/formularContact”)
公共类SPVFormularContact扩展了SPVMaster{
连接con2=null;
字符串nume=“nume”;
字符串cnpcui=“cnpcui”;
字符串localitatea=“localitatea”;
String strada=“strada”;
字符串numar=“numar”;
String bloc=“bloc”;
字符串scara=“scara”;
String Apartment=“公寓”;
字符串judet=“judet”;
String email=“email”;
字符串textIntrebare=“textIntrebare”;
字符串categContrib=“categContrib”;
字符串secventa=“secventa”;
字符串dataEmail=“数据\电子邮件”;
字符串categSolicit=“categSolicit”;
字符串numeFisier=“numeFisier”;
字符串arondare=“arondare”;
字符串domFinancial=“domFinancial”;
字符串subcategalloct=“subcategalloct”;
字符串tipIntrare=“tipIntrare”;
String stare=“stare”;
字符串host=“host”;
字符串sql=“插入ASIST_EMAIL_V(“+nume+”、“+CpCui+”、“+localitatea+”、“+strada+”、“+numar+”、“+bloc+”、“+scara+”、“+Apartment+”、“+judet+”、“+EMAIL+”、“+textIntrebare+”、“+categContrib+”、“+secventa+”、“+dataEmail+”、“+categSolicit+”、“+Numefiier+”、“、“+Arondarore+”、“、“+Taire+”、+Taire+”、“+Taire+”、+Tarre+”、“+)的值(?、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、);
原发性长裂孔;
字符串domF;
弦尾波;
//字符串cateSoli=“1”;
//字符串subCateSoli=“1”;
//字符串categSoli=“1”;
布尔计数器类别=假;
字符串cui=“”;
字符串cuiNou=“”;
布尔值b64bol=false;
字符串b=“”;
布尔mesajBol=false;
字符串mesaj=“”;
布尔categSubCategBol=false;
@职位
@生成(MediaType.APPLICATION\u XML)
公众响应(mfp.anaf.dgti.spv.reqformularcontact.v1.Resp x){
mfp.anaf.dgti.spv.reqformularcontact.v1.Resp rsp=新的mfp.anaf.dgti.spv.reqformularcontact.v1.Resp();
试一试{
Context ctx=新的InitialContext();
DataSource ds=(DataSource)ctx.lookup(“jdbc/portal”);
con2=ds.getConnection();
语句st=con2.createStatement();
结果集rs=st.executeQuery(“从dual中选择emailasist_seq.nextval|to_char(sysdate,'YYYY'));
while(rs.next()){
secventaOriginala=rs.getLong(1);
}
语句st2=con2.createStatement();
结果集rs2=st2.executeQuery(“从dual中选择codfisc.cod_domFinancial(1880622420093));
while(rs2.next()){
domF=rs2.getString(1);
}
语句st3=con2.createStatement();
结果集rs3=st3.executeQuery(“从dual中选择codfisc.cod_arondare_adm(1880622420093));
while(rs3.next()){
尾码=rs3.getString(1);
}
/*
语句st4=con2.createStatement();
结果集rs4=st4.executeQuery(“从名称分类中选择类别集合,其中codcateg=1”);
while(rs4.next()){
categS=rs4.getString(1);
}
*/
特殊目的公司
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"    xmlns="mfp:anaf:dgti:spv:reqStareMesaj:v1"
targetNamespace="mfp:anaf:dgti:spv:reqStareMesaj:v1" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.0" xml:lang="ro">
    <xs:element name="header">
        <xs:complexType>
            <xs:complexContent>
                <xs:restriction base="xs:anyType">
                    <xs:sequence>
                        <xs:element name="listaMesaje" type="listaMesajeType"/>
                    </xs:sequence>
                </xs:restriction>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="listaMesajeType">
        <xs:complexContent>
            <xs:restriction base="xs:anyType">          

                <xs:attribute name="index_incarcare" type="IntPoz15SType" use="required"/>          

            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>

     <xs:simpleType name="IntPoz15SType">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999999999999"/>
        </xs:restriction>
    </xs:simpleType>

 </xs:schema>
@javax.ws.rs.Path("/formularContact")
public class SPVFormularContact extends SPVMaster {

Connection con2 = null;

String nume = "NUME";
String cnpcui = "CNPCUI";
String localitatea = "LOCALITATEA";
String strada = "STRADA";
String numar = "NUMAR";
String bloc = "BLOC";
String scara = "SCARA";
String apartament = "APARTAMENT";
String judet = "JUDET";
String email = "EMAIL";
String textIntrebare = "TEXTINTREBARE";
String categContrib = "CATEGCONTRIB";
String secventa = "SECVENTA";
String dataEmail = "DATA_EMAIL";
String categSolicit = "CATEGSOLICIT";
String numeFisier = "NUMEFISIER";
String arondare = "ARONDARE";
String domFiscal = "DOMFISCAL";
String subCategSolicit = "SUBCATEGSOLICIT";
String tipIntrare = "TIPINTRARE";
String stare = "STARE";
String host = "HOST";

String sql = "INSERT INTO ASIST_EMAIL_V ("+nume+", "+cnpcui+", "+localitatea+", "+strada+",    "+numar+", "+bloc+", "+scara+", "+apartament+", "+judet+", "+email+", "+textIntrebare+", "+categContrib+", "+secventa+", "+dataEmail+", "+categSolicit+", "+numeFisier+", "+arondare+", "+domFiscal+", "+subCategSolicit+", "+tipIntrare+", "+stare+", "+host+") VALUES  (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
 long secventaOriginala;
 String domF;
 String codA;

 //String cateSoli = "1";
 //String subCateSoli = "1";
 //String categSoli = "1";
 boolean counterCateg = false;
 String cui = "";
 String cuiNou = "";
 boolean b64bol = false;
 String b = "";
 boolean mesajBol = false;
 String mesaj = "";
 boolean categSubCategBol = false;



 @POST
 @Produces(MediaType.APPLICATION_XML)
 public Response response(mfp.anaf.dgti.spv.reqformularcontact.v1.Resp x) {
    mfp.anaf.dgti.spv.reqformularcontact.v1.Resp rsp = new  mfp.anaf.dgti.spv.reqformularcontact.v1.Resp();


    try {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("jdbc/portal");
        con2 = ds.getConnection();



        Statement st = con2.createStatement();
        ResultSet rs = st.executeQuery("select emailasist_seq.nextval||to_char(sysdate, 'YYYY') from dual");
        while(rs.next()) {
            secventaOriginala = rs.getLong(1);
        }

        Statement st2 = con2.createStatement();
        ResultSet rs2 = st2.executeQuery("select codfisc.cod_domfiscal(1880622420093) from dual");
        while(rs2.next()) {
            domF = rs2.getString(1);
        }

        Statement st3 = con2.createStatement();
        ResultSet rs3 = st3.executeQuery("select codfisc.cod_arondare_adm(1880622420093) from dual");
        while(rs3.next()) {
            codA = rs3.getString(1);
        }
        /*
        Statement st4 = con2.createStatement();
        ResultSet rs4 = st4.executeQuery("select categsolicit from nom_categorii where codcateg=1");
        while(rs4.next()) {
            categS = rs4.getString(1);
        }
        */

        spv.ws.caf.ApeluriBaza ap = new spv.ws.caf.ApeluriBaza();

        String serial = "2005062450015C39C6849EAD49A019A5";
        String numeCertif = ap.getNumeCertificat(con2, serial);
        String arr[] = numeCertif.split("###");

        String arondareNou = ap.getArondare(con2, x.getCui().longValue());
        String domFiscalNou = ap.getDomFiscal(con2, x.getCui().longValue());

        String xcui = x.getCui()+"";
        int lungimeCui = xcui.length();
        String categContrib = "";

        if(lungimeCui < 10) {
            categContrib = "Persoană fizică";
        } else {
            categContrib = "Persoană juridică";
        }
        /*
        String adrBz = "C:\\Users\\26225654\\Desktop\\eth.txt";
        String fisier2 = "C:\\Users\\26225654\\Desktop\\nou2.txt";

        Base bz = new Base();
        System.out.println("Base64: " + bz.citeste(adrBz));
        */
        String fisier2 = "C:\\Users\\26225654\\Desktop\\nou3.txt";
        Base bz = new Base();

       JAXBContext jaxbContext = JAXBContext.newInstance(Resp.class);
       Unmarshaller jaxbu = jaxbContext.createUnmarshaller();

       System.out.println(jaxbu.getSchema());


        if(x.getB64().length() <= 10000000 ) {
        bz.write(fisier2, x.getB64());
        } else {
            b = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
                    "<resp>\r\n" + 
                    "<cui>"+x.getCui()+"</cui>\r\n" + 
                    "<titlu>Formular Cerere</titlu>\r\n" + 
                    "<mesaj>CUI Valid</mesaj>\r\n" + 
                    "<b64>Fisierul depaseste limita maxima de 10 MB</b64>\r\n" + 
                    "</resp>";
            b64bol = true;
        }

      if(x.getMesaj() == null) {
          mesajBol = true;
      }



      if(x.getCateSoli() == null || x.getSubCateSoli() == null) {
          categSubCategBol = true;
      }


        Date xx = new Date(System.currentTimeMillis()); 

       PreparedStatement ps = con2.prepareStatement(sql);

       ps.setString(1, numeCertif);
       rsp.setCui(x.getCui());
       ps.setInt(2, x.getCui().intValue());
       ps.setString(3, "bistrita");
       ps.setString(4, "xxxx");
       ps.setString(5, "xxx");
       ps.setString(6, "xxx");
       ps.setString(7, "xxx");
       ps.setString(8, "xxxx");
       ps.setString(9, "xxx");

       ps.setString(10, arr[1]);

       rsp.setMesaj(x.getMesaj());
       ps.setString(11, x.getMesaj());
       ps.setString(12, categContrib);
       ps.setLong(13, secventaOriginala);
       ps.setDate(14, xx);
       ps.setString(15, rsp.getCateSoli());
       ps.setString(16, "xxx.pdf");
       ps.setString(17, arondareNou);
       ps.setString(18, domFiscalNou);
       ps.setString(19, rsp.getSubCateSoli());
       ps.setInt(20, 2);
       ps.setInt(21, 99);
       ps.setString(22, "xxx");

       if((x.getCateSoli().equals("1") && x.getSubCateSoli().equals("1")) || (x.getCateSoli().equals("1") && x.getSubCateSoli().equals("2"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("3"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("4"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("5"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("6"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("7"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("8"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("9"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("10"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("11"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("12"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("13"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("14"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("15"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("10"))||(x.getCateSoli().equals("16") && x.getSubCateSoli().equals("17"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("18"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("19"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("20"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("21"))||(x.getCateSoli().equals("4") && x.getSubCateSoli().equals("23"))||(x.getCateSoli().equals("4") && x.getSubCateSoli().equals("22"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("30"))||(x.getCateSoli().equals("1") && x.getCateSoli().equals("31"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("32"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("33"))||(x.getCateSoli().equals("1") && x.getSubCateSoli().equals("34"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("40"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("41"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("42"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("43"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("44"))||(x.getCateSoli().equals("2") && x.getSubCateSoli().equals("45"))||(x.getCateSoli().equals("3") && x.getSubCateSoli().equals("50"))) {
        if(rsp.getCui().intValue()!=0) {
           counterCateg = true;
        }
    }


//           SPVMaster spvm = new SPVMaster();
//           SPVCerere spvc = new SPVCerere();
           String eroare1 = "Nu am identificat certificatul:" + serial;
           String f = "";
           cui = getCui(serial);
            if (cui == null || cui.length() == 0) {
            String eroare_log = "Nu aveti drept in SPV pentru niciun CUI sau CNP";
            f = writeJsonEroare(eroare1);
        } else {
            if (cui.startsWith("e")) {
                String eroare_log = cui;
                f = writeJsonEroare(eroare_log, "Cerere");

            }
        }
        cuiNou = Integer.toString(x.getCui().intValue());

        if(verificareCui(cui, cuiNou) == true) {


       if(counterCateg == true) {
       ps.executeUpdate();
       }

        }



    }catch(Exception e) {System.out.println(e);}
    finally {
        try {
            con2.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    //Master mas = new Master();



    /*
    String output;
    if(counterCateg==true ) {
     output = x.toString();
    } else {
        output = "CUI sau Categorie si subcategorie completate gresit";
    }
    return Response.status(200).entity(output).build();
    */
    //String negativ = writeJsonEroare("Nu aveti dreptul sa faceti validare pentru CUI-ul: "  +cuiNou, "Formular cerere");
    //String pozitiv = writeJsonEroare("CUI: " +cuiNou+" valid", "Formular cerere");




    String xmlStr = "";
    if(verificareCui(cui, cuiNou)==true && b64bol == false && mesajBol == false && categSubCategBol == false ) {
    xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
            "<resp>\r\n" + 
            "<cui>"+x.getCui()+"</cui>\r\n" + 
            "<titlu>Formular Cerere</titlu>\r\n" + 
            "<mesaj>CUI Valid</mesaj>\r\n" + 
            "</resp>";

    } else {
        xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + 
                "<resp>\r\n" + 
                "<cui>"+x.getCui()+"</cui>\r\n" + 
                "<titlu>Formular Cerere</titlu>\r\n" + 
                "<mesaj>CUI Invalid / Lipseste tagul mesaj / categ / subCateg / mesaj invalid</mesaj>\r\n" + 
                "<b64>Fisier Invalid (depaseste limita de 10 MB) sau lipseste tagul b64</b64>\r\n" + 
                "</resp>";
    }




        return Response.status(200).entity(xmlStr).build();

}

}