当前位置: 首页>>代码示例>>Java>>正文


Java XMLInputSource.getSystemId方法代码示例

本文整理汇总了Java中org.apache.xerces.xni.parser.XMLInputSource.getSystemId方法的典型用法代码示例。如果您正苦于以下问题:Java XMLInputSource.getSystemId方法的具体用法?Java XMLInputSource.getSystemId怎么用?Java XMLInputSource.getSystemId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.xerces.xni.parser.XMLInputSource的用法示例。


在下文中一共展示了XMLInputSource.getSystemId方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: openInputSourceStream

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/**
 * This method tries to open the necessary stream for the given
 * XMLInputSource. If the input source already has a character
 * stream (java.io.Reader) or a byte stream (java.io.InputStream)
 * set, this method returns immediately. However, if no character
 * or byte stream is already open, this method attempts to open
 * an input stream using the source's system identifier.
 *
 * @param source The input source to open.
 */
protected void openInputSourceStream(XMLInputSource source)
    throws IOException {
    if (source.getCharacterStream() != null) {
        return;
    }
    InputStream stream = source.getByteStream();
    if (stream == null) {
        String systemId = source.getSystemId();
        try {
            URL url = new URL(systemId);
            stream = url.openStream();
        }
        catch (MalformedURLException e) {
            stream = new FileInputStream(systemId);
        }
        source.setByteStream(stream);
    }
}
 
开发者ID:AaronZhangL,项目名称:SplitCharater,代码行数:29,代码来源:AbstractConfiguration.java

示例2: resolveExternalSubsetAndRead

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/**
 * <p>Attempt to locate an external subset for a document that does not otherwise
 * have one. If an external subset is located, then it is scanned.</p>
 */
protected void resolveExternalSubsetAndRead()
    throws IOException, XNIException {
    
    fDTDDescription.setValues(null, null, fEntityManager.getCurrentResourceIdentifier().getExpandedSystemId(), null);
    fDTDDescription.setRootName(fElementQName.rawname);
    XMLInputSource src = fExternalSubsetResolver.getExternalSubset(fDTDDescription);
    
    if (src != null) {
        fDoctypeName = fElementQName.rawname;
        fDoctypePublicId = src.getPublicId();
        fDoctypeSystemId = src.getSystemId();
        // call document handler
        if (fDocumentHandler != null) {
            // This inserts a doctypeDecl event into the stream though no 
            // DOCTYPE existed in the instance document.
            fDocumentHandler.doctypeDecl(fDoctypeName, fDoctypePublicId, fDoctypeSystemId, null);
        }
        try {
            if (fValidationManager == null || !fValidationManager.isCachedDTD()) {
                fDTDScanner.setInputSource(src);
                while (fDTDScanner.scanDTDExternalSubset(true));
            }
            else {
                // This sends startDTD and endDTD calls down the pipeline.
                fDTDScanner.setInputSource(null);
            }
        }
        finally {
            fEntityManager.setEntityHandler(XMLDocumentScannerMMImpl.this);
        }
    }
}
 
开发者ID:BowlerHatLLC,项目名称:feathers-sdk,代码行数:37,代码来源:XMLDocumentScannerMMImpl.java

示例3: resolveExternalSubsetAndRead

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/**
 * <p>Attempt to locate an external subset for a document that does not otherwise
 * have one. If an external subset is located, then it is scanned.</p>
 */
protected void resolveExternalSubsetAndRead()
    throws IOException, XNIException {
    
    fDTDDescription.setValues(null, null, fEntityManager.getCurrentResourceIdentifier().getExpandedSystemId(), null);
    fDTDDescription.setRootName(fElementQName.rawname);
    XMLInputSource src = fExternalSubsetResolver.getExternalSubset(fDTDDescription);
    
    if (src != null) {
        fDoctypeName = fElementQName.rawname;
        fDoctypePublicId = src.getPublicId();
        fDoctypeSystemId = src.getSystemId();
        // call document handler
        if (fDocumentHandler != null) {
            // This inserts a doctypeDecl event into the stream though no 
            // DOCTYPE existed in the instance document.
            fDocumentHandler.doctypeDecl(fDoctypeName, fDoctypePublicId, fDoctypeSystemId, null);
        }
        try {
            if (fValidationManager == null || !fValidationManager.isCachedDTD()) {
                fDTDScanner.setInputSource(src);
                while (fDTDScanner.scanDTDExternalSubset(true));
            }
            else {
                // This sends startDTD and endDTD calls down the pipeline.
                fDTDScanner.setInputSource(null);
            }
        }
        finally {
            fEntityManager.setEntityHandler(XMLDocumentScannerImpl.this);
        }
    }
}
 
开发者ID:AaronZhangL,项目名称:SplitCharater,代码行数:37,代码来源:XMLDocumentScannerImpl.java

