⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlreaderbase.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                type = record.getType(index);
            }
            catch(Exception ex)
            {
                index = -1;
            }
        if(type == 133 && (record instanceof com.sap.mw.jco.JCO.Table))
        {
            com.sap.mw.jco.JCO.Table t = (com.sap.mw.jco.JCO.Table)record;
            t.appendRow();
            if(t.getNumFields() == 1 && t.getName(0).length() == 0 && !t.isTable(0) && !t.isStructure(0) && m_buffer[m_offset] != '<')
                nextValue(record, 0, true);
            else
                nextStatement(record, true);
        } else
        if(index >= 0)
        {
            if(type == 17 || type == 99)
            {
                record = (com.sap.mw.jco.JCO.Record)record.getValue(index);
                nextStatement(record, false);
            } else
            {
                nextValue(record, index, true);
            }
        } else
        {
            nextValue(record, index, false);
        }
        nextTag(false);
    }

    private void unescapeValue()
    {
        int i = m_offset;
        int start = m_offset;
        int value = 0;
        char c = m_buffer[i++];
        if(c != '&' || i >= m_length)
            return;
        c = m_buffer[i++];
        if(c != '#' || i >= m_length)
            return;
        for(c = m_buffer[i++]; i < m_length && c >= '0' && c <= '9'; c = m_buffer[i++])
            value = value * 10 + (c - 48);

        if(c != ';')
        {
            return;
        } else
        {
            m_offset = i;
            m_buffer[start++] = (char)value;
            System.arraycopy(m_buffer, m_offset, m_buffer, start, m_length - m_offset);
            m_length -= m_offset - start;
            m_offset = start - 1;
            return;
        }
    }

    private void nextValue(com.sap.mw.jco.JCO.Record record, int index, boolean store)
    {
        char c1 = m_offset >= m_length ? '\0' : m_buffer[m_offset];
        char c2 = m_offset + 1 >= m_length ? '\0' : m_buffer[m_offset + 1];
        if(c1 == '<' && c2 == '/')
            return;
        int value_start = m_offset;
        int value_end = m_offset;
        while(m_offset < m_length && (c1 = m_buffer[m_offset++]) != '<') 
        {
            if(c1 == '&' && m_offset < m_length)
                if(m_buffer[m_offset] == '#')
                {
                    int start = m_offset;
                    int value = 0;
                    for(m_offset++; m_offset < m_length && (c2 = m_buffer[m_offset++]) >= '0' && c2 <= '9';)
                        value = value * 10 + (c2 - 48);

                    if(c2 != ';')
                        m_offset = start;
                    else
                        c1 = (char)value;
                } else
                if(m_buffer[m_offset] < '\177')
                {
                    int idx = m_offset;
                    int i;
                    for(i = lookupFirstChar[m_buffer[idx]]; idx < m_length && m_buffer[idx] != ';' && m_buffer[idx] != '<' && i != 0;)
                        if(entitySearchChars[i] != m_buffer[idx])
                        {
                            i = entitySearchIdxs[i];
                        } else
                        {
                            idx++;
                            i++;
                        }

                    char value;
                    if(idx <= m_length && m_buffer[idx] == ';' && (value = entityValues[i]) != 0)
                    {
                        c1 = value;
                        idx++;
                        m_offset = idx;
                    }
                }
            m_buffer[value_end++] = c1;
        }
        m_offset--;
        if(store)
            store(record, m_buffer, value_start, value_end - value_start, index);
    }

    protected abstract void store(com.sap.mw.jco.JCO.Record record, char ac[], int i, int j, int k);

    private boolean equals(char array1[], int start, int length, String string)
    {
        int slength = string.length();
        if(slength != length)
            return false;
        for(int i = 0; i < length; i++)
            if(array1[start + i] != string.charAt(i))
                return false;

        return true;
    }

    private String escape(String tag)
    {
        int ioffset = 0;
        int length = tag.length();
        if(length * 5 > tagBuffer.length)
            tagBuffer = new char[length * 5];
        for(int i = 0; i < length; i++)
        {
            char c = tag.charAt(i);
            if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c == '_' || i > 0 && (c >= '0' && c <= '9' || c == '.'))
                tagBuffer[ioffset++] = c;
            else
            if(c == '/')
            {
                tagBuffer[ioffset++] = '_';
                tagBuffer[ioffset++] = '-';
            } else
            {
                tagBuffer[ioffset++] = '_';
                tagBuffer[ioffset++] = '-';
                tagBuffer[ioffset++] = '-';
                tagBuffer[ioffset++] = hex[c >> 4 & 0xf];
                tagBuffer[ioffset++] = hex[c >> 0 & 0xf];
            }
        }

        return new String(tagBuffer, 0, ioffset);
    }

    public static final String NAMESPACE_URN_SAP_RFC = "urn:sap-com:document:sap:rfc:functions";
    protected static final int NAMESPACE_URN_SAP_RFC_MODE = 0;
    public static final String NAMESPACE_URN_SOAP_UC = "urn:sap-com:document:sap:soap:functions:uc-style";
    protected static final int NAMESPACE_URN_SOAP_UC_MODE = 1;
    private static final int TAG_START = 0;
    private static final int TAG_END = 1;
    private static final String ITEM_UPPER = "ITEM";
    private static final String ITEM_LOWER = "item";
    private static final char hex[] = {
        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
        'A', 'B', 'C', 'D', 'E', 'F'
    };
    private char tagBuffer[];
    protected XMLReaderBase m_parent;
    protected com.sap.mw.jco.JCO.Record m_record;
    protected char m_buffer[];
    protected int m_offset;
    protected int m_length;
    protected int m_tag_start;
    protected int m_tag_end;
    protected int m_tag_typ;
    private int m_namespace_mode;
    private static final int MAX_CHUNK_SIZE = 10240;
    private static final int TYPE_ITEM = 133;
    private static char entitySearchChars[] = {
        '\0', 'a', 'p', 'o', 's', '\0', 'c', 'u', 't', 'e', 
        '\0', 'i', 'r', 'c', '\0', 'g', 'r', 'a', 'v', 'e', 
        '\0', 'a', 'c', 'u', 't', 'e', '\0', 't', 'i', 'l', 
        'd', 'e', '\0', 'u', 'm', 'l', '\0', 'r', 'i', 'n', 
        'g', '\0', 'e', 'l', 'i', 'g', '\0', 'l', 'p', 'h', 
        'a', '\0', 'e', 'f', 's', 'y', 'm', '\0', 'n', 'g', 
        '\0', 'd', '\0', 's', 'y', 'm', 'p', '\0', 'm', 'p', 
        '\0', 'n', 'b', 's', 'p', '\0', 'o', 't', 'i', 'n', 
        '\0', 't', 'i', 'l', 'd', 'e', '\0', 'u', '\0', 'a', 
        'b', 'l', 'a', '\0', 'i', '\0', 'e', '\0', 's', 'u', 
        'b', '\0', 'd', 'a', 's', 'h', '\0', 'i', 'e', 'x', 
        'c', 'l', '\0', 'q', 'u', 'e', 's', 't', '\0', 'g', 
        'r', 'a', 'v', 'e', '\0', 'a', 'c', 'u', 't', 'e', 
        '\0', 'c', 'i', 'r', 'c', '\0', 'u', 'm', 'l', '\0', 
        'o', 't', 'a', '\0', 'm', 'a', 'g', 'e', '\0', 's', 
        'i', 'n', '\0', 'n', 'f', 'i', 'n', '\0', 't', '\0', 
        'c', 'e', 'n', 't', '\0', 'd', 'i', 'l', '\0', 'u', 
        'r', 'r', 'e', 'n', '\0', 'p', '\0', 'o', 'p', 'y', 
        '\0', 'n', 'g', '\0', 'c', 'e', 'd', 'i', 'l', '\0', 
        'h', 'i', '\0', 'r', 'a', 'r', 'r', '\0', 'a', 'p', 
        '\0', 'l', 'u', 'b', 's', '\0', 'i', 'r', 'c', '\0', 
        'p', 'o', 'u', 'n', 'd', '\0', 'l', 'u', 's', 'm', 
        'n', '\0', 'a', 'r', 'a', '\0', 't', '\0', 'i', 'v', 
        '\0', 'h', 'i', '\0', 's', 'i', '\0', 'r', 'i', 'm', 
        'e', '\0', 'o', 'd', '\0', 'p', '\0', 'e', 'r', 'p', 
        '\0', 'm', 'i', 'l', '\0', 'y', 'e', 'n', '\0', 'a', 
        'c', 'u', 't', 'e', '\0', 'u', 'm', 'l', '\0', 'b', 
        'r', 'v', 'b', 'a', 'r', '\0', 'e', 't', 'a', '\0', 
        'u', 'l', 'l', '\0', 'd', 'q', 'u', 'o', '\0', 's', 
        'e', 'c', 't', '\0', 'h', 'y', '\0', 'u', 'p', '2', 
        '\0', '3', '\0', '1', '\0', 'e', '\0', 'm', '\0', 'b', 
        'e', '\0', 'z', 'l', 'i', 'g', '\0', 'i', 'g', 'm', 
        'a', 'f', '\0', 'm', '\0', 'd', 'o', 't', '\0', 'p', 
        'a', 'd', 'e', 's', '\0', 'c', 'a', 'r', 'o', 'n', 
        '\0', 'b', 'q', 'u', 'o', '\0', 'u', 'm', 'l', '\0', 
        'g', 'r', 'a', 'v', 'e', '\0', 'a', 'c', 'u', 't', 
        'e', '\0', 'r', 'r', '\0', 'c', 'i', 'r', 'c', '\0', 
        'u', 'm', 'l', '\0', 'p', 's', 'i', 'l', 'o', 'n', 
        '\0', 'h', '\0', 'A', 'r', 'r', '\0', 'o', 'r', 'd', 
        'f', '\0', 'm', '\0', 'g', 'r', 'a', 'v', 'e', '\0', 
        'a', 'c', 'u', 't', 'e', '\0', 'c', 'i', 'r', 'c', 
        '\0', 't', 'i', 'l', 'd', 'e', '\0', 'm', 'e', 's', 
        '\0', 'u', 'm', 'l', '\0', 's', 'l', 'a', 's', 'h', 
        '\0', 'm', 'i', 'c', 'r', 'o', 'n', '\0', 'e', 'g', 
        'a', '\0', 'l', 'i', 'n', 'e', '\0', 'p', 'l', 'u', 
        's', '\0', 'e', 'l', 'i', 'g', '\0', 'l', 'a', 'q', 
        'u', 'o', '\0', 'm', 'b', 'd', 'a', '\0', 'r', 'r', 
        '\0', 'n', 'g', '\0', 'A', 'r', 'r', '\0', 'o', 'w', 
        'a', 's', 't', '\0', 'z', '\0', 'e', '\0', 'c', 'e', 
        'i', 'l', '\0', 'f', 'l', 'o', 'o', 'r', '\0', 't', 
        '\0', 'r', 'm', '\0', 's', 'q', 'u', 'o', '\0', 'a', 
        'q', 'u', 'o', '\0', 'd', 'q', 'u', 'o', '\0', 'r', 
        'e', 'g', '\0', 'a', 'l', '\0', 'a', 'q', 'u', 'o', 
        '\0', 'r', 'r', '\0', 'd', 'i', 'c', '\0', 'n', 'g', 
        '\0', 'h', 'o', '\0', 'A', 'r', 'r', '\0', 'c', 'e', 
        'i', 'l', '\0', 'f', 'l', 'o', 'o', 'r', '\0', 'l', 
        'm', '\0', 's', 'q', 'u', 'o', '\0', 'a', 'q', 'u', 
        'o', '\0', 'd', 'q', 'u', 'o', '\0', 'm', 'a', 'c', 
        'r', '\0', 'i', 'c', 'r', 'o', '\0', 'd', 'd', 'o', 
        't', '\0', 'n', 'u', 's', '\0', 'u', '\0', 'd', 'a', 
        's', 'h', '\0', 'd', 'e', 'g', '\0', 'l', 't', 'a', 
        '\0', 'i', 'v', 'i', 'd', 'e', '\0', 'a', 'm', 's', 
        '\0', 'a', 'r', 'r', '\0', 'g', 'g', 'e', 'r', '\0', 
        'A', 'r', 'r', '\0', 'f', 'r', 'a', 'c', '1', '4', 
        '\0', '2', '\0', '3', '4', '\0', 's', 'l', '\0', 'n', 
        'o', 'f', '\0', 'o', 'r', 'a', 'l', 'l', '\0', 'A', 
        'g', 'r', 'a', 'v', 'e', '\0', 'a', 'c', 'u', 't', 
        'e', '\0', 'c', 'i', 'r', 'c', '\0', 't', 'i', 'l', 
        'd', 'e', '\0', 'u', 'm', 'l', '\0', 'r', 'i', 'n', 
        'g', '\0', 'E', 'l', 'i', 'g', '\0', 'l', 'p', 'h', 
        'a', '\0', 'C', 'c', 'e', 'd', 'i', 'l', '\0', 'h', 
        'i', '\0', 'E', 'g', 'r', 'a', 'v', 'e', '\0', 'a', 
        'c', 'u', 't', 'e', '\0', 'c', 'i', 'r', 'c', '\0', 
        'u', 'm', 'l', '\0', 'T', 'H', '\0', 'p', 's', 'i', 
        'l', 'o', 'n', '\0', 't', 'a', '\0', 'I', 'g', 'r', 
        'a', 'v', 'e', '\0', 'a', 'c', 'u', 't', 'e', '\0', 
        'c', 'i', 'r', 'c', '\0', 'u', 'm', 'l', '\0', 'o', 
        't', 'a', '\0', 'N', 't', 'i', 'l', 'd', 'e', '\0', 
        'u', '\0', 'O', 'g', 'r', 'a', 'v', 'e', '\0', 'a', 
        'c', 'u', 't', 'e', '\0', 'c', 'i', 'r', 'c', '\0', 
        't', 'i', 'l', 'd', 'e', '\0', 'u', 'm', 'l', '\0', 
        's', 'l', 'a', 's', 'h', '\0', 'm', 'i', 'c', 'r', 
        'o', 'n', '\0', 'e', 'g', 'a', '\0', 'E', 'l', 'i', 
        'g', '\0', 't', 'i', 'm', 'e', 's', '\0', 'l', 'd', 
        'e', '\0', 'h', 'o', 'r', 'n', '\0', 'e', 't', 'a', 
        's', 'y', 'm', '\0', 'r', 'e', '4', '\0', 'i', 'n', 
        's', 'p', '\0', 'a', 'u', '\0', 'r', 'a', 'd', 'e', 
        '\0', 'U', 'g', 'r', 'a', 'v', 'e', '\0', 'a', 'c', 
        'u', 't', 'e', '\0', 'c', 'i', 'r', 'c', '\0', 'u', 
        'm', 'l', '\0', 'p', 's', 'i', 'l', 'o', 'n', '\0', 
        'Y', 'a', 'c', 'u', 't', 'e', '\0', 'u', 'm', 'l', 
        '\0', 'T', 'H', 'O', 'R', 'N', '\0', 'h', 'e', 't', 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -