/**
* Parses an {@link ProcessingInstruction XML event} of a
* processing instruction.
* @param pi the event to parse
* @return the data from the processing instruction or <code>null</code>
* if the event is {@link #isIgnoredPI(ProcessingInstruction) ignored}
* by this parser
*/
public TocPIData parse(ProcessingInstruction pi) throws JAXBException
{
if (isIgnoredPI(pi))
return null;
String rawData = pi.getData();
rawData = null == rawData ? "" : rawData.trim();
boolean closing = rawData.endsWith("/");
if (closing)
rawData = rawData.substring(0, rawData.length() - 1).trim();
TocPIData data;
if (0 < rawData.length())
data = parseAttrs(rawData);
else if (closing)
data = new TocPIData();
else
throw new JAXBException("Processing instruction contains no data");
data.setClosing(closing);
return data;
}
java类javax.xml.stream.events.ProcessingInstruction的实例源码
TocPIParser.java 文件源码
项目:HTMLtoc
阅读 28
收藏 0
点赞 0
评论 0
StAXEvent2SAX.java 文件源码
项目:OpenJSharp
阅读 20
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
StAXEvent2SAX.java 文件源码
项目:openjdk-jdk10
阅读 20
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
StAXEvent2SAX.java 文件源码
项目:openjdk9
阅读 24
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
XMLEventStreamReader.java 文件源码
项目:spring4-understanding
阅读 29
收藏 0
点赞 0
评论 0
@Override
public String getPITarget() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getTarget();
}
else {
throw new IllegalStateException();
}
}
XMLEventStreamReader.java 文件源码
项目:spring4-understanding
阅读 34
收藏 0
点赞 0
评论 0
@Override
public String getPIData() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getData();
}
else {
throw new IllegalStateException();
}
}
XMLSecurityStreamReader.java 文件源码
项目:xmlsec-gost
阅读 27
收藏 0
点赞 0
评论 0
@Override
public String getPITarget() {
XMLSecEvent xmlSecEvent = getCurrentEvent();
if (xmlSecEvent.getEventType() != PROCESSING_INSTRUCTION) {
throw new IllegalStateException(ERR_STATE_NOT_PI);
}
return ((ProcessingInstruction) xmlSecEvent).getTarget();
}
XMLSecurityStreamReader.java 文件源码
项目:xmlsec-gost
阅读 23
收藏 0
点赞 0
评论 0
@Override
public String getPIData() {
XMLSecEvent xmlSecEvent = getCurrentEvent();
if (xmlSecEvent.getEventType() != PROCESSING_INSTRUCTION) {
throw new IllegalStateException(ERR_STATE_NOT_PI);
}
return ((ProcessingInstruction) xmlSecEvent).getData();
}
StAXEvent2SAX.java 文件源码
项目:lookaside_java-1.8.0-openjdk
阅读 37
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
XMLEventStreamReader.java 文件源码
项目:spring
阅读 23
收藏 0
点赞 0
评论 0
@Override
public String getPITarget() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getTarget();
}
else {
throw new IllegalStateException();
}
}
XMLEventStreamReader.java 文件源码
项目:spring
阅读 24
收藏 0
点赞 0
评论 0
@Override
public String getPIData() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getData();
}
else {
throw new IllegalStateException();
}
}
StAXEvent2SAX.java 文件源码
项目:infobip-open-jdk-8
阅读 21
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
XMLEventStreamReader.java 文件源码
项目:teiid
阅读 23
收藏 0
点赞 0
评论 0
public String getPITarget() {
if (event.isProcessingInstruction()) {
return ((ProcessingInstruction) event).getTarget();
}
else {
throw new IllegalStateException();
}
}
XMLEventStreamReader.java 文件源码
项目:teiid
阅读 24
收藏 0
点赞 0
评论 0
public String getPIData() {
if (event.isProcessingInstruction()) {
return ((ProcessingInstruction) event).getData();
}
else {
throw new IllegalStateException();
}
}
XmlStaxParser.java 文件源码
项目:bagri
阅读 24
收藏 0
点赞 0
评论 0
private void processEvent(XmlParserContext ctx, XMLEvent xmlEvent) throws BagriException {
if (ctx.getDocRoot() == null) {
ctx.firstEvents.add(xmlEvent);
if (xmlEvent.getEventType() == XMLStreamConstants.START_ELEMENT) {
String root = "/" + xmlEvent.asStartElement().getName();
ctx.addDocument(root);
for (XMLEvent event: ctx.firstEvents) {
processEvent(ctx, event);
}
}
} else {
switch (xmlEvent.getEventType()) {
case XMLStreamConstants.START_ELEMENT:
startElement(ctx, xmlEvent.asStartElement());
break;
case XMLStreamConstants.CHARACTERS:
if (!xmlEvent.asCharacters().isWhiteSpace()) {
ctx.addCharacters(xmlEvent.asCharacters().getData());
}
break;
case XMLStreamConstants.END_ELEMENT:
ctx.endElement();
break;
case XMLStreamConstants.ATTRIBUTE:
ctx.addAttribute(((Attribute) xmlEvent).getName(), ((Attribute) xmlEvent).getValue());
break;
case XMLStreamConstants.COMMENT:
ctx.addComment(((Comment) xmlEvent).getText());
break;
case XMLStreamConstants.PROCESSING_INSTRUCTION:
ctx.addProcessingInstruction(((ProcessingInstruction) xmlEvent).getTarget(), ((ProcessingInstruction) xmlEvent).getData());
break;
default:
break;
}
}
}
XMLEventStreamReader.java 文件源码
项目:class-guard
阅读 23
收藏 0
点赞 0
评论 0
public String getPITarget() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getTarget();
}
else {
throw new IllegalStateException();
}
}
XMLEventStreamReader.java 文件源码
项目:class-guard
阅读 28
收藏 0
点赞 0
评论 0
public String getPIData() {
if (this.event.isProcessingInstruction()) {
return ((ProcessingInstruction) this.event).getData();
}
else {
throw new IllegalStateException();
}
}
StAXEvent2SAX.java 文件源码
项目:OLD-OpenJDK8
阅读 20
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
StAXStreamResultBuilder.java 文件源码
项目:SplitCharater
阅读 23
收藏 0
点赞 0
评论 0
public void processingInstruction(ProcessingInstruction event)
throws XMLStreamException {
String data = event.getData();
if (data != null && data.length() > 0) {
fStreamWriter.writeProcessingInstruction(event.getTarget(), data);
}
else {
fStreamWriter.writeProcessingInstruction(event.getTarget());
}
}
StAXEvent2SAX.java 文件源码
项目:openjdk-icedtea7
阅读 21
收藏 0
点赞 0
评论 0
private void handlePI(ProcessingInstruction event)
throws XMLStreamException {
try {
_sax.processingInstruction(
event.getTarget(),
event.getData());
} catch (SAXException e) {
throw new XMLStreamException(e);
}
}
Transformer.java 文件源码
项目:HTMLtoc
阅读 27
收藏 0
点赞 0
评论 0
@Override
public void add(XMLEvent event) throws XMLStreamException
{
if (event instanceof ProcessingInstruction)
{
if (null == piData)
piData = parsePIEvent((ProcessingInstruction)event);
}
else
piData = null;
if (null != piData)
{
if (piData.isOpening())
{
formatter = TocFormatter.forPI(piData, event.getLocation());
formatter.setXMLEventFactory(getXMLEventFactory());
}
if (piData.isClosing())
super.add(getXMLEventFactory().createCharacters("\n"));
}
else if (state == State.INDEXED)
index(event);
else if (state == State.ROOT)
{
addDTD((StartElement)event);
super.add(event);
state = State.PASSTHROUGH;
}
}
Transformer.java 文件源码
项目:HTMLtoc
阅读 21
收藏 0
点赞 0
评论 0
protected void trackContext(XMLEvent event)
{
switch (event.getEventType())
{
case START_ELEMENT:
context.add(0, (StartElement)event);
break;
case END_DOCUMENT:
case END_ELEMENT:
if (!context.isEmpty())
{
StartElement open = context.remove(0);
EndElement close = event instanceof EndElement ? (EndElement)event : null;
if (null == close || !open.getName().equals(close.getName()))
throw new IllegalStateException("Unclosed " + describeEvent(open) + ' '
+ describeLocation(open.getLocation()));
}
else
throw new IllegalStateException("Unclosed " + describeEvent(origin) + ' '
+ describeLocation(origin.getLocation()));
break;
case PROCESSING_INSTRUCTION:
if (!TocPIParser.isIgnoredPI((ProcessingInstruction)event))
throw new IllegalStateException("Processing instructions <?" + TocPIParser.PI_TARGET
+ "?> are not allowed within the context of " + describeEvent(origin));
break;
}
}
Transformer.java 文件源码
项目:HTMLtoc
阅读 22
收藏 0
点赞 0
评论 0
protected TocPIData parsePIEvent(ProcessingInstruction event)
throws XMLStreamException
{
try
{
return piParser().parse(event);
}
catch (JAXBException pierr)
{
throw new XMLStreamException("Error parsing " + describeEvent(event),
event.getLocation(), pierr);
}
}
Transformer.java 文件源码
项目:HTMLtoc
阅读 20
收藏 0
点赞 0
评论 0
protected TocPIData filterPIEvent(ProcessingInstruction event)
{
try
{
return piParser().parse(event);
}
catch (JAXBException pierr)
{
throw new IllegalArgumentException("Error parsing " + describeEvent(event), pierr);
}
}
LoadProcess.java 文件源码
项目:scaleDOM
阅读 21
收藏 0
点赞 0
评论 0
private void processProcessingInstruction(final ProcessingInstruction processingInstruction,
final NodeLocation location) {
// Create and append ProcessingInstruction node
final org.w3c.dom.ProcessingInstruction processingInstructionNode = doc.createProcessingInstruction(
processingInstruction.getTarget(), processingInstruction.getData());
state.getCurrentParentNode().appendChild(processingInstructionNode);
state.createdNode();
}
StAXSchemaParser.java 文件源码
项目:OpenJSharp
阅读 18
收藏 0
点赞 0
评论 0
public void parse(XMLEventReader input) throws XMLStreamException, XNIException {
XMLEvent currentEvent = input.peek();
if (currentEvent != null) {
int eventType = currentEvent.getEventType();
if (eventType != XMLStreamConstants.START_DOCUMENT &&
eventType != XMLStreamConstants.START_ELEMENT) {
throw new XMLStreamException();
}
fLocationWrapper.setLocation(currentEvent.getLocation());
fSchemaDOMParser.startDocument(fLocationWrapper, null, fNamespaceContext, null);
loop: while (input.hasNext()) {
currentEvent = input.nextEvent();
eventType = currentEvent.getEventType();
switch (eventType) {
case XMLStreamConstants.START_ELEMENT:
++fDepth;
StartElement start = currentEvent.asStartElement();
fillQName(fElementQName, start.getName());
fLocationWrapper.setLocation(start.getLocation());
fNamespaceContext.setNamespaceContext(start.getNamespaceContext());
fillXMLAttributes(start);
fillDeclaredPrefixes(start);
addNamespaceDeclarations();
fNamespaceContext.pushContext();
fSchemaDOMParser.startElement(fElementQName, fAttributes, null);
break;
case XMLStreamConstants.END_ELEMENT:
EndElement end = currentEvent.asEndElement();
fillQName(fElementQName, end.getName());
fillDeclaredPrefixes(end);
fLocationWrapper.setLocation(end.getLocation());
fSchemaDOMParser.endElement(fElementQName, null);
fNamespaceContext.popContext();
--fDepth;
if (fDepth <= 0) {
break loop;
}
break;
case XMLStreamConstants.CHARACTERS:
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
break;
case XMLStreamConstants.SPACE:
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), true);
break;
case XMLStreamConstants.CDATA:
fSchemaDOMParser.startCDATA(null);
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
fSchemaDOMParser.endCDATA(null);
break;
case XMLStreamConstants.PROCESSING_INSTRUCTION:
ProcessingInstruction pi = (ProcessingInstruction)currentEvent;
fillProcessingInstruction(pi.getData());
fSchemaDOMParser.processingInstruction(pi.getTarget(), fTempString, null);
break;
case XMLStreamConstants.DTD:
/* There shouldn't be a DTD in the schema */
break;
case XMLStreamConstants.ENTITY_REFERENCE:
/* Not needed for schemas */
break;
case XMLStreamConstants.COMMENT:
/* No point in sending comments */
break;
case XMLStreamConstants.START_DOCUMENT:
fDepth++;
/* We automatically call startDocument before the loop */
break;
case XMLStreamConstants.END_DOCUMENT:
/* We automatically call endDocument after the loop */
break;
}
}
fLocationWrapper.setLocation(null);
fNamespaceContext.setNamespaceContext(null);
fSchemaDOMParser.endDocument(null);
}
}
StAXSchemaParser.java 文件源码
项目:openjdk-jdk10
阅读 23
收藏 0
点赞 0
评论 0
public void parse(XMLEventReader input) throws XMLStreamException, XNIException {
XMLEvent currentEvent = input.peek();
if (currentEvent != null) {
int eventType = currentEvent.getEventType();
if (eventType != XMLStreamConstants.START_DOCUMENT &&
eventType != XMLStreamConstants.START_ELEMENT) {
throw new XMLStreamException();
}
fLocationWrapper.setLocation(currentEvent.getLocation());
fSchemaDOMParser.startDocument(fLocationWrapper, null, fNamespaceContext, null);
loop: while (input.hasNext()) {
currentEvent = input.nextEvent();
eventType = currentEvent.getEventType();
switch (eventType) {
case XMLStreamConstants.START_ELEMENT:
++fDepth;
StartElement start = currentEvent.asStartElement();
fillQName(fElementQName, start.getName());
fLocationWrapper.setLocation(start.getLocation());
fNamespaceContext.setNamespaceContext(start.getNamespaceContext());
fillXMLAttributes(start);
fillDeclaredPrefixes(start);
addNamespaceDeclarations();
fNamespaceContext.pushContext();
fSchemaDOMParser.startElement(fElementQName, fAttributes, null);
break;
case XMLStreamConstants.END_ELEMENT:
EndElement end = currentEvent.asEndElement();
fillQName(fElementQName, end.getName());
fillDeclaredPrefixes(end);
fLocationWrapper.setLocation(end.getLocation());
fSchemaDOMParser.endElement(fElementQName, null);
fNamespaceContext.popContext();
--fDepth;
if (fDepth <= 0) {
break loop;
}
break;
case XMLStreamConstants.CHARACTERS:
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
break;
case XMLStreamConstants.SPACE:
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), true);
break;
case XMLStreamConstants.CDATA:
fSchemaDOMParser.startCDATA(null);
sendCharactersToSchemaParser(currentEvent.asCharacters().getData(), false);
fSchemaDOMParser.endCDATA(null);
break;
case XMLStreamConstants.PROCESSING_INSTRUCTION:
ProcessingInstruction pi = (ProcessingInstruction)currentEvent;
fillProcessingInstruction(pi.getData());
fSchemaDOMParser.processingInstruction(pi.getTarget(), fTempString, null);
break;
case XMLStreamConstants.DTD:
/* There shouldn't be a DTD in the schema */
break;
case XMLStreamConstants.ENTITY_REFERENCE:
/* Not needed for schemas */
break;
case XMLStreamConstants.COMMENT:
/* No point in sending comments */
break;
case XMLStreamConstants.START_DOCUMENT:
fDepth++;
/* We automatically call startDocument before the loop */
break;
case XMLStreamConstants.END_DOCUMENT:
/* We automatically call endDocument after the loop */
break;
}
}
fLocationWrapper.setLocation(null);
fNamespaceContext.setNamespaceContext(null);
fSchemaDOMParser.endDocument(null);
}
}
XMLEventFactoryImpl.java 文件源码
项目:openjdk-jdk10
阅读 27
收藏 0
点赞 0
评论 0
@Override
public ProcessingInstruction createProcessingInstruction(String target, String data) {
ProcessingInstructionEvent event = new ProcessingInstructionEvent(target, data);
if(location != null)event.setLocation(location);
return event;
}
Issue41Test.java 文件源码
项目:openjdk-jdk10
阅读 24
收藏 0
点赞 0
评论 0
@Test
public void testEvents() {
XMLEventFactory f = XMLEventFactory.newInstance();
final String contents = "test <some> text & more! [[]] --";
final String prefix = "prefix";
final String uri = "http://foo";
final String localName = "elem";
try {
StartDocument sd = f.createStartDocument();
writeAsEncodedUnicode(sd);
Comment c = f.createComment("some comments");
writeAsEncodedUnicode(c);
StartElement se = f.createStartElement(prefix, uri, localName);
ProcessingInstruction pi = f.createProcessingInstruction("target", "data");
writeAsEncodedUnicode(pi);
Namespace ns = f.createNamespace(prefix, uri);
writeAsEncodedUnicode(ns);
Characters characters = f.createCharacters(contents);
writeAsEncodedUnicode(characters);
// CData
Characters cdata = f.createCData(contents);
writeAsEncodedUnicode(cdata);
// Attribute
QName attrName = new QName("http://test.com", "attr", "ns");
Attribute attr = f.createAttribute(attrName, "value");
writeAsEncodedUnicode(attr);
// prefix, uri, localName
EndElement ee = f.createEndElement(prefix, uri, localName);
writeAsEncodedUnicode(ee);
EndDocument ed = f.createEndDocument();
writeAsEncodedUnicode(ed);
} catch (Exception e) {
Assert.fail(e.getMessage());
}
}
XMLEventFactoryWrapper.java 文件源码
项目:openjdk-jdk10
阅读 25
收藏 0
点赞 0
评论 0
@Override
public ProcessingInstruction createProcessingInstruction(String target, String data) {
return defaultImpl.createProcessingInstruction(target, data);
}