示例4: loadGrammar

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/**
 * Returns a Grammar object by parsing the contents of the
 * entity pointed to by source.
 *
 * @param source        the location of the entity which forms
 *                          the starting point of the grammar to be constructed.
 * @throws IOException      When a problem is encountered reading the entity
 *          XNIException    When a condition arises (such as a FatalError) that requires parsing
 *                              of the entity be terminated.
 */
public Grammar loadGrammar(XMLInputSource source)
        throws IOException, XNIException {
    reset();
    // First chance checking strict URI
    String eid = XMLEntityManager.expandSystemId(source.getSystemId(), source.getBaseSystemId(), fStrictURI);
    XMLDTDDescription desc = new XMLDTDDescription(source.getPublicId(), source.getSystemId(), source.getBaseSystemId(), eid, null);
    if (!fBalanceSyntaxTrees) {
        fDTDGrammar = new DTDGrammar(fSymbolTable, desc);
    }
    else {
        fDTDGrammar = new BalancedDTDGrammar(fSymbolTable, desc);
    }
    fGrammarBucket = new DTDGrammarBucket();
    fGrammarBucket.setStandalone(false);
    fGrammarBucket.setActiveGrammar(fDTDGrammar); 
    // no reason to use grammar bucket's "put" method--we
    // know which grammar it is, and we don't know the root name anyway...

    // actually start the parsing!
    try {
        fDTDScanner.setInputSource(source);
        fDTDScanner.scanDTDExternalSubset(true);
    } catch (EOFException e) {
        // expected behaviour...
    }
    finally {
        // Close all streams opened by the parser.
        fEntityManager.closeReaders();
    }
    if(fDTDGrammar != null && fGrammarPool != null) {
        fGrammarPool.cacheGrammars(XMLDTDDescription.XML_DTD, new Grammar[] {fDTDGrammar});
    }
    return fDTDGrammar;
}
 
开发者ID:AaronZhangL,项目名称:SplitCharater,代码行数:45,代码来源:XMLDTDLoader.java

示例5: evaluateInputSource

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/** 
 * Immediately evaluates an input source and add the new content (e.g. 
 * the output written by an embedded script).
 *
 * @param inputSource The new input source to start evaluating.
 * @see #pushInputSource(XMLInputSource)
 */
public void evaluateInputSource(XMLInputSource inputSource) {
    final Scanner previousScanner = fScanner;
    final short previousScannerState = fScannerState;
    final CurrentEntity previousEntity = fCurrentEntity;
    final Reader reader = getReader(inputSource);

    String encoding = inputSource.getEncoding();
    String publicId = inputSource.getPublicId();
    String baseSystemId = inputSource.getBaseSystemId();
    String literalSystemId = inputSource.getSystemId();
    String expandedSystemId = expandSystemId(literalSystemId, baseSystemId);
    fCurrentEntity = new CurrentEntity(reader, encoding, 
                                       publicId, baseSystemId,
                                       literalSystemId, expandedSystemId);
    setScanner(fContentScanner);
    setScannerState(STATE_CONTENT);
    try {
        do {
            fScanner.scan(false);
        } while (fScannerState != STATE_END_DOCUMENT);
    }
    catch (final IOException e) {
        // ignore
    }
    setScanner(previousScanner);
    setScannerState(previousScannerState);
    fCurrentEntity = previousEntity;
}
 
开发者ID:ecologylab,项目名称:BigSemanticsJava,代码行数:36,代码来源:HTMLScanner.java

示例6: getSchemaDocument

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/**
 * getSchemaDocument method uses XMLInputSource to parse a schema document.
 * @param schemaNamespace
 * @param schemaSource
 * @param mustResolve
 * @param referType
 * @param referElement
 * @return A schema Element.
 */
private Element getSchemaDocument(String schemaNamespace, XMLInputSource schemaSource,
        boolean mustResolve, short referType, Element referElement) {
    
    boolean hasInput = true;
    IOException exception = null;
    // contents of this method will depend on the system we adopt for entity resolution--i.e., XMLEntityHandler, EntityHandler, etc.
    Element schemaElement = null;
    try {
        // when the system id and byte stream and character stream
        // of the input source are all null, it's
        // impossible to find the schema document. so we skip in
        // this case. otherwise we'll receive some NPE or
        // file not found errors. but schemaHint=="" is perfectly
        // legal for import.
        if (schemaSource != null &&
                (schemaSource.getSystemId() != null ||
                        schemaSource.getByteStream() != null ||
                        schemaSource.getCharacterStream() != null)) {
            
            // When the system id of the input source is used, first try to
            // expand it, and check whether the same document has been
            // parsed before. If so, return the document corresponding to
            // that system id.
            XSDKey key = null;
            String schemaId = null;
            if (referType != XSDDescription.CONTEXT_PREPARSE){
                schemaId = XMLEntityManager.expandSystemId(schemaSource.getSystemId(), schemaSource.getBaseSystemId(), false);
                key = new XSDKey(schemaId, referType, schemaNamespace);
                if((schemaElement = (Element)fTraversed.get(key)) != null) {
                    fLastSchemaWasDuplicate = true;
                    return schemaElement;
                }
            }
            
            fSchemaParser.parse(schemaSource);
            Document schemaDocument = fSchemaParser.getDocument();
            schemaElement = schemaDocument != null ? DOMUtil.getRoot(schemaDocument) : null;
            return getSchemaDocument0(key, schemaId, schemaElement);
        }
        else {
            hasInput = false;
        }
    }
    catch (IOException ex) {
        exception = ex;
    }
    return getSchemaDocument1(mustResolve, hasInput, schemaSource, referElement, exception);
}
 
