Это - лучшая статья, которую я нашел об этой теме: Перезапись URL IIS и ASP.NET, направляющий Ruslan Yakushev.
, Когда клиент выполняет запрос к веб-серверу для конкретного URL, переписывающий URL компонент анализирует требуемый URL и изменяет его на различный другой URL на том же сервере. Переписывающий URL компонент работает очень рано в конвейере обработки запросов, поэтому в состоянии изменить требуемый URL, прежде чем веб-сервер примет решение о который обработчик использовать для обработки запроса.
, маршрутизация ASP.NET реализована как модуль управляемого кода, который включает конвейер обработки запросов IIS на этапе Кэша Твердости (событие PostResolveRequestCache) и на этапе Обработчика Карт (PostMapRequestHandler). маршрутизация ASP.NET настроена для выполнения за всеми запросами, выполненными к веб-приложению.
Различия между перезаписью URL и маршрутизацией ASP.NET:
В дополнение к этим концептуальным различиям, существуют некоторые функциональные различия между перезаписью URL IIS и маршрутизацией ASP.NET:
Меня это удивило, но, похоже, работает следующее:
final String xmlString = "<string>value</string>";
final StringReader xmlReader = new StringReader(xmlString);
final StreamSource xmlSource = new StreamSource(xmlReader);
final JAXBContext jaxbContext = JAXBContext.newInstance(String.class);
final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
final String stringValue = unmarshaller.unmarshal(xmlSource, String.class).getValue();
Это то, что вы искали?
Когда вы используете JAXB, вам нужно построить код вокруг схемы XML. То есть, если у вас есть файл, скажем, foo.xsd, вам нужно запустить его через компилятор xjc (по умолчанию в JDK 6, иначе вы можете загрузить JAXB 2 и использовать его). Это прочитает схему и сгенерирует Java bean и связанные классы ObjectFactory с элементами в схеме. Классы Java-компонентов будут выглядеть как обычные объекты POJO с аннотациями. Классы ObjectFactory необходимы реализации JAXB для преобразования XML в соответствующий компонент Java. Это объясняет отсутствие исключения в ObjectFactory.
Так что это несложно, но требует некоторой работы. Мы используем его для одного из наших производственных приложений, и это здорово. Я вижу, что сейчас использую его чаще, поскольку он является частью JDK.
Вам нужно написать объектную модель, которая соответствует вашей структуре XML, и сообщить JAXB, чтобы она не была упорядочена. Ваш пример может показаться простым, но это не то, для чего предназначен JAXB.
Попробуйте что-нибудь вроде этого:
@XmlRootElement(name="string", namespace="blah")
public class MyString {
@XmlValue
String value;
}
JAXBContext context = JAXBContext.newInstance(MyString.class);
MyString myString = (MyString) context.createUnmarshaller().unmarshal(...);
Это будет демаршалировать XML
. Соответственно измените пространство имен. Если у вас много пространств имен, тогда JAXB не для вас.