- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
Bài viết này tổ chức Javauk.co.real_logic.sbe.xml.XmlSchemaParser
Một số ví dụ mã cho lớp, hiển thịTrình phân tích cú pháp lược đồ Xml
Cách sử dụng cụ thể của lớp. Các ví dụ mã này chủ yếu đến từGithub
/tràn ngăn xếp
/Maven
Các nền tảng như thế này là các mã được trích xuất từ một số dự án được chọn. Chúng có ý nghĩa tham khảo mạnh mẽ và có thể giúp bạn ở một mức độ nhất định.Trình phân tích cú pháp lược đồ Xml
Thông tin cụ thể của lớp như sau:
Đường dẫn gói: uk.co.real_logic.sbe.xml.XmlSchemaParser
Tên lớp: XmlSchemaParser
[Tiếng Anh]Đóng gói phân tích cú pháp Lược đồ XML cho SBE để các cách biểu diễn khác có thể được sử dụng để tạo ra các cách biểu diễn độc lập.
[trung bình] Đóng gói phân tích cú pháp lược đồ XML của SBE để có thể sử dụng các cách biểu diễn khác nhằm tạo ra các cách biểu diễn độc lập.
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư tĩnh void mã hóaSchema(ByteBuffer byteBuffer cuối cùng) ném Ngoại lệ { Đường dẫn cuối cùng = Paths.get("example-schema.xml"); thử (InputStream in = new BufferedInputStream(Files.newInputStream(path))) { lược đồ MessageSchema cuối cùng = XmlSchemaParser.parse(in, ParserOptions.DEFAULT); cuối cùng Ir = new IrGenerator().generate(schema); thử (IrEncode irEncode = IrEncode mới(byteBuffer, ir)) { irEncode.encode();
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
/** * Xây dựng một Giá trị hợp lệ dựa trên nút XML và nút mã hóa Loại mã hóa có chứa giá trị hợp lệ * @param mã hóa cho enum */ public ValidValue(nút nút cuối cùng, kiểu mã hóa PrimitiveType cuối cùng) { name = getAttributionValue(node) , "tên"); mô tả = getAttributionValueOrNull(nút, giá trị "mô tả"); PrimitiveValue.parse(node.getFirstChild().getNodeValue(), EncodingType); kể từVersion = Integer.parseInt(getAttributionValue(node, "sinceVersion", "0")); không dùng nữa = Integer.parseInt(getAttributionValue(node, "không dùng nữa" , "0")); checkForValidName(nút, tên);
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
document.setUserData(ERROR_HANDLER_KEY, errorHandler, null); Bản đồ cuối cùng typeByNameMap = findTypes(document, xPath); errorHandler.checkIfShouldExit(); Bản đồ cuối cùng messageByIdMap = findMessages(document, xPath, typeByNameMap) ; errorHandler.checkIfShouldExit();
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
public MessageSchema( nút cuối cùng lược đồNode, bản đồ cuối cùng typeByNameMap, bản đồ cuối cùng messageByIdMap) { this.packageName = getAttributionValue(schemaNode, "package"); ); cái này.id = Integer.parseInt(getAttributionValue(schemaNode, "id")); this.version = Integer.parseInt(getAttributionValue(schemaNode, "version", "0")); this.semanticVersion = getAttributionValueOrNull(schemaNode, "semanticVersion"); .byteOrder = getByteOrder(getAttributionValue(schemaNode, "byteOrder", "littleEndian")); this.typeByNameMap = typeByNameMap; this.messageByIdMap = messageByIdMap; Chuỗi cuối cùng headerType = getAttributionValueOrNull(schemaNode, "headerType"); hiện tại(typeByNameMap, this.headerType, "Tiêu đề thư"); ((CompositeType)typeByNameMap.get(this.headerType)).checkForWellFormedMessageHeader(schemaNode);
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
/** * Xây dựng một Loại mới từ Lược đồ XML Được gọi bởi các lớp con để đặt hầu hết các trường chung * * @param nút từ Phân tích cú pháp Lược đồ XML * @param GivenName của nút này, nếu null thì tên được phân bổ sẽ được sử dụng. param referencedName của loại khi được tạo từ một ref trong một tổ hợp */ public Type(nút Node cuối cùng, Chuỗi cuối cùng được đưa ra, Chuỗi cuối cùng được tham chiếu) { if (null == GivenName) { name = getAttributionValue(node, "name"); } else { name = GivenName; } this.referencedName = referencedName; sự hiện diện = Presence.get(getAttributionValue(node, "hiện diện", "bắt buộc") mô tả = getAttributionValueOrNull(node, " description"); kể từ đóVersion = Integer.parseInt(getAttributionValue(node, "sinceVersion", "0")); không dùng nữa = Integer.parseInt(getAttributionValue(node, "không dùng nữa", "0")); ngữ nghĩaType = getAttributionValueOrNull(node, "semanticType"); , "-1")); }
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư Trường phân tích cú phápGroupField(cuối cùng NodeList nodeList, int cuối cùng nodeIndex) ném XPathExpressionException chuỗi cuối cùng DimensionTypeName = getAttributionValue(node, "dimensionType", "groupSizeEncoding"); nút, "không thể tìm thấy DimensionType: " + DimensionTypeName); handError(node, "dimensionType phải là loại tổng hợp: " + DimensionTypeName); DimensionType = null; .name(getAttributionValue(node, "name")) .description(getAttributionValueOrNull(node, "description")) .id(Integer. ParseInt(getAttributionValue(nút, "id"))) .blockLength(Integer.parseInt(getAttributionValue(node, "blockLength", "0"))) .sinceVersion(Integer.parseInt(getAttributionValue(node, "sinceVersion", "0"))) .deprecated(Integer.parseInt(getAttributionValue (nút, "không dùng nữa", "0"))) .dimensionType((CompositeType)dimensionType) .build(); XmlSchemaParser.checkForValidName(node, field.name());
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
!semanticType.equals(type.semanticType())) handError(node, "SemanticType không khớp trên loại và trường: " + name); checkForValidName(node, name); handError(node, "valueRef not set for constant enum"); handError(node, "valueRef không khớp với loại trường: " + valueRef); handError(node, "valueRef không khớp với loại trường: " + valueRef); handError(node, "valueRef cho tên enum không tìm thấy: " + valueRefType);
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
nguyên thủyType = PrimitiveType.get(getAttributionValue(node, "primitiveType")); Chuỗi cuối cùng lengthAttr = getAttributionValueOrNull(node, "length"); length = Integer.parseInt(null == lengthAttr ? "1" : lengthAttr); .parseBoolean(getAttributionValue(nút, "độ dài biến", "false")); valueRef = getAttributionValueOrNull(node, "valueRef"); handError(node, "định dạng valueRef không hợp lệ (enum-name.valid-value-name): " + valueRef(node, "phải có không đổi khi valueRef được đặt: " + valueRef); characterEncoding = getAttributionValue(node, "characterEncoding", "US-ASCII").trim().toUpperCase(); Chuỗi cuối cùng characterEncoding = getAttributionValueOrNull(node, "characterEncoding"); this.characterEncoding = characterEncoding == null : characterEncoding.trim().toUpperCase(); (nút, "loại đã khai báo sự hiện diện là \"không đổi\" nhưng nút XML không có dữ liệu"); constValue = null; minValStr = getAttributionValueOrNull(node, "minValue"); minValue = minValStr != null ? PrimitiveValue.parse(minValStr,primitiveType): null; Chuỗi cuối cùng maxValStr = getAttributionValueOrNull(node, "maxValue"); .parse(maxValStr, kiểu nguyên thủy): null; nullValStr = getAttributionValueOrNull(node, "nullValue"); if (nullValStr != null) handWarning(node, "nullValue set, nhưng sự hiện diện không phải là tùy chọn");
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư Trường phân tích cú pháp (cuối cùng NodeList nodeList, cuối cùng int nodeIndex) { nút cuối cùng = nodeList.item(nodeIndex); Chuỗi cuối cùng typeName = getAttributionValue(node, "type"); fieldType == null) { handError(node, "không thể tìm thấy loại: " + typeName); } Trường trường cuối cùng = Field.Builder() mới .name(getAttributionValue(node, "name")) .description(getAttributionValueOrNull(node, "description")) .id(Integer.parseInt(getAttributionValue(node, "id"))) .offset(Integer.parseInt(getAttributionValue( nút, "bù", "0"))) .semanticType(getAttributionValueOrNull(node, "semanticType")) .presence(getPresence(node, fieldType)) .valueRef(getAttributionValueOrNull(node, "valueRef")) .sinceVersion(Integer.parseInt(getAttributionValue(node, "sinceVersion", " 0"))) .deprecated(Integer.parseInt(getAttributionValue(node, "không dùng nữa", "0"))) .epoch(getAttributionValueOrNull(node, "epoch")) .timeUnit(getAttributionValueOrNull(node, "timeUnit")) .type(fieldType) .build(); field.validate(node, typeByNameMap); cánh đồng; }
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
XmlSchemaParser.handleError(node, "composite để mã hóa dữ liệu có độ dài thay đổi phải có \"length\""); if (!isUnsigned(primitiveType)) XmlSchemaParser.handleError(node, "\"length\" phải là loại không dấu"); XmlSchemaParser.handleWarning(node, "\"length\" phải là UINT8, UINT16 hoặc UINT32"); ("tùy chọn".equals(getAttributionValueOrNull(node, "presence"))) XmlSchemaParser.handleError( nút, "tổng hợp để mã hóa dữ liệu có độ dài thay đổi không thể có hiện diện=\"tùy chọn\""); XmlSchemaParser.handleError(node, "composite để mã hóa dữ liệu có độ dài thay đổi phải có \"varData\"");
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư tĩnh void addTypeWithNameCheck(final Map typeByNameMap, loại cuối cùng, nút nút cuối cùng) { if (typeByNameMap.get(type.name()) != null) { handWarning(node, "type đã tồn tại cho tên : " + type.name()); } checkForValidName(node, type.name()); typeByNameMap.put(type.name(), type); }
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư tĩnh void validBlockLength( nút Nút cuối cùng, chiều dài được chỉ định cuối cùngBlockLength, chiều dài tính toán cuối cùng longdBlockLength) { if (0 != được chỉ địnhBlockLength && được tính BlockLength > được chỉ địnhBlockLength) { Chuỗi cuối cùng msg = "blockLength được chỉ định cung cấp không đủ không gian " + được tính toánBlockLength + " > " + được chỉ địnhBlockLength; xử lýError(nút, tin nhắn);
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
/** * Quét XML để tìm tất cả các định nghĩa thông báo và lưu vào bản đồ * * Tài liệu @param để phân tích cú pháp XML * @param xPath để tái sử dụng biểu thức XPath * @param typeByNameMap để sử dụng cho các đối tượng Loại * @return {@link java.util. Map} của lược đồId tới Tin nhắn * @throws Ngoại lệ về lỗi phân tích cú pháp */ public static Map findMessages( tài liệu Tài liệu cuối cùng, XPath cuối cùng xPath, Final Map typeByNameMap) ném Ngoại lệ { Final Map messageByIdMap = new HashMap<>(); Final ObjectHashSet DifferentNames = new ObjectHashSet<>(); .compile(MESSAGE_XPATH_EXPR).evaluate(document, XPathConstants.NODESET), (nút) -> addMessageWithIdCheck(distinctNames, messageByIdMap, new Message(node, typeByNameMap), node)); trả về messageByIdMap }
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
typeByNameMap.put("double", new EncodedDataType("double", BẮT BUỘC, null, null, DOUBLE, 1, false)); forEach((NodeList)xPath.compile(TYPE_XPATH_EXPR).evaluate(document, XPathConstants.NODESET), (nút) -> addTypeWithNameCheck(typeByNameMap, mới EncodedDataType(node), node)); forEach((NodeList)xPath.compile(COMPOSITE_XPATH_EXPR).evaluate(document, XPathConstants.NODESET), (node) -> addTypeWithNameCheck(typeByNameMap, new CompositeType(node), node)); forEach((NodeList)xPath.compile(ENUM_XPATH_EXPR).evaluate(document, ).evaluate(document, XPathConstants.NODESET), (nút) -> addTypeWithNameCheck(typeByNameMap, SetType mới (nút), nút));
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
/** * Xử lý tình trạng lỗi do phân tích cú pháp. * * Nút @param là ngữ cảnh của cảnh báo * Thông điệp @param liên quan đến lỗi */ public static void handError(Nút nút cuối cùng, Thông báo chuỗi cuối cùng) { trình xử lý ErrorHandler cuối cùng = (ErrorHandler)node.getOwnerDocument().getUserData(ERROR_HANDLER_KEY); if (handler == null) { ném mới IllegalStateException("ERROR: " + formatLocationInfo(node) + msg); } else { handler.error(formatLocationInfo(node) + msg);
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
XmlSchemaParser.handleError(node, "composite cho tiêu đề thư phải có \"blockLength\""); XmlSchemaParser.handleError(node, "\"blockLength\" phải không được ký"); " phải là UINT16"); nút, "tổng hợp cho tiêu đề thư phải có \"templateId\""); XmlSchemaParser.handleWarning(node, "\"templateId\" phải là UINT16"); ; XmlSchemaParser.handleWarning(node, "\"schemaId\" phải là UINT16"); XmlSchemaParser.handleError(node, "composite cho tiêu đề thư phải có \"version\""); XmlSchemaParser.handleWarning(node, "\"version\" phải là UINT16");
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
chuỗi cuối cùng EncodingTypeStr = getAttributionValue(node, "encodingType"); else if (Integer.parseInt(getAttributionValue(encodingTypeNode, "length", "1")) != 1) EncodingType = PrimitiveType.get(getAttributionValue(encodingTypeNode, "primitiveType" )); handWarning(node, "Giá trị lựa chọn đã được xác định: " + c.primitiveValue()); handWarning(node, "Đã tồn tại lựa chọn cho tên: " + c.name());
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
Chuỗi cuối cùng refName = XmlSchemaParser.getAttributionValue(subTypeNode, "name"); Chuỗi cuối cùng refTypeName = XmlSchemaParser.getAttributionValue(subTypeNode, "type"); Chuỗi cuối cùng refOffset = Integer.parseInt ( 1")); Nút cuối cùng refTypeNode = (Node)xPath.compile( "/*[local-name() = 'messageSchema']/types/*[@name='" + refTypeName + "']") XmlSchemaParser.handleError(subTypeNode, "không tìm thấy loại ref : " + refTypeName); XmlSchemaParser.handleError(refTypeNode, "các loại ref không thể tạo phụ thuộc vòng tròn."); ném mới IllegalStateException("loại tham chiếu không thể tạo phụ thuộc vòng tròn");
Nguồn mẫu mã:nguồn gốc: logic thực/mã hóa nhị phân đơn giản
riêng tư tĩnh Định dạng chuỗiLocationInfo(nút nút cuối cùng) { Nút cuối cùng parentNode = node.getParentNode(); return "at " + "<" + parentNode.getNodeName() + (getAttributionValueOrNull(parentNode, "name") == null ? "> " : (" name=\"" + getAttributionValueOrNull(parentNode, "name") + "\"> ")) + "<" + node.getNodeName() + (getAttributionValueOrNull(node, "name") == null ? ">" : (" name=\"" + getAttributionValueOrNull(node, "name") + "\"> ") }
Nguồn mẫu mã:nguồn gốc: uk.co.real-logic/sbe
/** * Quét XML để tìm tất cả các định nghĩa thông báo và lưu vào bản đồ * * Tài liệu @param để phân tích cú pháp XML * @param xPath để tái sử dụng biểu thức XPath * @param typeByNameMap để sử dụng cho các đối tượng Loại * @return {@link java.util. Map} của lược đồId tới Tin nhắn * @throws Ngoại lệ về lỗi phân tích cú pháp */ public static Map findMessages( tài liệu Tài liệu cuối cùng, XPath cuối cùng xPath, Final Map typeByNameMap) ném Ngoại lệ { Final Map messageByIdMap = new HashMap<>(); forEach((NodeList)xPath.compile(MESSAGE_XPATH_EXPR).evaluate(document, XPathConstants.NODESET) , new NodeFunction() { public void thực thi (nút Node cuối cùng) ném XPathExpressionException { addMessageWithIdCheck(messageByIdMap, new Message(node, typeByNameMap), node } });
Tôi cố gắng hiểu [mã c -> hội] mã void node::Check( data & _data1, vector& _data2) { -> push ebp -> Mov ebp,esp ->
Tôi cần chạy mã từ tệp văn bản trong ngữ cảnh của biểu mẫu (mã) hiện tại. Một trong những yêu cầu là yêu cầu mã tạo điều khiển mới và thêm nó vào biểu mẫu hiện tại. Ví dụ: trong Form1.cs: sử dụng System.Windows.Forms ..
Tôi có mã C++ này và đã chuyển đổi nó thành mã C# (.net Framework 4). Có ai có thể cho tôi một số lời khuyên về các phương pháp malloc, free và sprintf không? int monate = ee;
Tôi gặp sự cố với mã máy chủ web của mình #include #include #include #include #include #include #include int
Cho đoạn mã html sau, mã CSS để in nghiêng phần tử thứ ba trong danh sách (từ "Đẹp") là gì? Tất nhiên, tôi có thể cung cấp cho phần tử này một id hoặc một lớp, nhưng mã html phải giữ nguyên. Cảm ơn
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Chúng tôi không cho phép các câu hỏi tìm kiếm đề xuất về sách, công cụ, thư viện phần mềm, v.v. Bạn có thể chỉnh sửa câu hỏi của mình để trả lời bằng sự kiện và trích dẫn. Đóng cửa 7 năm trước
Tôi đang cố gắng tạo macro để tránh trùng lặp mã và nhận xét. Tôi đã thử điều này: #define GrowOnPage(bất kỳ Trang nào, bất kỳ Thành phần nào) Component.Width := Page.Surfa
Tôi đang cố gắng "dịch" mã C++ cũ của mình sang mã C# mà các tiêu đề gợi ý. Vấn đề là tôi mới làm quen với C# và không phải mọi thứ đều giống như trong C++. Trong C++, các giải pháp này hoạt động tốt, nhưng trong C# thì không. TÔI
Hoạt động trên Windows 10, trình định dạng R dường như không hoạt động trong Visual Studio Code. Tôi đã thử hỗ trợ R cho Visual Studio Code và RT
Tôi đang làm việc trên một số báo cáo (số lượng) và tôi phải tính số lượng cho các thông số khác nhau. Rất đơn giản nhưng nhàm chán. Truy vấn ví dụ với một tham số: qCountsEmployee = ("select count(*) from %s wher
Vài ngày qua tôi đã cố gắng gỡ lỗi mạng từ d00m. Tôi bắt đầu cạn kiệt ý tưởng/khách hàng tiềm năng và tôi hy vọng những người dùng SO khác có những trải nghiệm quý giá có thể hữu ích. Tôi ước mình có thể cung cấp tất cả thông tin liên quan nhưng cá nhân tôi không có quyền kiểm soát môi trường máy chủ. Mọi chuyện bắt đầu khi người dùng chú ý đến ứng dụng của chúng tôi
Tôi có một tệp app.js chứa mã mẫu amd dojo sau: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
Tôi hơi bối rối về tùy chọn "code=sm_X" trong câu lệnh "-gencode". Một ví dụ: Tùy chọn trình biên dịch NVCC -gencode Arch=compute_13,code=sm_13 làm gì trong thư viện nhúng? chỉ một
Tôi sử dụng khung có thể chỉnh sửa X cho bảng của mình. Nhưng tôi có một số câu hỏi. $(document).ready(function() { $('.access').editable({
Tôi đã học bình/python thông qua hướng dẫn này http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
Tôi muốn sử dụng Vim và EMACS cho CNC, mã G và mã M. Có cú pháp hoặc mẫu nào để Vim hoặc EMACS xử lý loại mã này không? Câu trả lời hay nhất Một số tìm kiếm nhanh đã dẫn tôi đến vim và thi
đóng cửa. Câu hỏi này không tuân thủ các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Câu hỏi được cập nhật để làm cho câu hỏi trở thành chủ đề cho Stack Overflow. Đóng cửa 7 năm trước Cải thiện điều này
Câu hỏi này đã có câu trả lời ở đây: Bật tính năng đánh dấu đánh dấu trong Vim (5 câu trả lời) Đã đóng 6 năm trước. Khi tôi chỉnh sửa READM chứa mã Markdown trong Vim
Tôi đang phát triển một ứng dụng video trong Swift3 iOS. Về cơ bản, tôi phải hợp nhất Nội dung video và âm thanh có hiệu ứng mờ dần thành một và lưu nó vào thư viện iPhone. Để làm điều này, tôi sử dụng phương pháp sau: Private func d
đường ống { tác nhân bất kỳ giai đoạn nào { giai đoạn ('Xây dựng') { bước { e
Tôi là một lập trình viên xuất sắc, rất giỏi!