开发者ID:AaronZhangL,项目名称:SplitCharater,代码行数:58,代码来源:XSDHandler.java

示例7: setInputSource

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/** Sets the input source. */
public void setInputSource(XMLInputSource source) throws IOException {

    // reset state
    fElementCount = 0;
    fElementDepth = -1;
    fByteStream = null;
    fCurrentEntityStack.removeAllElements();

    fBeginLineNumber = 1;
    fBeginColumnNumber = 1;
    fBeginCharacterOffset = 0;
    fEndLineNumber = fBeginLineNumber;
    fEndColumnNumber = fBeginColumnNumber;
    fEndCharacterOffset = fBeginCharacterOffset;

    // reset encoding information
    fIANAEncoding = fDefaultIANAEncoding;
    fJavaEncoding = fIANAEncoding;

    // get location information
    String encoding = source.getEncoding();
    String publicId = source.getPublicId();
    String baseSystemId = source.getBaseSystemId();
    String literalSystemId = source.getSystemId();
    String expandedSystemId = expandSystemId(literalSystemId, baseSystemId);

    // open stream
    Reader reader = source.getCharacterStream();
    if (reader == null) {
        InputStream inputStream = source.getByteStream();
        if (inputStream == null) {
            URL url = new URL(expandedSystemId);
            inputStream = url.openStream();
        }
        fByteStream = new PlaybackInputStream(inputStream);
        String[] encodings = new String[2];
        if (encoding == null) {
            fByteStream.detectEncoding(encodings);
        }
        else {
            encodings[0] = encoding;
        }
        if (encodings[0] == null) {
            encodings[0] = fDefaultIANAEncoding;
            if (fReportErrors) {
                fErrorReporter.reportWarning("HTML1000", null);
            }
        }
        if (encodings[1] == null) {
            encodings[1] = EncodingMap.getIANA2JavaMapping(encodings[0].toUpperCase());
            if (encodings[1] == null) {
                encodings[1] = encodings[0];
                if (fReportErrors) {
                    fErrorReporter.reportWarning("HTML1001", new Object[]{encodings[0]});
                }
            }
        }
        fIANAEncoding = encodings[0];
        fJavaEncoding = encodings[1];
        /* PATCH: Asgeir Asgeirsson */
        fIso8859Encoding = fIANAEncoding == null 
                        || fIANAEncoding.toUpperCase().startsWith("ISO-8859")
                        || fIANAEncoding.equalsIgnoreCase(fDefaultIANAEncoding);
        encoding = fIANAEncoding;
        reader = new InputStreamReader(fByteStream, fJavaEncoding);
    }
    fCurrentEntity = new CurrentEntity(reader, encoding,
                                       publicId, baseSystemId,
                                       literalSystemId, expandedSystemId);

    // set scanner and state
    setScanner(fContentScanner);
    setScannerState(STATE_START_DOCUMENT);

}
 
开发者ID:ecologylab,项目名称:BigSemanticsJava,代码行数:77,代码来源:HTMLScanner.java

示例8: pushInputSource

import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类
/** 
 * Pushes an input source onto the current entity stack. This 
 * enables the scanner to transparently scan new content (e.g. 
 * the output written by an embedded script). At the end of the
 * current entity, the scanner returns where it left off at the
 * time this entity source was pushed.
 * <p>
 * <strong>Note:</strong>
 * This functionality is experimental at this time and is
 * subject to change in future releases of NekoHTML.
 *
 * @param inputSource The new input source to start scanning.
 * @see #evaluateInputSource(XMLInputSource)
 */
public void pushInputSource(XMLInputSource inputSource) {
	final Reader reader = getReader(inputSource);

	fCurrentEntityStack.push(fCurrentEntity);
    String encoding = inputSource.getEncoding();
    String publicId = inputSource.getPublicId();
    String baseSystemId = inputSource.getBaseSystemId();
    String literalSystemId = inputSource.getSystemId();
    String expandedSystemId = expandSystemId(literalSystemId, baseSystemId);
    fCurrentEntity = new CurrentEntity(reader, encoding, 
                                       publicId, baseSystemId,
                                       literalSystemId, expandedSystemId);
}
 
开发者ID:ecologylab,项目名称:BigSemanticsJava,代码行数:28,代码来源:HTMLScanner.java


注:本文中的org.apache.xerces.xni.parser.XMLInputSource.getSystemId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。